Simmer Docs

Public API Authentication

Authenticate requests with project-scoped API keys, scopes, rate limits, and standard error responses.

Public API requests authenticate with a project-scoped API key. Send the key in the Authorization header as a bearer token:

Authorization: Bearer YOUR_PUBLIC_API_KEY

Keep API keys secret. Use them from trusted server-side environments, not from browser code or mobile apps.

Manage keys

Open your project's API page in the dashboard to create, revoke, and review API keys. Choose the narrowest preset for each integration:

PresetScopes
Reporting read keyreporting:read
Conversion write keyconversions:write
Full project API keyreporting:read, activity:read, conversions:write

The API page also lists connected MCP clients and managed MCP-backed keys. Revoking either the MCP connection or its managed key disables that client's access.

Scopes

Each API key has one or more scopes. Scopes limit what that key can do:

ScopeAllows
reporting:readRead reporting metrics and conversion journeys.
activity:readRead unconverted visitor activity.
conversions:writeCreate conversion events.

If a key is valid but does not include the scope required by an endpoint, the request fails with a missing_scope error.

Rate limits

Public API requests are rate limited per API key. Reporting reads and conversion writes may have different limits. Invalid authentication attempts may also be limited by client address.

When a limit is exceeded, the API returns 429 Too Many Requests with a rate_limit_exceeded error code. If you have multiple integrations, create separate keys for each integration so permissions remain isolated.

Error envelope

Errors use a consistent JSON envelope:

{
  "error": {
    "code": "invalid_request",
    "message": "The request could not be processed.",
    "request_id": "req_..."
  }
}

The code field is stable and suitable for programmatic handling. The message field is human-readable and may change. Some errors may include a details object with additional fields that explain how to fix the request.

Common error codes include:

CodeMeaning
invalid_api_keyThe bearer token is missing, invalid, or no longer active.
missing_scopeThe key does not have the scope required for the endpoint.
invalid_requestThe request body or query string is malformed.
invalid_date_rangeThe reporting date filters are invalid.
invalid_cursorThe pagination cursor is invalid or expired.
rate_limit_exceededThe request exceeded an API rate limit.
not_foundThe requested resource was not found.
validation_failedOne or more fields failed validation.
internal_errorThe API could not complete the request. Retry later.

See the API Reference for endpoint-specific status codes and schemas.

On this page