Skip to navigation

Overview

View as Markdown

Saturn’s external API for firms integrating their own systems.

Authentication

Every request needs your API key:

Authorization: Api-Key <your key>

The key identifies your firm. All data returned is your firm’s data, and only your firm’s data — there is no parameter to select an organisation, and any attempt to supply one is ignored.

Keys are shown once at creation and cannot be recovered. If a key is lost or exposed, ask Saturn to revoke it and issue a new one.

Identifying records

Every record has a saturn_ref_id — a UUID that is stable for the life of the record. Store it when you first see a record and use it for every later request.

You do not tell Saturn which CRM you use, and there are no CRM-specific identifiers or endpoints. If you have no CRM integration at all, this API still works exactly the same way.

Response shape

Successful responses:

{ “success”: true, “data”: { … }, “error”: null }

List responses add pagination:

{ “success”: true, “data”: [ … ], “meta”: { “pagination”: { “count”: 120, “limit”: 10, “offset”: 0 } } }

Optional fields are null when unset, never an empty string, so you can distinguish “not recorded” from “empty”.

Status codes

CodeMeaning
200Success
400Invalid request — malformed id or bad parameter
401Missing, invalid, revoked or expired API key
403Your key lacks the scope for this operation
404Not found. Also returned for a record belonging to another firm — the two are indistinguishable by design
429Rate limit exceeded. Check Retry-After
502A Saturn upstream service is unavailable. Retry; this does not mean the data is missing

A 404 for another firm’s record is deliberate: a 403 would confirm the record exists, which would let anyone probe for valid ids.

Rate limits

Limits are per key. X-RateLimit-Limit and X-RateLimit-Remaining are returned on every response. If you are backfilling and need a higher ceiling, ask before you start rather than discovering the limit mid-run.