Usage by model

⚠️
Preview — this feature is being built; the design below is the spec.
GET https://app.syntic.ai/v1/organizations/analytics/models

Requests, tokens, cache hit rate, average latency and errors per model, in time buckets. Use it to see the effect of moving traffic between models.

For how this fits into a full workflow, see Usage analytics.

Headers

HeaderRequiredValue
AuthorizationYesBearer <admin key>: an Admin API key (sk_admin_...). Inference keys are refused with 403 admin_key_required. See Admin API keys.
syntic-betaYes, while in previewadmin-2026-11-01. Without it the call fails with 400 beta_required. See Versioning.

Query parameters

ParameterTypeDefaultDescription
starting_atstringRFC 3339; required. Inclusive.
ending_atstringnowExclusive. At most 92 days after starting_at.
workspace_idstringRestrict to one workspace.
bucket_widthstring1d1h (ranges up to 7 days) or 1d.

Response

200 OK, Content-Type: application/json

{
  "data": [
    {
      "bucket_start": "2026-11-01T00:00:00Z",
      "results": [
        {
          "model": "Amara S1.2",
          "requests": 51022,
          "input_tokens": 244001220,
          "output_tokens": 16004110,
          "cache_hit_rate": 0.61,
          "p50_latency_ms": 820,
          "p95_latency_ms": 4100,
          "error_rate": 0.004
        },
        {
          "model": "Amara Quick",
          "requests": 90311,
          "input_tokens": 120440201,
          "output_tokens": 9011220,
          "cache_hit_rate": 0.48,
          "p50_latency_ms": 390,
          "p95_latency_ms": 1300,
          "error_rate": 0.002
        }
      ]
    }
  ],
  "has_more": false,
  "next_page": null
}
FieldTypeDescription
cache_hit_ratenumberShare of input tokens served from the prompt cache, 0 to 1.
p50_latency_msintegerMedian time to the last token.
error_ratenumberShare of requests that ended in a 4xx or 5xx other than 429.

Examples

curl -sS "https://app.syntic.ai/v1/organizations/analytics/models?starting_at=2026-11-01T00:00:00Z&bucket_width=1d" \
  -H "Authorization: Bearer $SYNTIC_ADMIN_KEY" \
  -H "syntic-beta: admin-2026-11-01"

Errors

Errors use the error envelope and carry a request_id. Codes specific to this operation:

StatustypecodeWhen
400invalid_request_errorbeta_requiredThe syntic-beta header is missing.
401authentication_errorinvalid_api_keyThe admin key is missing, unknown, revoked or expired.
403permission_erroradmin_key_requiredAn inference key was used.
429rate_limit_errorrate_limitedToo many requests; wait for Retry-After. See Rate-limit headers.
Was this page helpful?