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

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

## 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.usage_close_delay_minutes
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      Extra minutes before a period's usage closes, for apps that buffer events. Usage closes about 6 minutes after the period ends plus this wait, never more than 30 minutes.
    </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 business's id (biz_…).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.name
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The business's name.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.livemode
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        live
      </code>
      
       for a live business, <code>
        test
      </code>
      
       for a test business. One of <code>
        live
      </code>
      
      , <code>
        test
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.live_business_id
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      On a test business: the id of its live mode. Null on a live business.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.test_business_id
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      On a live business: the id of its test mode. Null until test mode is first opened for a business created before test modes existed — POST /v1/businesses/{biz}/test_mode creates it.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.default_currency
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The business's default currency (ISO-4217 code).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.currencies
      </code>
    </td>
    
    <td>
      <code>
        array of string
      </code>
    </td>
    
    <td>
      Currencies this business transacts in; null = unrestricted.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.exchange_rates
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      The raw rate map: 1 default_currency = rate × key currency. Kept as numbers for the consumers that already read it; <code>
        currency_rates
      </code>
      
       below is the same rates with their provenance and is the one to prefer.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.currency_rates
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      Per-currency rate + provenance (one row per configured currency, excluding the business's own default, which is 1 by definition). This is what a currency-settings screen needs: whether the rate is maintained by hand or refreshed from a provider, when the rate being held was PUBLISHED, and why the last refresh failed if it did.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.week_start
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      First day of the reporting week. Default <code>
        sunday
      </code>
      
      . One of <code>
        sunday
      </code>
      
      , <code>
        monday
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.fiscal_year_start_month
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      Month (1–12) the fiscal year starts in; default 1 (the calendar year). Fiscal years are named by the year they end in.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.status
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The business's status.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.portal_field_config
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      The buyer portal's field matrix, resolved: every key present, tax-locked keys already mandatory.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.address_field_locks
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      Address keys the business's live tax setup forces to mandatory on checkout and portal. The settings refuse any other state for them.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.team_alerts_config
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      Team alerts. Each alert sends only when it is enabled and <code>
        recipients
      </code>
      
       has at least one address. Mail comes from the platform sender, not from the business mail settings.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.created_at
      </code>
    </td>
    
    <td>
      <code>
        string · ISO-8601
      </code>
    </td>
    
    <td>
      When the business was created (ISO-8601 UTC).
    </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" \
  -H "Authorization: Bearer $TMBILLING_API_KEY"
```

</template>

<template v-slot:response="">

```json [200 OK]
{
  "object": "list",
  "data": [
    {
      "object": "business",
      "id": "biz_XXXXXXXXXXXX01",
      "name": "Brightwater Analytics",
      "default_currency": "USD",
      "status": "active",
      "created_at": "2026-03-14T09:30:00Z"
    }
  ]
}
```

</template>
</api-operation>


## Sitemap

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