Get the cost report

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

Return spending in US dollars per UTC day, by workspace and line item. Plan-covered usage appears with billing_source: "subscription" and an amount of zero, so you see both what was used and what was paid. A day’s figures are final 24 hours after it ends; summing a month matches that month’s usage-credit charges to within a cent per line.

For how this fits into a full workflow, see Cost report.

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_atRFC 3339 timeRequiredFirst day, at midnight UTC.
ending_atRFC 3339 timenowExclusive end.
group_by[]stringworkspace_id, description, model, billing_source. Repeatable.
workspace_ids[]stringOnly these workspaces.
limitinteger7Days per page, 1 to 31.
after_idstringNext page.
before_idstringPrevious page.

Response

200 OK, Content-Type: application/json

{
  "data": [
    {
      "starting_at": "2026-11-04T00:00:00Z",
      "ending_at": "2026-11-05T00:00:00Z",
      "results": [
        {
          "workspace_id": "wrkspc_01JC0A2C4E6G8J0L2N4Q",
          "description": "Amara S1.2 output tokens",
          "line_item": "tokens.output",
          "model": "Amara S1.2",
          "billing_source": "api_credit",
          "quantity": "1204011",
          "unit": "token",
          "amount_usd": "14.4481"
        },
        {
          "workspace_id": "wrkspc_01JC0A2C4E6G8J0L2N4Q",
          "description": "Web search",
          "line_item": "server_tool.web_search",
          "model": null,
          "billing_source": "api_credit",
          "quantity": "412",
          "unit": "search",
          "amount_usd": "4.1200"
        }
      ]
    }
  ],
  "has_more": false,
  "first_id": "bkt_01JC7A0B2C4D6E8F",
  "last_id": "bkt_01JC7A0B2C4D6E8F"
}
FieldTypeDescription
results[].line_itemstringStable machine name such as tokens.output, server_tool.web_search or batch.tokens.input. New items appear as features ship.
results[].quantitystringAmount used, as a decimal string, in unit.
results[].amount_usdstringCost with four decimal places.

Examples

curl -sS "https://app.syntic.ai/v1/organizations/cost_report?starting_at=2026-11-01T00%3A00%3A00Z&group_by%5B%5D=workspace_id&group_by%5B%5D=description&limit=31" \
  -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.
400invalid_request_errorinvalid_time_rangestarting_at missing, after ending_at, or outside the data available for the bucket width.
400invalid_request_errorinvalid_group_byUnknown grouping dimension.
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.

Not included

Plan subscription fees, credit purchases, taxes and refunds are on your invoices in the Console’s Billing page, not in this report.

Was this page helpful?