pinstripes.
Account

Usage

GET/v1/usage

Returns token counts and cost broken down by day or model. With a session token the response aggregates all keys on the account. With an API key the response is scoped to that key only.

Query parameters

ParameterTypeRequiredDescription
fromstringNoStart date, YYYY-MM-DD. Default: 30 days ago.
tostringNoEnd date, YYYY-MM-DD. Default: today.
group_bystringNo"day" (default) or "model". Controls how results are bucketed.

Example

curl "https://api.pinstripes.io/v1/usage?from=2025-01-01&to=2025-01-31&group_by=day" \
  -H "Authorization: Bearer sk-ps-..."

Response (group_by=day)

{
  "days": [
    {
      "date": "2025-01-15",
      "prompt_tokens": 45000,
      "completion_tokens": 8200,
      "cached_tokens": 12000,
      "cost_usd": 0.0078,
      "requests": 34
    },
    {
      "date": "2025-01-16",
      "prompt_tokens": 31000,
      "completion_tokens": 5100,
      "cached_tokens": 9000,
      "cost_usd": 0.0051,
      "requests": 22
    }
  ],
  "totals": {
    "prompt_tokens": 76000,
    "completion_tokens": 13300,
    "cached_tokens": 21000,
    "cost_usd": 0.0129,
    "requests": 56
  }
}

Response (group_by=model)

Adds a by_model array alongside the totals field. The days array is omitted.

{
  "by_model": [
    {
      "model": "ps/deepseek-v4-flash",
      "prompt_tokens": 52000,
      "completion_tokens": 9800,
      "cached_tokens": 18000,
      "cost_usd": 0.0063,
      "requests": 41
    },
    {
      "model": "ps/qwen3.6-35b-a3b",
      "prompt_tokens": 24000,
      "completion_tokens": 3500,
      "cached_tokens": 3000,
      "cost_usd": 0.0066,
      "requests": 15
    }
  ],
  "totals": {
    "prompt_tokens": 76000,
    "completion_tokens": 13300,
    "cached_tokens": 21000,
    "cost_usd": 0.0129,
    "requests": 56
  }
}