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.
| Path | Serves |
|---|---|
/ | The root JSON: the API name, its operations and its other registers. |
/mcp | The MCP server. |
/docs | The docs, in HTML or Markdown. |
/openapi.json | The OpenAPI 3.1 document. |
/llms.txt | The llms.txt file. |
/pricing | The pricing document. |
/.well-known | The agents.json card. |
/sdk | The generated SDK files. |
/batch | The Batch route. |
/dashboard | The Dashboard. |
Kinds
Each call is kept in one place, by who made it.
| Call | Kept |
|---|---|
| A call by a Customer | In the namespace of the Startup that uses the API, with its input, and never with the Startup that serves it. |
| The usage of that call | In 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 Customer | In the namespace of the Startup that serves the API. |
| A call with a test or dev Key | In 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
curl https: //openhours.example/ openapi.json
curl https: //openhours.example/ places/ pl_4821/ hours -H "X-Api-Key: $OPENHOURS_KEY"