> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Query Fixed-term Billing

## Request Headers

<ParamField header="Content-Type" type="string" required={true}>
  Enum: `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Bearer authentication format, for example: Bearer \{\{API Key}}.
</ParamField>

## Query Parameters

<ParamField query="category" type="string" required={false}>
  Product type. Common values:

  * `summary` (Summary bill)
  * `gpu` (GPU instance)
  * `serverless` (Serverless Endpoint)
  * `cloud_storage` (Cloud storage)
  * `local_storage` (Local storage)
  * `image` (Image)
  * `bare_metal` (Bare metal)
</ParamField>

<ParamField query="productName" type="string" required={false}>
  Product name. Supports fuzzy matching.
</ParamField>

<ParamField query="startTime" type="integer" required={false}>
  Start time of the billing period to query, Unix timestamp in seconds (int64).
</ParamField>

<ParamField query="endTime" type="integer" required={false}>
  End time of the billing period to query, Unix timestamp in seconds (int64).
</ParamField>

<ParamField query="ownerId" type="string" required={false}>
  Resource instance ID.
</ParamField>

<Info>
  This endpoint does not support pagination. Keep each query range within 31 days. For longer ranges, split requests by calendar month or calendar week.
</Info>

## Response Parameters

<ResponseField name="bills" type="object[]" required={true}>
  Subscription / fixed-term bill list.

  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="userId" type="string" required={true}>
      User account ID.
    </ResponseField>

    <ResponseField name="memberId" type="string" required={false}>
      Member (sub-user) account ID.
    </ResponseField>

    <ResponseField name="startTime" type="string" required={true}>
      Bill start time, Unix timestamp in seconds.
    </ResponseField>

    <ResponseField name="endTime" type="string" required={true}>
      Bill end time, Unix timestamp in seconds.
    </ResponseField>

    <ResponseField name="productName" type="string" required={true}>
      Product name.
    </ResponseField>

    <ResponseField name="productCategory" type="string" required={true}>
      Product type.
    </ResponseField>

    <ResponseField name="productId" type="string" required={true}>
      Product ID.
    </ResponseField>

    <ResponseField name="ownerID" type="string" required={true}>
      Resource instance ID.
    </ResponseField>

    <ResponseField name="tradeMode" type="string" required={true}>
      Billing mode. `monthly` indicates subscription.
    </ResponseField>

    <ResponseField name="tradeType" type="string" required={true}>
      Subscription transaction type. Common values:

      * `monthly_new_buy` (new purchase)
      * `monthly_re_buy` (renewal)
      * `monthly_re_config` (configuration change or scale-up)
    </ResponseField>

    <ResponseField name="billingMethod" type="int32" required={true}>
      Billing method:

      * `1`: pay-as-you-go
      * `2`: subscription
      * `3`: refund
      * `4`: Spot billing
      * `5`: Batch API
      * `6`: Saving Plan
      * `7`: LLM multimodal billing
      * `8`: bare metal test deduction
    </ResponseField>

    <ResponseField name="basePrice" type="string" required={true}>
      Unit price.
    </ResponseField>

    <ResponseField name="billNum" type="string" required={true}>
      Usage. For `gpu`, this usually means GPU card count × subscription duration. For storage products, this usually means storage capacity.
    </ResponseField>

    <ResponseField name="amount" type="string" required={true}>
      Total amount, unit is 1/10000 USD.
    </ResponseField>

    <ResponseField name="voucherAmount" type="string" required={true}>
      Amount deducted by vouchers, unit is 1/10000 USD.
    </ResponseField>

    <ResponseField name="payAmount" type="string" required={true}>
      Cash payment amount, unit is 1/10000 USD.
    </ResponseField>

    <ResponseField name="payAmountDisplay" type="float" required={true}>
      Display value of cash payment amount, in USD.
    </ResponseField>

    <ResponseField name="pricePrecision" type="int32" required={true}>
      Price precision. Unit price (USD) = unit price / 10000 / `pricePrecision`.
    </ResponseField>

    <ResponseField name="createTime" type="string" required={true}>
      Bill creation time, Unix timestamp in seconds.
    </ResponseField>

    <ResponseField name="cycle" type="string" required={true}>
      Billing cycle, in `YYYY-MM` format.
    </ResponseField>

    <ResponseField name="storageDays" type="int32" required={false}>
      Storage usage duration, in days.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash theme={"system"}
  curl --request GET \
    --url 'https://api.novita.ai/openapi/v1/billing/bill/monthly/list?category=gpu&startTime=1764547200&endTime=1767225599' \
    --header 'Authorization: Bearer <API_KEY>'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"system"}
  {
    "bills": [
      {
        "userId": "<string>",
        "memberId": "<string>",
        "startTime": "1764547200",
        "endTime": "1767225599",
        "productName": "<string>",
        "productCategory": "gpu",
        "ownerID": "<string>",
        "tradeMode": "monthly",
        "tradeType": "monthly_new_buy",
        "basePrice": "1000000",
        "billNum": "1",
        "amount": "1000000",
        "voucherAmount": "0",
        "payAmount": "1000000",
        "payAmountDisplay": 100,
        "pricePrecision": 1,
        "createTime": "1764547200",
        "cycle": "2025-12",
        "productId": "<string>",
        "billingMethod": 2
      }
    ]
  }
  ```
</ResponseExample>
