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

# List Countries

> Retrieve the full list of countries supported by the Nexudus platform, including culture codes and ISO identifiers.

# List Countries

Returns all countries supported by the Nexudus platform. Used by address and profile forms across the portal to populate country dropdowns and map culture codes to display names.

## Authentication

No authentication required. This is a public endpoint.

## Query Parameters

<ParamField query="_shape" type="string">
  Comma-separated list of field paths to include in the response. When provided, only the
  specified fields are returned — useful for reducing payload size. Supports nested paths
  using dot notation. Example: `_shape=Countries.Name,Countries.TwoDigitsCode`.
</ParamField>

## Response

<ResponseField name="Countries" type="array">
  Array of country objects.
</ResponseField>

<ResponseField name="Countries[].Id" type="number">
  Numeric identifier for the country.
</ResponseField>

<ResponseField name="Countries[].Name" type="string">
  Display name of the country in English.
</ResponseField>

<ResponseField name="Countries[].TwoDigitsCode" type="string">
  ISO 3166-1 alpha-2 two-letter country code (e.g. `"GB"`, `"US"`, `"DE"`).
</ResponseField>

<ResponseField name="Countries[].Culture" type="string">
  BCP 47 culture/locale string for the country (e.g. `"en-GB"`, `"en-US"`, `"de-DE"`).
</ResponseField>

## Example Response

```json theme={null}
{
  "Countries": [
    {
      "Id": 1,
      "Name": "United Kingdom",
      "TwoDigitsCode": "GB",
      "Culture": "en-GB"
    },
    {
      "Id": 2,
      "Name": "United States",
      "TwoDigitsCode": "US",
      "Culture": "en-US"
    }
  ]
}
```

## TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'
import { useTypedData } from '@/api/fetchData'

const endpoint = endpoints.system.countries
// endpoint.type is { Countries: { Culture: string; Id: number; Name: string; TwoDigitsCode: string }[] }

const { resource } = useTypedData(httpClient, endpoint)
const countries = resource?.Countries ?? []
```

## Usage in Portal

| Context                          | Source file                |
| -------------------------------- | -------------------------- |
| Profile / address country picker | `src/views/profile/`       |
| Checkout country selector        | `src/views/checkout/`      |
| Virtual Office form              | `src/views/virtualOffice/` |

## Error Responses

<ResponseField name="500 Internal Server Error" type="error">
  Unexpected server-side error. Retry with exponential back-off.
</ResponseField>

## Related Endpoints

| Method | Endpoint                         | Description              |
| ------ | -------------------------------- | ------------------------ |
| `GET`  | `/api/public/businesses/current` | Get the current location |
| `GET`  | `/api/public/configuration`      | Get portal configuration |
