Conventions
- Money is integer cents.
hourly_rate: 3200 means $32.00/hr.
- Ids are opaque strings with a type prefix:
client_841, route_10312, bid_9917.
- Times of day are
HH:MM in the route's local timezone; dates are YYYY-MM-DD.
- Idempotency: send an
Idempotency-Key header on POSTs. A retry with the same key replays
the original response (for 24h) and creates nothing.
- Pagination: list endpoints take
?limit= (1–100) and ?starting_after=<id>; the response
is { "object": "list", "data": [...], "has_more": true }.
- Errors use real HTTP status codes plus a typed body:
{ "error": { "type": "...", "code": "...", "message": "...", "param": "..." } }.