Quick Summary: Every request carries
Authorization: Bearer sdb_live_.... Keys are created by administrators, scoped per resource, bound to an acting person, rotated with an overlap window, and revoked instantly.The key
A key looks likesdb_live_ followed by 32 random characters. The prefix identifies the environment that issued the key — production uses sdb_live_, a sandbox or staging environment issues its own (for example sdb_test_). Only the secret’s length and opacity are guaranteed, so never hard-code or validate the prefix in your client. Send the key on every request:
Scopes and the acting person
A key carries scopes inresource:action form — careers:read, careers:write, and so on. :write never implies :read. Independently, every key is bound to an acting person: the API’s effective permission is always the intersection of the key scopes and what that person may do in the app. A 403 tells you which of the two blocked the call.
Scope changes take effect on the very next request — nothing is cached.
Scope reference
Every endpoint’s reference page states the scope it needs on its Requires scope line./ping is the one scope-free endpoint — any valid key can call it. Remember the intersection rule above: a scope grants nothing the acting person cannot already do in the app — it only ever narrows.
Note: The three reserved scopes can already be granted to a key, but no v1 endpoint requires them today. They exist so keys can be provisioned ahead of the assessment and certification endpoints that will use them.