---
title: "List prices"
canonical_url: "https://twominutebilling.com/help/developers/api-reference/catalog/list-prices"
---
# List prices

<api-operation method="GET" path="/v1/businesses/{biz}/prices">
<template v-slot:docs="">

## Path parameters

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        biz
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <strong>
        yes
      </strong>
    </td>
    
    <td>
      Business id (biz_…)
    </td>
  </tr>
</tbody>
</table>

## Query parameters

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        include_archived
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Set to <code>
        true
      </code>
      
       to also list archived rows.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        limit
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Opt-in paging. Without <code>
        limit
      </code>
      
       or <code>
        starting_after
      </code>
      
       every matching row is returned as <code>
        { object, data }
      </code>
      
      ; <code>
        q
      </code>
      
      , <code>
        sort_by
      </code>
      
       and <code>
        field[op]
      </code>
      
       filters apply either way. With either, the response is one page with <code>
        has_more
      </code>
      
      , <code>
        next_cursor
      </code>
      
       and <code>
        total
      </code>
      
       (<code>
        limit
      </code>
      
       defaults to 50).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        starting_after
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Opaque cursor from a previous next_cursor
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        offset
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The previous page's next_offset — the same token as next_cursor under a second name. Pass one of offset or starting_after, not two different values.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        q
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Matches id, name or external name
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        sort_by[asc]
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Sort ascending by this field.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        sort_by[desc]
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Sort descending by this field.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        id
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        id
      </code>
      
      . Send as <code>
        id[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        name
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        name
      </code>
      
      . Send as <code>
        name[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        product
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter by the product's id (a slug id, e.g. <code>
        pro
      </code>
      
      ).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        type
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        type
      </code>
      
      . Send as <code>
        type[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        model
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        model
      </code>
      
      . Send as <code>
        model[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        currency
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        currency
      </code>
      
      . Send as <code>
        currency[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        interval
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        interval
      </code>
      
      . Send as <code>
        interval[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        interval_count
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        interval_count
      </code>
      
      . Send as <code>
        interval_count[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        amount_minor
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        amount_minor
      </code>
      
      . Send as <code>
        amount_minor[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        active
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        active
      </code>
      
      . Send as <code>
        active[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        created_at
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        created_at
      </code>
      
      . Send as <code>
        created_at[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        updated_at
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Filter on <code>
        updated_at
      </code>
      
      . Send as <code>
        updated_at[<operator>]=<value>
      </code>
      
      .
    </td>
  </tr>
</tbody>
</table>

## Response

<table>
<thead>
  <tr>
    <th>
      Field
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The object type; always <code>
        list
      </code>
      
      . One of <code>
        list
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      The rows on this page.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.grants_credit
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      Credit this price grants. <code>
        {"kind":"pack", …}
      </code>
      
       on a one-time price: each paid invoice line grants <code>
        amount
      </code>
      
       × quantity (paid credit, active once the invoice is paid). <code>
        {"kind":"per_cycle", …}
      </code>
      
       on a recurring price: <code>
        amount
      </code>
      
       × item quantity of promotional credit each period, with optional rollover. Null grants nothing.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.meter
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Bill from this meter's events. Models usage, tiered, volume or package. The usage aggregation is copied from the meter. Fixed after create.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.unit_amount_decimal
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The default rate: minor units per <code>
        quantity_divisor
      </code>
      
       units. A decimal string with at most 12 decimal places and no exponent, for example <code>
        "0.000125"
      </code>
      
      . "$3 per 1M tokens" is <code>
        "300"
      </code>
      
       with divisor 1000000.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.quantity_divisor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      The rate is per this many units. Default 1.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.amount_source
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        rate
      </code>
      
       (default): quantity × rate. <code>
        event_amount
      </code>
      
      : the sum of the events' <code>
        amount
      </code>
      
      . <code>
        event_cost
      </code>
      
      : the sum of <code>
        cost
      </code>
      
       × (1 + <code>
        markup_percent
      </code>
      
       ÷ 100). <code>
        model_price_list
      </code>
      
      : each combination at the selling rate: a fixed rate in <code>
        rates
      </code>
      
      , else its markup base × (1 + markup ÷ 100); a combination with no base bills <code>
        unit_amount_decimal
      </code>
      
      . <code>
        event_cost_or_list
      </code>
      
      : the events that carry a <code>
        cost
      </code>
      
       bill that cost × (1 + markup ÷ 100), on their own line; the events without one (or with a cost in another currency) bill as <code>
        model_price_list
      </code>
      
      ; a fixed rate for a combination wins over both. The last two: the usage model only, on a sum or count meter with a <code>
        price_list
      </code>
      
       mapping. One of <code>
        rate
      </code>
      
      , <code>
        event_amount
      </code>
      
      , <code>
        event_cost
      </code>
      
      , <code>
        model_price_list
      </code>
      
      , <code>
        event_cost_or_list
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.markup_percent
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        event_cost
      </code>
      
      , <code>
        model_price_list
      </code>
      
       and <code>
        event_cost_or_list
      </code>
      
       only: a decimal percent, 0 or more, up to 6 decimal places.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.markup_base
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        model_price_list
      </code>
      
       and <code>
        event_cost_or_list
      </code>
      
       only. <code>
        list
      </code>
      
       (default): the model price list, else your cost. <code>
        cost
      </code>
      
      : your cost, else the list. One of <code>
        list
      </code>
      
      , <code>
        cost
      </code>
      
      , <code>
        null
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.rates
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      The rate card. A combination that no row names bills at the price's own rate.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.object
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The object type.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.id
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The price's id (<code>
        pro-monthly-usd
      </code>
      
      ).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.product
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The product this price belongs to (a slug id, e.g. <code>
        pro
      </code>
      
      ).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.name
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The price's name.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.model
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The pricing model.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.type
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Whether the price recurs or is charged once.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.currency
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The price's currency (ISO-4217 code).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      The amount in minor units (integer), e.g. 2900 = $29.00.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.minimum_amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      Minimum spend for one billing period, or null.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.bill_usage_monthly
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      New subscriptions on this price invoice metered usage every month.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.commitment_amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      Minimum commitment for one full billing period, or null.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.interval
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The billing interval of a recurring price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.usage_aggregation
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      How usage in a period is combined, or null for a fixed price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.usage_recurring
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      The measured level carries into later periods.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.usage_time_unit
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The unit of a weighted_sum quantity, or null. One of <code>
        hour
      </code>
      
      , <code>
        day
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.metered
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      The price bills measured usage in arrears, not a fixed quantity.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.is_taxable
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      Whether tax applies to this price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.tax_behavior
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Whether the price includes tax or tax is added on top.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.show_description_in_invoices
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      Whether the price's description is printed on invoices.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.show_description_in_quotes
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      Stored and round-tripped; no quote renderer exists yet to honour it.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.tax_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      HSN/SAC for this price (India GST). Null falls through to the product’s, then the business default_tax_code.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.sku
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      SKU. Descriptive metadata — the engine reads it nowhere.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.accounting_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Accounting code (“Account Name”). Descriptive metadata — NOT a ledger account reference.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.accounting_category_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Accounting category code (“Class”). Descriptive metadata.
    </td>
  </tr>
</tbody>
</table>

## Status codes

<table>
<thead>
  <tr>
    <th>
      Status
    </th>
    
    <th>
      Meaning
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        200
      </code>
    </td>
    
    <td>
      Success
    </td>
  </tr>
</tbody>
</table>
</template>

<template v-slot:request="">

```bash [Request]
curl "$TMBILLING_URL/v1/businesses/biz_XXXXXXXXXXXX01/prices?limit=10" \
  -H "Authorization: Bearer $TMBILLING_API_KEY"
```

</template>

<template v-slot:response="">

```json [200 OK]
{
  "object": "list",
  "data": [
    {
      "object": "price",
      "id": "pro-monthly-usd",
      "product": "pro",
      "model": "flat",
      "type": "recurring",
      "currency": "USD",
      "amount_minor": 2900,
      "interval": "month"
    }
  ]
}
```

</template>
</api-operation>


## Sitemap

See the full [sitemap](https://twominutebilling.com/sitemap.md) for all pages.
