# IP pools and regions

> The pools floating IPs come from, the region each one serves, and how to see what is in stock.

Source: https://www.coritan.com/docs/floating-ips/pools/

In the dashboard:

- /dashboard/networking/pools: https://www.coritan.com/dashboard/networking/pools

A *pool* is a set of addresses we announce from one region. Every floating IP comes from a pool, and traffic to the address enters our network in that region. Choose a pool in the region where the instance or server you attach the address to runs.

## The Pools tab

In the [dashboard](https://www.coritan.com/dashboard/networking), go to **Floating IPs** and select the **Pools** tab. It lists the pools that have addresses in stock, grouped by region.

| What you see | What it means |
| --- | --- |
| Region heading | The region's name, its airport code such as `FRA`, and its country. |
| Pool card | One pool, with how many sizes it has in stock. |
| **Preferred** | The pool to choose first when a region has more than one. It is listed first. |
| Size row | A size in stock, such as `IPv4 /32 one address` or `IPv4 /29 5 usable hosts`, with the plan that sells it. |
| Price | The plan's price for its default billing period. `Price at checkout` means the plan's price did not load, and the order page shows it. |
| **Order** | Opens the Floating IPs order page with this pool and size chosen, as [Order a floating IP](/docs/floating-ips/order-a-floating-ip/) describes. |
| `Sold out` | The pool has no address of this size left. |
| `Every pool is sold out` | No pool has stock. Addresses return as other customers release them. For a larger block, [contact support](/docs/support/conversations/). |

Stock changes as customers order and release addresses. The tab and the order page show what is in stock when they load.

## Sizes

| Prefix | What you get |
| --- | --- |
| `/32` | One address. |
| `/29` to `/24` | A subnet. [How subnets work](/docs/floating-ips/subnets/) lists how many usable hosts each size has. |

Every size is IPv4. Subnets appear only when the catalogue sells them, so a region can offer single addresses and no subnets.

## The pools API

`GET /api/v1/client/ips/pools` lists the pools with stock of one size.

| Query parameter | Default | Values |
| --- | --- | --- |
| `version` | `ipv4` | `ipv4` or `ipv6`. Floating IPs are IPv4, so leave it out. |
| `prefix_len` | single addresses | `32` for single addresses, or `24` to `29` for subnets of that size. |
| `region` | every region | An airport code in lower case, such as `fra`. |

```bash
curl "https://api.coritan.com/api/v1/client/ips/pools?prefix_len=29" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

```json
{
  "pools": [
    {
      "id": 4,
      "uuid": "0b6c2f4e-6c4a-4d4e-9d61-1f1a2b3c4d5e",
      "name": "Frankfurt 1",
      "slug": "frankfurt-1",
      "region": "fra",
      "country_code": "DE",
      "geo_label": "Frankfurt",
      "preference_rank": 10,
      "available": true,
      "version": "ipv4",
      "prefix_len": 29
    }
  ]
}
```

| Field | Meaning |
| --- | --- |
| `id` | The pool's ID. Send it as `config.pool_id` when you order. |
| `name`, `slug` | The pool's name as the dashboard shows it, and a short form of it. |
| `region` | The region's airport code. |
| `country_code` | The two-letter code of the pool's country. |
| `geo_label` | The region's name. |
| `preference_rank` | The order to prefer pools within a region, lowest first. |
| `available` | `true` when the pool has stock of the size you asked for. |
| `version`, `prefix_len` | The size you asked for. |

Only pools with stock of the size appear, and the response gives no counts.

| Response | When |
| --- | --- |
| `200` with `"pools": []` | No pool has stock of that size, or the catalogue does not sell subnets. |
| `422` with `version must be ipv4 or ipv6` | `version` is another word. |
| `422` with a message that starts `prefix_len must be one of` | `prefix_len` is not `32` or `24` to `29`. |

The [Floating IPs API reference](/docs/api/reference/client/floating-ips/#op-get-api-v1-client-ips-pools) lists every field.

## API

- `GET /api/v1/client/ips/pools`: Active geo pools with sellable stock for ordering (https://www.coritan.com/docs/api/reference/client/floating-ips/#op-get-api-v1-client-ips-pools)
