$SALTY_API as the base URL — set it once and the snippets work as-is.
Authorization: Bearer <token> (an sk_live_… API key, a Supabase JWT, or a salty_oat_… OAuth token). See Authentication.
Conventions
- Identifiers are UUIDs unless noted.
- Timestamps are ISO 8601 strings (
2026-05-24T02:45:46.461Z). - bigint fields (
deals.value_cents) are returned as strings to avoid JS precision loss. - All errors use the Stripe-shaped envelope. See Errors.
- Pagination uses opaque cursors. See Pagination.
- POST is idempotent when you pass
Idempotency-Key. See Idempotency. - Rate limits are per workspace, per plan tier. See Rate limits.
- Custom attributes are validated by the schema engine. See Schema engine.
Interactive explorer
Every endpoint listed here is also available in the Scalar API explorer at$SALTY_API/reference. Paste your key, click an endpoint, send a request, see the real response.
Endpoints in v1
Deletes are soft — records move to a 30-day trash and can be restored.
SDK alternative
Every endpoint here is also a method on theSalty class: