All API requests require authentication via theDocumentation Index
Fetch the complete documentation index at: https://developer.lofty.com/llms.txt
Use this file to discover all available pages before exploring further.
Authorization header.
| Method | Header format | Best for |
|---|---|---|
| OAuth 2.0 | Bearer <access_token> | Multi-tenant apps, third-party integrations |
| API Key | token <api_key> | Personal automation, scripts, CLI |
Which method should I use?
| Scenario | Method | Grant Type |
|---|---|---|
CLI tool (lofty-cli) | API Key | Used as LOFTY_CUSTOMER_KEY in Client Credentials |
| Personal scripts / automation | API Key | Direct token header |
| Server-to-server (no user) | OAuth 2.0 | Client Credentials + customer_key |
| Web app (user authorizes) | OAuth 2.0 | Authorization Code |
| SPA / mobile app | OAuth 2.0 | Authorization Code + PKCE |
| Multi-tenant SaaS platform | OAuth 2.0 | Authorization Code |
OAuth 2.0
Three grant types: Authorization Code, PKCE, and Client Credentials. Scoped permissions with security review.
API Keys
User-scoped personal access tokens. Configurable expiration and
THIRD_PARTY_OPERATION scope.Base URL
Request format
Rate limiting
Rate limits are per-app (not per-account), configured on each registered application.| App Mode | Rate Limit |
|---|---|
| Development | 100 requests/min |
| Production | 500 requests/min |
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Time (UTC epoch seconds) when the window resets |
HTTP 429:
Some endpoints (e.g. AI features) have lower per-endpoint limits. Check the
X-RateLimit-Limit header in responses to determine the actual limit.Common errors
| HTTP Status | Code | Description |
|---|---|---|
401 | — | Invalid or missing authentication credentials. |
403 | 200100 | Token is valid but lacks the required permission scope. Grant the scope in the Developer Portal and re-authorize. |
429 | — | Rate limit exceeded. Retry with backoff. |