Skip to content
Median
Esc
↑↓navigate↵open⌘Jpreview

Spend and model calls

What the window cost, in microcredits: spend per day by service, model calls per day split into automatic and team-started, tokens per day, and conversation spend with how many conversations it covered. capped means the read stopped before the window’s first day.

GET/analytics/billing
Authorization
AuthorizationBearer token · headerrequired
`MEDIAN_KEY` from Settings under API, or an MCP OAuth access token. A key acts as the organization; a token acts as the person who approved it.
Query parameters
frominteger
The window's start, unix ms. Defaults to `days` ago.
daysinteger
Daily buckets after `from`. Default 30.
Allowed:73090
Responses
200The window's spend.
spendobject
Show properties
totalinteger
perDayobject
Show properties
aiinteger[]
emailinteger[]
scrapeinteger[]
requestsobject
Show properties
totalinteger
automaticinteger[]
teaminteger[]
tokensinteger[]
perConversationobject
Show properties
spendinteger
conversationsinteger
perDaySpendinteger[]
perDayConversationsinteger[]
perMessageobject
Show properties
spendinteger
messagesinteger
perDaySpendinteger[]
perDayMessagesinteger[]
cappedboolean
400The request is malformed, and the message names the field.
errorobject
Show properties
codestring
messagestring
401The bearer token is missing, revoked, or expired.
errorobject
Show properties
codestring
messagestring
429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobject
Show properties
codestring
messagestring
Request
curl -X GET "https://api.median.sh/v1/analytics/billing" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response
{
  "spend": {
    "total": 0,
    "perDay": {
      "ai": [
        0
      ],
      "email": [
        0
      ],
      "scrape": [
        0
      ]
    }
  },
  "requests": {
    "total": 0,
    "automatic": [
      0
    ],
    "team": [
      0
    ],
    "tokens": [
      0
    ]
  },
  "perConversation": {
    "spend": 0,
    "conversations": 0,
    "perDaySpend": [
      0
    ],
    "perDayConversations": [
      0
    ]
  },
  "perMessage": {
    "spend": 0,
    "messages": 0,
    "perDaySpend": [
      0
    ],
    "perDayMessages": [
      0
    ]
  },
  "capped": true
}