Every call toDocumentation Index
Fetch the complete documentation index at: https://teardowns.aero/docs/llms.txt
Use this file to discover all available pages before exploring further.
/public/v1/* carries two headers. The API key
authenticates the caller, the organization id pins the request to a
specific org. Both are required on every request, missing either gets
a clean error before any business logic runs.
Authorization
The bearer token is the API key minted on Settings → API Access.
- Format:
tdao_live_prefix + 32 base32 characters (lowercase), ~160 bits of entropy. - Only the SHA-256 hash is stored, the raw value is never persisted. Lose it, revoke and re-mint.
- Carries no identity beyond “a key for org X minted by user Y.” The user’s capabilities are re-read on every request, so deactivating that user invalidates the key immediately.

X-Organization-Id
The UUID of your organization. It’s right above your keys table on
Settings → API Access, never changes, safe to hard-code in your
integration config.
Sending it explicitly (rather than relying on the key alone) gives us
two things: a belt-and-braces check that the key and header agree, and
a clean security signal a mismatch is never a legitimate user
error, so monitoring alerts on every occurrence.

What we verify on each request
The request runs through these checks in order. Each step has its own error code, so you can branch on exactly what went wrong, see errors for the full list.Authorizationpresent and starts withBearer tdao_live_.X-Organization-Idis a parseable UUID.SHA-256(token)matches a row inapi_keys.- That row is
status='active'and not past its expiry. - The key’s
org_idmatchesX-Organization-Id. - The org is in good standing (account status, subscription).
- API access is enabled for that org.
- The user who minted the key is still active in that org.
- The user holds the capability the endpoint requires (writes need
seller).
error_code in code, show message to humans.
Common questions
Can I share one API key across multiple ERPs?
Can I share one API key across multiple ERPs?
What happens if the user who minted the key leaves the org?
What happens if the user who minted the key leaves the org?
The key starts returning 403
api_key_creator_revoked immediately
(we re-check the creator on every request). A background sweep also
flips the key to revoked within an hour so subsequent calls return
401. Have another eligible member mint a replacement key before
offboarding the original minter.Does rotating a key invalidate old requests?
Does rotating a key invalidate old requests?
Rotation is atomic the old key returns 401 the instant the new key
appears. Requests already past the lookup step with the old key
complete normally. The window is tiny and benign.
Is HTTPS required?
Is HTTPS required?
Yes. Production accepts HTTPS only. The API key in plaintext over
HTTP is a leak.

