Onboarding
No signup · sandboxed echo · 30-min keyFrom zero to first request without an account.
Land here, get a temporary test API key in one round-trip, then fire the same POST /bookings shape the production surface expects. The key is bound to this browser session, expires in 30 minutes, and is never written to the database. When you are ready to make real bookings, register an agent on /quickstart.
Skip to the walkNeed real persistence? Switch to /quickstart — same flow with rows in the database.
Step 01
pending Session test API key
A short-lived
sk_test_<64-hex> token has been minted for this browser session. The plaintext is shown below so you can paste it into curl; the server never stores it.—agentId: —
expires: 30 min
Reload the page to start fresh — keys do not persist across sessions.
Step 02
browser fetchTry a
POST /bookingsThe snippet below matches the production
POST /api/bookings shape — same headers, same body. The browser fires it against /api/test-bookings, an echo endpoint that validates the body against the same contract without touching the database.POST/api/test-bookings
fetch('/api/test-bookings', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_test_<your-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"agentId": "agent_test_xxxxxxxx",
"startsAt": "2026-08-18T16:38:00.000Z",
"endsAt": "2026-08-18T17:38:00.000Z"
})
});The body uses the agent + window above; copy and run it from your terminal to see the same shape reach the wire.
awaiting request
no response yetResponse body
The echo runs the request through the same
BookingCreate contract as the production endpoint — a malformed body here would 400 the same way as on /api/bookings.Hit Try it in step 02 to see the response shape rendered here.