Skip to main content

Manage API Keys

Manage Talonic API keys programmatically: list masked keys, mint a new scoped key (the raw secret is returned once), and revoke keys you no longer need.

The API key management endpoints let a workspace manage its own Talonic API keys programmatically: list your keys (always masked, the raw secret is never returned again), mint a new key with a name and a chosen scope set, and revoke a key you no longer need. The raw secret of a new key is returned exactly once, on creation; store it immediately.

A key carries a subset of the valid scopes: extract, read, write, operations, billing, delivery, usage, records_write. If you omit scopes on create, the key defaults to extract, read, write, operations. Revocation is scoped to your own workspace; revoking a key that belongs to another organization is impossible and returns 404.

Two scopes are attenuation-only. usage gates the cost-visibility routes (GET /v1/usage/pipelines/:id, GET /v1/usage/runs/:id), and records_write is reserved for record-set write routes. records_write is deliberately its own token rather than part of write: a key that holds only write never reaches a record-set write. Self-issuance through POST /v1/account/keys can mint either scope only when the calling key already carries it; otherwise the request fails with 403 scope_not_grantable. A key can narrow its own privilege on a new key, never widen it. Workspace owners grant these scopes de novo through key management in the app.

Need a key that writes records? Ask a workspace owner to mint one with records_write through owner-level key management in the app. That key can then mint narrower keys (for example records_write + read) for individual services through this endpoint.
GET/v1/account/keys
POST/v1/account/keys

Body parameters

name*stringA label for the key (max 255 characters), e.g. "ci-pipeline".
scopesstring[]Requested scopes (subset of extract, read, write, operations, billing, delivery, usage, records_write). Defaults to extract, read, write, operations. usage and records_write are granted only when the calling key already holds them (403 scope_not_grantable otherwise).
expires_atstringWhen the key stops working, as an ISO 8601 date or date-time in the future (400 otherwise). Omitted: the key does not expire, except in an enterprise workspace, where it defaults to 90 days from creation and may not be set later than that.

curl — mint a key scoped to extraction and reads

curl -X POST https://api.talonic.com/v1/account/keys \
  -H "Authorization: Bearer $TALONIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "ci-pipeline", "scopes": ["extract", "read"] }'

Response (201 Created)

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "ci-pipeline",
  "key": "tlnc_0123456789abcdef0123456789abcdef",
  "masked_prefix": "tlnc_a1b2c3...",
  "scopes": ["extract", "read"],
  "created_at": "2026-07-01T10:00:00.000Z",
  "expires_at": null,
  "warning": "Store this key now. It will not be shown again."
}
DELETE/v1/account/keys/:keyId

Path parameters

keyId*stringThe API key id to revoke.
The raw key secret is shown only once, in the create response. If you lose it, revoke the key and mint a new one — it cannot be retrieved again.

Frequently asked questions

Can I retrieve an API key secret later?+
No. The raw secret is returned only once, in the create response. Listing keys returns masked values. If lost, revoke the key and mint a new one.
What scopes can a Talonic API key have?+
A subset of extract, read, write, operations, billing, delivery, usage, and records_write. Omitting scopes on create defaults to extract, read, write, operations. usage and records_write are attenuation-only: a key can pass them on to a new key only if it already holds them.
Why does requesting records_write return 403 scope_not_grantable?+
records_write is reserved for record-set write routes and is never self-issued from a key that lacks it. Mint the key from a key that already carries records_write, or have a workspace owner grant it through key management in the app.
How do I rotate a Talonic API key?+
Mint a replacement with POST /v1/account/keys, deploy the new secret to your integration, then revoke the old key with DELETE /v1/account/keys/:keyId. Revocation takes effect immediately.