# catalog

Reference for surrealctl catalog — the platform-wide lists of regions, instance types, storage types, SurrealDB versions and billing countries.

`surrealctl catalog` browses the platform catalogues: the regions, instance types, versions and billing countries SurrealDB Cloud offers. These are the slugs [`instance create`](/docs/reference/cli/surrealctl/commands/instance.md#instance-create) and [`instance update`](/docs/reference/cli/surrealctl/commands/instance.md#instance-update) expect.

<Synopsis>
surrealctl catalog <COMMAND> [OPTIONS]
</Synopsis>

| Command | Purpose |
| --- | --- |
| [`regions`](#catalog-regions) | List the regions instances can be deployed in |
| [`instance-types`](#catalog-instance-types) | List the instance types available on the platform |
| [`storage-types`](#catalog-storage-types) | List the storage instance types available on the platform |
| [`instance-versions`](#catalog-instance-versions) | List the SurrealDB versions instances can run |
| [`billing-countries`](#catalog-billing-countries) | List the countries billing details can be registered in |

These are nouns rather than `list` verbs, because a catalogue has exactly one thing you can do with it. None takes a positional argument, none takes `--org`, and none carries any flag beyond the [list presentation flags](/docs/reference/cli/surrealctl/output-and-exit-codes.md#list-presentation-flags).

> [!IMPORTANT]
> These lists are **global**. What an organisation may actually deploy is narrower, and [`org plans`](/docs/reference/cli/surrealctl/commands/org.md#org-plans) is the organisation-scoped answer — the one to trust before a create.

## surrealctl catalog regions {#catalog-regions}

List the regions instances can be deployed in.

<Synopsis>
surrealctl catalog regions [OPTIONS]
</Synopsis>

This command takes no positional arguments and no options of its own. Column ids are `slug` and `description`, with `flag` under `--wide`.

```bash
surrealctl catalog regions
```

```text title="Output"
SLUG        DESCRIPTION
aws-euw1    Europe (Ireland)
aws-use1    US East (N. Virginia)
aws-usw2    US West (Oregon)
```

```bash title="Just the slugs"
surrealctl catalog regions --columns slug --no-header
```

The `slug` is what `--region` accepts.

## surrealctl catalog instance-types {#catalog-instance-types}

List the instance types available on the platform.

<Synopsis>
surrealctl catalog instance-types [OPTIONS]
</Synopsis>

This command takes no positional arguments and no options of its own. Column ids are `slug`, `category`, `cpu`, `memory`, `units`, `price_hour`, `storage` and `enabled`, with `display_name`, `restricted` and `description` under `--wide`.

```bash
surrealctl catalog instance-types
```

```bash title="Cheapest first"
surrealctl catalog instance-types --sort price_hour
```

The `slug` is what `--type` accepts. Prices stay in integer minor units under `--json`.

The `enabled` column is left unset here, because whether a type is available to you is a property of your organisation's plan rather than of the platform — check [`org plans`](/docs/reference/cli/surrealctl/commands/org.md#org-plans), or price a specific combination with [`instance estimate`](/docs/reference/cli/surrealctl/commands/instance.md#instance-estimate).

## surrealctl catalog storage-types {#catalog-storage-types}

List the storage instance types available on the platform.

<Synopsis>
surrealctl catalog storage-types [OPTIONS]
</Synopsis>

This command takes no positional arguments and no options of its own. The columns are the same as [`instance-types`](#catalog-instance-types).

```bash
surrealctl catalog storage-types
```

An empty list is a success, and says why on stderr:

```text
No storage instance types are offered. Distributed storage may not be available here.
```

## surrealctl catalog instance-versions {#catalog-instance-versions}

List the SurrealDB versions instances can run.

<Synopsis>
surrealctl catalog instance-versions [OPTIONS]
</Synopsis>

This command takes no positional arguments and no options of its own. The single column id is `version`.

```bash
surrealctl catalog instance-versions
```

```bash title="The version an update would move to"
surrealctl catalog instance-versions --limit 1 --no-header
```

The API's own order is newest-first and is left alone. `--sort version` sorts as strings, so `3.10.0` would come before `3.9.0` — prefer the default order when you want the newest release.

An empty list should not happen, and says so:

```text
The API returned no versions, which should not happen. Try again, or report it.
```

## surrealctl catalog billing-countries {#catalog-billing-countries}

List the countries billing details can be registered in.

<Synopsis>
surrealctl catalog billing-countries [OPTIONS]
</Synopsis>

This command takes no positional arguments and no options of its own. Column ids are `code` and `name`.

```bash
surrealctl catalog billing-countries
```

```bash title="Check one country is supported"
surrealctl catalog billing-countries --json | jq -e '.[] | select(.code == "IE")' > /dev/null
```

## Related pages

- [`instance create`](/docs/reference/cli/surrealctl/commands/instance.md#instance-create) — where these slugs are used
- [`org plans`](/docs/reference/cli/surrealctl/commands/org.md#org-plans) — the organisation-scoped subset
- [`instance estimate`](/docs/reference/cli/surrealctl/commands/instance.md#instance-estimate) — pricing a type and region before committing to it
- [Overview](/docs/reference/cli/surrealctl/overview.md) — the rest of the reference
- [SurrealDB CLI](/docs/reference/cli/surrealdb-cli/overview.md) — for working with the data inside an instance
