Health & identity

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.