Usage API
POST /api/usage/ingest
- Purpose: Ingest usage events from the edge/proxy layer.
- Auth:
X-Ingest-Keyshared secret. - Request shape: Usage payload (tenant, bytes, request metadata).
- Response shape:
{ ok: true }. - Key errors:
401/403invalid ingest key,400invalid payload. - Example:
POST /api/usage/ingestwith ingest key header.
GET /api/usage/check
- Purpose: Internal usage limit/status check.
- Auth:
X-Ingest-Keyshared secret. - Request shape: Query for tenant/period (as defined in handler).
- Response shape: Limit/check result.
- Key errors:
401/403,400. - Example:
GET /api/usage/check?....
GET /api/stats
- Purpose: Return aggregated public/platform stats overview.
- Auth: Public or internal read (depends on deployment policy).
- Request shape: Optional query filters.
- Response shape: Stats object.
- Key errors:
400. - Example:
GET /api/stats.
GET /api/demos/{provider}
- Purpose: Return demo payload for supported providers.
- Auth: Public read.
- Request shape: Path
{provider}. - Response shape: Demo data for requested provider.
- Key errors:
404provider not found,400invalid provider. - Example:
GET /api/demos/prismic.
POST /api/admin/ingest-diagnostic
- Purpose: Temporary diagnostic endpoint — tests the full ingest write path step-by-step (D1 connectivity, table existence, upsert/insert, runtime config). Delete after regression is resolved.
- Auth:
X-Ingest-Keyshared secret (same as/api/usage/ingest). - Request shape: No body required.
- Response shape:
{ steps: { auth, d1Connect, usageBucketsTable, requestLogsTable, usageUpsert, requestLogInsert, requestLogReadBack, runtimeConfig } }with"OK"/"FAIL: …"values per step. - Key errors:
401/403invalid ingest key. - Example:
POST /api/admin/ingest-diagnosticwith ingest key header.
GET /api/playground/tenant-config
- Purpose: Return public-safe tenant config used by playground UI bootstrap.
- Auth: Public read.
- Request shape: Query
slug(required). - Response shape:
{ slug, cms, identifierField, identifierValue, apiOrigin, origin, videoOrigin }; on missing tenant returns same shape with null fields anderror. - Key errors:
400whenslugquery param is missing. - Example:
GET /api/playground/tenant-config?slug=demo.
✦
Need help understanding this?Ask Orinami Copilot about features, setup, or integrations.
Ask Copilot →