Sample docs in the Kernalto demo. Data resets daily. kernalto.com
Skip to main content
On this page

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.

Terminal
curl https://app.demo.kernalto.com/v1/capabilities

List plans

Returns the public plans with price, currency, interval, and whether a plan is billed per seat.

Terminal
curl https://app.demo.kernalto.com/v1/plans

Send a contact request

Accepts contact, newsletter, and service requests from your website. The response status is accepted or confirmation_sent.

Terminal
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