Skip to content

Your API on your own domain

The home Domain of the Startup an API belongs to: every Interface of the API answers there, and every link stays there.

A Host is the home Domain of the Startup an API belongs to: every Interface of the API answers there, and every link stays there.

Parts

A host answers these paths for every API, before any operation.

PathServes
/The root JSON: the API name, its operations and its other registers.
/mcpThe MCP server.
/docsThe docs, in HTML or Markdown.
/openapi.jsonThe OpenAPI 3.1 document.
/llms.txtThe llms.txt file.
/pricingThe pricing document.
/.well-knownThe agents.json card.
/sdkThe generated SDK files.
/batchThe Batch route.
/dashboardThe Dashboard.

Kinds

Each call is kept in one place, by who made it.

CallKept
A call by a CustomerIn the namespace of the Startup that uses the API, with its input, and never with the Startup that serves it.
The usage of that callIn the namespace of the Startup that serves the API: the operation, the outcome and the price, never the input or the Problem detail.
A call by no CustomerIn the namespace of the Startup that serves the API.
A call with a test or dev KeyIn the test twin of the namespace, whose books never post.

Checks

  • A host serves the API its namespace defines, from that one Definition.
  • The API of a Startup answers on its home Domain; another host does not render it.
  • A host reads its Definition again at most 30 seconds after a change.
  • Every host answers the reserved paths, and no operation takes one.
  • Every response carries the cost header and a request id, a miss and an error included.
  • When an operation has no posted rate, the host answers 503 for the whole API.

Guarantees

  • Every link is on the API's host. Every generated link is built from the origin the request reached.

Example

Every Interface of the Openhours sample answers on its own host
curl https://openhours.example/openapi.json
curl https://openhours.example/places/pl_4821/hours -H "X-Api-Key: $OPENHOURS_KEY"