# How do dedicated IPs work?

> Exclusive same-class IPs you add from Network.

A dedicated IP is a sending address only your team can use. You add it from **Network** for $50 a month, then assign it to one or more of your clusters. Clusters themselves are always created on shared IPs.

## What you get

- **Exclusive use.** No other team sends on the address.
- **The same class as the cluster.** A transactional cluster takes a transactional IP, and a bulk cluster takes a bulk IP. A cluster's class is set when you create it and cannot change.
- **Reuse across clusters.** You can assign one dedicated IP to several of your clusters of the same class.
- **One per cluster.** A cluster holds at most one dedicated IP at a time. To send on more than one, put them in an IP pool.
- **Your IPs in one place.** **Network** lists only your team's IPs: the shared IPs your clusters send on and the dedicated IPs you own. **Used by** shows the cluster, the pool (**Pool: name**), or **Not in use**. IPs you can buy only appear when you select **Add IP**.

## Add and assign a dedicated IP

1. Open a cluster and click **+** on **Sending IPs**, or open **Network** and click **Add IP**. To buy one for a pool, open the pool and select **Get a dedicated IP**; it is added to the pool for you.
2. Pick the cluster. The list shows only IPs of that cluster's class. Pick **Leave unassigned** to buy a dedicated IP without a cluster.
3. Pick the IP.
4. Choose the send split. By default the existing IPs keep 90% and the new IP gets 10%. You can set a custom split that adds up to 100.

Only a Team Administrator can change Network.

## Send one message from a specific IP

The send split spreads a cluster's mail across its IPs. To send one message from a specific IP, add a header such as `X-Capsule-Ip: 203.0.113.10`. It works on SMTP, HTTP inject, and the `headers` object of `POST /emails` and `POST /sends`.

The IP must be one of that cluster's sending IPs, or an IP in one of your IP pools attached to the cluster. Any other address is rejected, with `550` on SMTP. The header is removed before the message leaves.

## IP pools

An IP pool is a named set of your dedicated IPs that mail opts into. Use one when part of your mail, such as one customer's or one site's, should always leave from its own IPs.

- **The default pool.** Every cluster's sending IPs are its default pool. Mail with no pool header sends from it, as before.
- **Named pools.** Create a pool with a name such as `site_123` and an email type, transactional or marketing. Add dedicated IPs you own of that type, each with a weight from 1 to 100. Weights are relative and don't need to add up to 100; the pool page shows each IP's share of mail. Then attach the pool to any of your shared clusters of the same type.
- **One place per IP.** An IP sends from a cluster's default pool or from pools, never both. Mail without the header never leaves on a pool IP. One IP can sit in several of your pools.
- **Warm-up.** A newly bought dedicated IP starts its 14-day warm-up when it first joins a cluster or a pool. While it warms, it takes about 100 messages a day. See [Set up IP pools and warm up dedicated IPs](/docs/guides/set-up-ip-pools-and-warm-up) for how to ramp up from there.

To send from a pool, add `X-Capsule-Pool: site_123` on SMTP, HTTP inject, or the `headers` object of `POST /emails` and `POST /sends`. The name is not case-sensitive. `default` means the default pool.

- A pool that doesn't exist, isn't attached to the cluster, or has no live IPs is rejected with `550 5.7.1 X-Capsule-Pool is not a sending pool on this cluster`. The message never falls back to the default pool.
- With both `X-Capsule-Pool` and `X-Capsule-Ip`, the IP must be in that pool.
- Both headers are removed before the message leaves.
- If you detach or empty a pool while mail for it is queued, that mail waits and is retried. It does not go out on the default pool.

While every IP in a pool is still warming, the pool can only take part of its mail. With **Use the cluster's IPs while warming up** on, the default, the rest goes out on the cluster's default pool. Turn it off to keep every message on the pool's IPs, so the rest waits for the warming IPs instead.

Pool mail counts toward the cluster's hourly throttle and 24-hour cap.

### Set up a pool in the dashboard

1. Open **Network** and select **New pool** under **IP pools**.
2. Enter a **Name**, the value you will send in `X-Capsule-Pool`, and choose the **Email type**. Select **Create pool**.
3. The pool page walks you through three steps. **Add dedicated IPs**: pick a spare one, or select **Get a dedicated IP**. **Attach to a cluster**: pick a shared cluster of the same type. **Send through the pool**: copy the header.
4. The pool shows **Ready** once it has an IP and a cluster.

Rename the pool or change the warm-up setting under **Settings** on the pool page. Renaming changes the header value, so update your app first. Detach every cluster before you delete a pool. You can do all of this with the [IP pools API](/docs/api-reference/ip-pools) too.

## Pricing

| Item | Price |
| --- | --- |
| Shared IP included with each cluster | Included |
| Extra shared IP | $15 a month |
| Dedicated IP | $50 a month while your team owns it, assigned or not |

## Stop using a dedicated IP

- **Unassign** takes the IP off one cluster. You still own it and are still billed.
- **Cancel** returns the IP to inventory and stops the bill. It also takes the IP out of every pool. A cancelled IP rests for 30 days before another team can buy it, and the next owner warms it up from the start. You cannot cancel an IP that is the only sending IP on one of your clusters.

## Next steps

- [Set up IP pools and warm up dedicated IPs](/docs/guides/set-up-ip-pools-and-warm-up)
- [Clusters](/docs/dashboard/clusters/introduction)
- [Network API](/docs/api-reference/network)
- [IP pools API](/docs/api-reference/ip-pools)
- [Clusters API](/docs/api-reference/clusters)
