Skip to main content

API Keys

API keys authenticate every request to the Talonic REST API. Keys are prefixed with tlnc_, passed via the Authorization: Bearer header, and scoped so each integration gets only the access it needs. Manage them from Settings → API Keys in the app, or programmatically via /v1/account/keys.

Keys are SHA-256 hashed at rest — the full key is only shown once at creation, so copy it immediately. See the API Documentation for the complete endpoint reference the keys unlock.

Each API key is assigned one or more scopes that control what operations it can perform. Scopes follow the principle of least privilege — create a key with only the scopes your integration needs. For example, a read-only dashboard integration only needs the read scope, while an automated ingestion integration needs extract and read.

For best results, create separate API keys for each integration or service that connects to your Talonic workspace. This makes it easy to rotate or revoke a single key without disrupting other integrations. Most teams maintain one key for their ingestion integration, one for their BI dashboard, and one for webhook-based automations.

API keys are SHA-256 hashed at rest, which means the platform never stores the plaintext key after creation. This is a deliberate security measure — even if the database were compromised, the hashed keys cannot be reversed to their original values. When your integration sends a request, the platform hashes the incoming key and compares it against the stored hash. This design follows the same pattern used by GitHub, Stripe, and other major API providers.

  • Prefixed with tlnc_ for easy identification in logs and configuration files
  • Passed via the Authorization: Bearer header on every API request
  • SHA-256 hashed at rest — the full key is only shown once at creation
  • Six scopes: extract, read, write, operations, billing, and delivery (defaults: extract/read/write/operations)
  • Create separate keys per integration for independent rotation and revocation
  • No limit on the number of keys per workspace
Copy the full API key immediately after creation — it is only displayed once. If you lose the key, you must delete it and create a new one. Existing integrations using the old key will stop working until updated. Store API keys in a secrets manager, not in source code or environment files checked into version control.

API key scopes

ParameterTypeDescription
extractscopeUse the extraction API (POST /v1/extract).
readscopeRead documents, extractions, schemas, and jobs.
writescopeCreate and modify resources.
operationsscopeAccess the operations/process API for run orchestration and background operations.
billingscopeAccess billing endpoints such as upgrade links.
deliveryscopeManage delivery destinations, bindings, history, and DLQ.

Using Your API Key

Once you have created an API key, include it in the Authorization header of every request to the Talonic API. The key is passed as a Bearer token. All API endpoints require authentication — requests without a valid key receive a 401 Unauthorized response. Rate limits are tiered per namespace and metered per calendar day (UTC); every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so your integration can adapt.

Authenticate an API request
curl https://api.talonic.com/v1/documents \
  -H "Authorization: Bearer tlnc_your_api_key_here"
Response
{
  "data": [
    {
      "id": "doc_7f3a1b2c",
      "filename": "invoice.pdf",
      "status": "completed",
      "document_type": "Invoice"
    }
  ],
  "pagination": {
    "total": 156,
    "limit": 20,
    "has_more": true,
    "next_cursor": "eyJpZCI6MTU2fQ"
  }
}
Manage keys programmatically via /v1/account/keys
# List keys (raw values are never returned — only a masked prefix,
# scopes, and usage metadata):
curl https://api.talonic.com/v1/account/keys \
  -H "Authorization: Bearer $TALONIC_API_KEY"

# Create a scoped key (requires the write scope; the raw key is
# returned once and never retrievable again):
curl -X POST https://api.talonic.com/v1/account/keys \
  -H "Authorization: Bearer $TALONIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "bi-dashboard", "scopes": ["read"] }'

# Revoke a key by ID:
curl -X DELETE https://api.talonic.com/v1/account/keys/<keyId> \
  -H "Authorization: Bearer $TALONIC_API_KEY"

If your API key is compromised, delete it immediately from Settings and create a new one. Because keys are SHA-256 hashed at rest, the platform cannot display the key again after creation — you must generate a fresh key and update all integrations that used the old one. For production environments, store API keys in a secrets manager like AWS Secrets Manager, Azure Key Vault, or HashiCorp Vault rather than in environment files or source code.

A common pattern for enterprise teams is to create three API keys with different scopes: one extract-only key for your ingestion integration, one read-only key for your BI dashboard or monitoring tools, and one write key for administrative automation scripts. This separation ensures that a compromised dashboard key cannot be used to upload documents or modify schemas, and that your ingestion integration key cannot access sensitive configuration endpoints. Rotate each key independently on a regular schedule — monthly rotation is a common best practice for production environments.

Check rate limit headers
curl -I https://api.talonic.com/v1/documents \
  -H "Authorization: Bearer $TALONIC_API_KEY"

# Response headers include:
# X-RateLimit-Limit: 10000
# X-RateLimit-Remaining: 9898
# X-RateLimit-Reset: 2026-05-08T00:00:00.000Z

Frequently asked questions

How do I create an API key?+
Navigate to Settings > API Keys. The full key is only shown once at creation. Keys are prefixed with tlnc_ and passed via Authorization: Bearer header.
What scopes are available for API keys?+
Six scopes: extract (use the extraction API), read (read documents, extractions, schemas, jobs), write (create and modify resources), operations (the operations/process API for run orchestration), billing (billing endpoints such as upgrade links), and delivery (delivery destinations, bindings, and history). When you create a key without specifying scopes, it defaults to extract, read, write, and operations.
Can I have multiple API keys?+
Yes. You can create as many API keys as needed. Best practice is to create separate keys for each integration so you can rotate or revoke them independently without disrupting other services.
What are best practices for API key management?+
Store keys in a secrets manager rather than source code or environment files checked into version control. Create one key per integration so each can be rotated independently. Use the narrowest scope possible — a read-only dashboard needs only the read scope, not extract or write. Rotate keys on a regular schedule and immediately revoke any key that may have been exposed. Monitor API usage per key to detect anomalies early.
How do I check my rate limit usage?+
Every API response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. X-RateLimit-Remaining shows how many requests you can make before hitting the limit, and X-RateLimit-Reset is an ISO 8601 timestamp for when the daily window resets (midnight UTC). If you receive a 429 Too Many Requests response, wait until the reset time before retrying.
What is the recommended API key setup for production?+
Create three separate keys with different scopes: one extract-only key for your ingestion integration, one read-only key for dashboards and monitoring, and one write key for administrative automation. This separation ensures a compromised read-only key cannot upload documents or modify schemas. Label each key with the integration it serves and rotate them on a regular monthly schedule.