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

<api-operation method="GET" path="/v1/countries">
<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.object
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The object type; always <code>
        country
      </code>
      
      . One of <code>
        country
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The country's ISO-3166 alpha-2 code.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.name
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The country's name.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.dial_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Identifies a numbering PLAN, not a country — +1 is the whole NANP.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.phone_pattern
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Pattern for the national number (no dial code, no trunk 0). Anchor it as ^(?:…)$; null means there is no format to check.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.phone_lengths
      </code>
    </td>
    
    <td>
      <code>
        array of integer
      </code>
    </td>
    
    <td>
      Allowed national-number lengths in digits; null means any.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.region_label
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Local name for the region field — "State", "Province", "Prefecture".
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.postal_label
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Local name for the postal field.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.has_postal_code
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      False for the ~60 countries with no postal system — hide the field entirely.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.postal_regex
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Anchor it as ^(?:…)$; null means there is no format to check.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.postal_redundant
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Characters to strip before matching (usually " -").
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.postal_hint
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      An example postal code for the country.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.subdivision_strict
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      True when a non-empty subdivision outside the list is rejected.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        data.has_subdivisions
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      Whether a list exists at all — some territories have none.
    </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/countries"
```

</template>

<template v-slot:response="">

```json [200 OK]
{
  "object": "list",
  "data": [
    {
      "object": "country",
      "code": "IN",
      "name": "United States",
      "region_label": "State",
      "postal_label": "PIN code",
      "has_postal_code": false,
      "subdivision_strict": false,
      "has_subdivisions": false
    }
  ]
}
```

</template>
</api-operation>


## Sitemap

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