Health & identity
Small endpoints for checking that the API is up, discovering its spec, and verifying that your key works.
GET /health and GET /openapi.yaml are the only two endpoints in the API that need neither a key nor a subscription. GET /me needs both, like every other endpoint. See Conventions.
GET /health
Liveness check. Confirms the API is reachable. No authentication and no subscription required. Unauthenticated calls consume a per-IP rate-limit budget.
Scope: none
Request
curl https://app.metamonster.ai/api/v1/health
Response 200
{ "ok": true }
This response is not wrapped in a data envelope.
GET /openapi.yaml
The canonical OpenAPI 3.1 specification for this API, served as YAML. No authentication and no subscription required (per-IP rate limited). Point code generators, API clients, or agents here to self-discover every endpoint and schema.
curl https://app.metamonster.ai/api/v1/openapi.yaml
GET /me
Returns the identity of the API key you authenticated with. Use it to verify a key is valid and to see which scopes it carries. Any valid key can call this — no particular scope is needed.
Like every authenticated endpoint, it needs the key's organization to have an active subscription. That makes it a complete readiness check: a 200 means the key works and the organization can use the API, and a 402 payment_required means the key is fine but the plan is not.
Scope: any valid key
Request
curl https://app.metamonster.ai/api/v1/me \
-H "Authorization: Bearer mm_YOUR_API_KEY"
Response 200
{
"name": "Production integration",
"prefix": "mm_aB3x",
"scopes": ["sites:read", "content:write", "cms:publish"]
}
| Field | Type | Description |
|---|---|---|
name |
string | The key's label, as set in the dashboard |
prefix |
string | The key's display prefix (mm_ + first 4 characters) |
scopes |
string[] | The scopes this key carries |
This response is not wrapped in a data envelope.
Errors
Returns 401 unauthorized for a missing, invalid, revoked, or expired key, and 402 payment_required (Pick a plan to keep going.) for a valid key whose organization has no active subscription, both in the standard { "error": { "code", "message" } } envelope. The endpoint is rate limited like every other route — per key when authenticated, per IP for failed auth — so it can't be used as a free key-guessing oracle.