Never commit keys to source control. Use your deployment platform’s
secret manager (AWS Secrets Manager, 1Password, Doppler, etc.) and
inject them at runtime.
If no key is provided and SPINE_API_KEY is unset, SpineClient()
raises ValueError immediately — before any network call.
Keys revoked in the dashboard stop working on the next request; you’ll
see AuthenticationError raised from the SDK. Roll new keys through
your secret store before revoking the old one so running processes
don’t break mid-run.
For advanced cases (custom proxies, SSL contexts, test doubles), pass a
pre-configured httpx.Client or httpx.AsyncClient. The SDK still
applies the X-API-KEY and User-Agent headers — your client does not
need to set them.