Sample documentation for Acme, a fictional product built with Kernalto.
API reference
Acme exposes a small public HTTP API. The public endpoints need no credentials. Everything else in Acme uses your signed-in browser session.
Authentication
Public endpoints accept anonymous requests. Signed-in features use the session cookie your browser receives when you sign in. Acme does not issue API keys in this sample.
Get product capabilities
Returns the product version and which optional services are available.
curl https://app.demo.kernalto.com/v1/capabilitiesList plans
Returns the public plans with price, currency, interval, and whether a plan is billed per seat.
curl https://app.demo.kernalto.com/v1/plansSend a contact request
Accepts contact, newsletter, and service requests from your website. The response status is accepted or confirmation_sent.
curl -X POST https://app.demo.kernalto.com/v1/leads \
-H "Content-Type: application/json" \
-d '{"kind":"newsletter","email":"you@example.com","website":"","startedAt":1760000000000}'Generated OpenAPI reference
- OpenAPI version
- 3.1.1
- API version
- 1.0.0
- Document revision
- Generated from the current public contract
Authentication boundary
The document defines a session cookie boundary. Each listed endpoint explicitly permits public access. Protected procedures remain outside this document.
Endpoint groups
- Health
GET /api/http/health - Public
GET /v1/capabilities - Public
POST /v1/leads - Public
GET /v1/leads/confirm - Public
GET /v1/plans
Request and response example
GET /v1/capabilities uses no request body.
{
"enabledBillingPurchaseTypes": [
"recurring",
"one_time"
],
"optionalServices": {
"ai": "unavailable",
"email": "available",
"observability": "unavailable",
"storage": "available"
},
"productVersion": "0.1.0",
"supportedOwnerTypes": [
"user",
"organization"
]
}Stable error codes
INVALID_INPUT, PAYLOAD_TOO_LARGE, RATE_LIMITED, SERVICE_UNAVAILABLE, INTERNAL_ERROR
Download OpenAPI document