Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.topify.ai/llms.txt

Use this file to discover all available pages before exploring further.

The public API uses API key authentication. Every request must include your key in the X-API-Key header.

Request header

X-API-Key: tk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Getting an API key

Generate API keys from your Topify.ai dashboard under Management > Members, or programmatically via the agentic setup endpoints. Each key is scoped to your team and gives access to all projects owned by that team. Only team admins can create API keys.
You can view and copy the full API key from the Members page at any time. Keys created before March 2026 only display a prefix — create a new key if you need the full value.

Rate limiting

Requests are rate-limited per API key. Limits depend on your plan tier:
TierRequests per minuteBurst allowanceTotal per window
Standard601070
Premium30050350

Response headers

Every response includes rate limit information:
HeaderTypeDescription
X-RateLimit-LimitintegerMaximum requests allowed in the current window
X-RateLimit-RemainingintegerRequests remaining before throttling
Retry-AfterintegerSeconds until the window resets (only present on 429)

Rate limit exceeded

When you exceed the limit, the API returns HTTP 429:
{
  "detail": "Rate limit exceeded. Retry after 42 seconds."
}

Key lifecycle

StateBehavior
ActiveKey is valid and accepts requests
InactiveKey has been disabled by an admin. Returns 401
ExpiredKey has passed its expiration date. Returns 401
You can deactivate or delete keys at any time from the dashboard.

Example requests

curl -X GET "https://topify-customer-api-production.up.railway.app/api/public/v1/projects" \
  -H "X-API-Key: tk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Error responses

StatusDetailCause
401Missing X-API-Key headerNo X-API-Key header provided
401Invalid API keyKey hash not found in the database
401API key is inactiveKey was disabled by an admin
401API key has expiredKey passed its expires_at date
429Rate limit exceeded. Retry after N seconds.Too many requests in the current window