> ## 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 Monthly Bill

## 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="startMonth" type="string" required={false}>
  Start month, in `YYYY-MM` format, for example `2025-10`. Monthly bill data is available starting from `2025-10`.
</ParamField>

<ParamField query="page" type="int32" required={false}>
  Page number, starting from `1`.
</ParamField>

<ParamField query="pageSize" type="int32" required={false}>
  Number of items per page.
</ParamField>

<Info>
  The current production environment fills months starting from `startMonth`, so the returned item count may not strictly equal `pageSize`.
</Info>

## Response Parameters

<ResponseField name="data" type="object[]" required={true}>
  Monthly bill list.

  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="billId" type="string" required={true}>
      Monthly bill ID.
    </ResponseField>

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

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

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

    <ResponseField name="originTotalAmount" type="string" required={true}>
      Original total amount before discounts or deductions, unit is 1/10000 USD.
    </ResponseField>

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

    <ResponseField name="cashPayAmount" type="string" required={true}>
      Amount paid in cash, unit is 1/10000 USD.
    </ResponseField>

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

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

    <ResponseField name="status" type="string" required={true}>
      Monthly bill status. Possible values:

      * `pending`
      * `outed`
      * `paid`
      * `overdue`
      * `voided`
    </ResponseField>

    <ResponseField name="invoiceUrl" type="string" required={true}>
      Bill or invoice download URL. Empty string means no downloadable file is available.
    </ResponseField>

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

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

<RequestExample>
  ```bash theme={"system"}
  curl --request GET \
    --url 'https://api.novita.ai/openapi/v1/billing/monthly/bill?startMonth=2025-10&page=1&pageSize=20' \
    --header 'Authorization: Bearer <API_KEY>'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"system"}
  {
    "data": [
      {
        "billId": "<string>",
        "userId": "<string>",
        "billingMonth": "2025-12",
        "totalAmount": "1000000",
        "originTotalAmount": "1200000",
        "voucherPayAmount": "200000",
        "cashPayAmount": "800000",
        "debtAmount": "0",
        "status": "paid",
        "invoiceUrl": "",
        "startTime": "1764547200",
        "endTime": "1767225599",
        "repaidAmount": "0"
      }
    ]
  }
  ```
</ResponseExample>
