curl --request GET \
--url 'https://api.novita.ai/openapi/v1/billing/apikey/bill/list?cycleType=Day&category=llm&startTime=1767225600&endTime=1769817599' \
--header 'Authorization: Bearer <API_KEY>'
curl --request GET \
--url 'https://api.novita.ai/openapi/v1/billing/apikey/bill/list?cycleType=Hour&category=llm&startTime=1767225600&endTime=1767830399' \
--header 'Authorization: Bearer <API_KEY>'
{
"bills": [
{
"userId": "<string>",
"startTime": "1767225600",
"endTime": "1767311999",
"billingMethod": 1,
"productName": "<string>",
"category": "llm",
"ownerID": "<api_key_id>",
"billNum0": "1000",
"billNum1": "500",
"basePrice0": "0",
"basePrice1": "0",
"discountPrice0": "0",
"discountPrice1": "0",
"amount": "10000",
"voucherAmount": "0",
"payAmount": "10000",
"payAmountDisplay": 1,
"pricePrecision": 1,
"productId": "<string>",
"apikeyName": "<string>",
"apikeyMask": "sk-****"
}
]
}
Basic
Query API Key Billing
GET
/
openapi
/
v1
/
billing
/
apikey
/
bill
/
list
curl --request GET \
--url 'https://api.novita.ai/openapi/v1/billing/apikey/bill/list?cycleType=Day&category=llm&startTime=1767225600&endTime=1769817599' \
--header 'Authorization: Bearer <API_KEY>'
curl --request GET \
--url 'https://api.novita.ai/openapi/v1/billing/apikey/bill/list?cycleType=Hour&category=llm&startTime=1767225600&endTime=1767830399' \
--header 'Authorization: Bearer <API_KEY>'
{
"bills": [
{
"userId": "<string>",
"startTime": "1767225600",
"endTime": "1767311999",
"billingMethod": 1,
"productName": "<string>",
"category": "llm",
"ownerID": "<api_key_id>",
"billNum0": "1000",
"billNum1": "500",
"basePrice0": "0",
"basePrice1": "0",
"discountPrice0": "0",
"discountPrice1": "0",
"amount": "10000",
"voucherAmount": "0",
"payAmount": "10000",
"payAmountDisplay": 1,
"pricePrecision": 1,
"productId": "<string>",
"apikeyName": "<string>",
"apikeyMask": "sk-****"
}
]
}
Request Headers
string
required
Enum:
application/jsonstring
required
Bearer authentication format, for example: Bearer {{API Key}}.
Query Parameters
string
required
Billing granularity. The maximum query range depends on the granularity you pick:
Hour(up to 7 days per request)Day(up to 31 days per request)Week(up to 31 days per request)Month(up to 31 days per request)
string
Product type or business category. Common values:
llm, gen_api, web_search.string
Product name. Supports fuzzy matching.
integer
required
Query start time, Unix timestamp in seconds (int64). Must be greater than or equal to
2026-01-01 00:00:00.integer
required
Query end time, Unix timestamp in seconds (int64). Must be greater than
startTime.This endpoint only supports data after
2026-01-01 00:00:00. It does not support pagination. The range between startTime and endTime must stay within the limit for the cycleType you request: 7 days for Hour, 31 days for Day, Week, and Month. To cover a longer period, split it into several requests.The query range limit is now enforced by the API. It used to be applied only in the Novita console, so requests sent directly to this endpoint were never rejected for being too long. If your integration queries more than 31 days at once (or more than 7 days with The message always names the limit and the granularity that was rejected, so you can split the range and retry.
cycleType=Hour), it now fails with HTTP 400 and a message in the form:time range must not exceed 31 days for cycleType "Month"
The API Key billing page in the Novita console offers only hourly and daily granularity. This endpoint still accepts all four values, so
Week and Month remain available to API callers even though they are no longer offered in the console.Response Parameters
object[]
required
API Key bill list.
Hide properties
Hide properties
string
required
User account ID.
string
required
Bill start time, Unix timestamp in seconds. It marks the first second of the billing period. With
cycleType=Hour, it is the top of that hour, for example 10:00:00.string
required
Bill end time, Unix timestamp in seconds. It marks the last second of the billing period. With
cycleType=Hour, it is minute 59 and second 59 of the same hour, for example 10:59:59.int32
required
Billing method:
1 (pay-as-you-go), 2 (subscription).string
required
Product name.
string
required
Product type or subcategory.
string
required
API Key ID.
string
required
API Key name.
string
required
Masked API Key.
string
required
Product ID.
string
required
Usage field 0. For
llm, this usually means input price per 1M tokens; GPU: price per card per hour; storage: price per GB per day.string
required
Usage field 1. For
llm, this usually means output tokens.string
required
Usage field 2. For
llm, this usually means read cache price per 1M tokens.string
required
Usage field 3. For
llm, this usually means write 5-minute cache price per 1M tokens.string
required
Usage field 4. For
llm, this usually means reasoning token price per 1M tokens.string
required
Usage field 5. For
llm, this usually means write 1-hour cache price per 1M tokens.string
Usage field 6.
string
Usage field 7.
string
Usage field 8.
string
Usage field 9.
string
Usage field 10.
string
Usage field 11.
string
Usage field 12.
string
Usage field 13.
string
Usage field 14.
string
Usage field 15.
string
required
Original price field 0. For
llm: input price per 1M tokens; GPU: price per card per hour; storage: price per GB per day.string
required
Original price field 1. For
llm, output price per 1M tokens.string
required
Original price field 2. For
llm, read cache price per 1M tokens.string
required
Original price field 3. For
llm, write 5-minute cache price per 1M tokens.string
required
Original price field 4. For
llm, reasoning token price per 1M tokens.string
required
Original price field 5. For
llm, write 1-hour cache price per 1M tokens.string
required
Discounted price field 0. For
llm, discounted input token price.string
required
Discounted price field 1. For
llm, discounted output token price.string
required
Discounted price field 2. For
llm, discounted read cache price per 1M tokens.string
required
Discounted price field 3. For
llm, discounted write 5-minute cache price per 1M tokens.string
required
Discounted price field 4. For
llm, discounted reasoning token price per 1M tokens.string
required
Discounted price field 5. For
llm, discounted write 1-hour cache price per 1M tokens.string
required
Total amount, unit is 1/10000 USD.
string
required
Amount deducted by vouchers, unit is 1/10000 USD.
string
required
Cash payment amount, unit is 1/10000 USD.
float
required
Display value of cash payment amount, in USD.
int32
required
Price precision. Unit price (USD) = unit price / 10000 /
pricePrecision.string
LLM series.
string
Request count.
object
Multimodal model billing details.
object
Tiered billing configuration.
curl --request GET \
--url 'https://api.novita.ai/openapi/v1/billing/apikey/bill/list?cycleType=Day&category=llm&startTime=1767225600&endTime=1769817599' \
--header 'Authorization: Bearer <API_KEY>'
curl --request GET \
--url 'https://api.novita.ai/openapi/v1/billing/apikey/bill/list?cycleType=Hour&category=llm&startTime=1767225600&endTime=1767830399' \
--header 'Authorization: Bearer <API_KEY>'
{
"bills": [
{
"userId": "<string>",
"startTime": "1767225600",
"endTime": "1767311999",
"billingMethod": 1,
"productName": "<string>",
"category": "llm",
"ownerID": "<api_key_id>",
"billNum0": "1000",
"billNum1": "500",
"basePrice0": "0",
"basePrice1": "0",
"discountPrice0": "0",
"discountPrice1": "0",
"amount": "10000",
"voucherAmount": "0",
"payAmount": "10000",
"payAmountDisplay": 1,
"pricePrecision": 1,
"productId": "<string>",
"apikeyName": "<string>",
"apikeyMask": "sk-****"
}
]
}
Last modified on August 7, 2026