Base URL
http://localhost:4100; pick it from the server menu in the playground.
Authentication
Send a key as a bearer token:
Create and revoke keys in Settings → API keys. A key is shown once, when you create it; Rumorly stores only a hash. Revoking a key takes effect on the next request. Key-authenticated calls need the Growth plan or higher (the signup trial includes it), except erasure, which works on every plan.
Conventions
- JSON is snake_case, in requests and responses.
- Money is an integer in minor units in your reporting currency:
mrr_cents: 190000is $1,900.00.currencysays which. - Timestamps are ISO 8601 in UTC. Date-only query parameters (
from,to) areYYYY-MM-DD. - Ids are UUIDs. An id from another workspace returns
404, never403.
Idempotency
POST /v1/responses accepts an Idempotency-Key header (up to 200 characters). The first request with a key creates the response and returns 202; any later request with the same key returns that same response with 200 and creates nothing. Use something stable per answer, such as your signup id.
Pagination
GET /v1/responses returns { "data": [...], "next_cursor": "…" }. Pass next_cursor back as cursor until it’s null. limit is 1–200 (default 50). With updated_since, results are ordered oldest change first, which makes incremental syncs easy.
Rate limits
Publishable keys can submit 10 responses in a burst, then one every 6 seconds, per key and visitor IP. Past that, you get429 with a Retry-After header. Secret keys aren’t rate-limited; they’re bounded by your monthly allowance.
Errors
Errors are JSON with a human-readableerror, and a machine-readable code where one helps:
OpenAPI
The machine-readable spec is served at/v1/openapi.json. It’s generated from the same schemas the API validates with.