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/billingAuthorization
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
fromintegerThe window's start, unix ms. Defaults to `days` ago.
daysintegerDaily buckets after `from`. Default 30.
Allowed:
73090Responses
200The window's spend.
spendobjectShow propertiesHide properties
totalintegerperDayobjectShow propertiesHide properties
aiinteger[]emailinteger[]scrapeinteger[]requestsobjectShow propertiesHide properties
totalintegerautomaticinteger[]teaminteger[]tokensinteger[]perConversationobjectShow propertiesHide properties
spendintegerconversationsintegerperDaySpendinteger[]perDayConversationsinteger[]perMessageobjectShow propertiesHide properties
spendintegermessagesintegerperDaySpendinteger[]perDayMessagesinteger[]cappedboolean400The request is malformed, and the message names the field.
errorobjectShow propertiesHide properties
codestringmessagestring401The bearer token is missing, revoked, or expired.
errorobjectShow propertiesHide properties
codestringmessagestring429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobjectShow propertiesHide properties
codestringmessagestringRequest
curl -X GET "https://api.median.sh/v1/analytics/billing" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.median.sh/v1/analytics/billing", {
method: "GET",
headers: {
"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
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}