API & Automations

API keys and authentication

February 22, 2026 2 min read

Lattica’s API is REST + JSON. Authentication is a single header. Most integrations are working in under five minutes.

Generating a key

Open Settings → API → New API key. Choose:

  • Scope — read-only or read-write
  • Resource access — entire workspace, specific projects, or a single project
  • Expiry — never, 30 days, 90 days, or 1 year

The key is shown once, at creation. Lattica never displays it again — store it in your secrets manager immediately. If you lose it, revoke and generate a new one.

Authentication

Pass the key in the Authorization header on every request:

curl https://api.lattica.app/v1/tasks 
  -H "Authorization: Bearer lat_live_8FjK4qHN..."

Tokens prefixed with lat_live_ are production keys. Sandbox keys (for testing) start with lat_test_ and operate against a mirror workspace populated with sample data.

Rate limits

Plan Requests / minute Burst
Free 60 120
Team 300 600
Business 1,200 2,400
Enterprise Custom Custom

Every response includes X-RateLimit-Remaining and X-RateLimit-Reset headers. Going over returns 429 with a Retry-After header in seconds.

Pagination

List endpoints return up to 100 items. For more, use cursor pagination — the response includes a next_cursor; pass it as ?cursor=... on the next request.

GET /v1/tasks?limit=100
→ { "data": [...], "next_cursor": "eyJpZCI6IjEyMzQ1In0" }

GET /v1/tasks?limit=100&cursor=eyJpZCI6IjEyMzQ1In0
→ { "data": [...], "next_cursor": null }   ← end of results

Errors

Standard HTTP codes. Error responses include a machine-readable code and a human-readable message:

{
  "error": {
    "code": "task_not_found",
    "message": "No task with id 'task_xyz' in workspace 'ws_8FjK4q'.",
    "request_id": "req_aB12cD"
  }
}

Always log request_id — it’s what support will ask for.