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

# Pools API: manage reusable network and merchant sets

> Create named sets of networks and merchants. Pass a pool_id to search endpoints to automatically scope results without repeating filter lists on every request.

The Pools API lets you define a reusable set of networks and merchants once, then reference it by ID across search endpoints. Instead of passing the same `network_ids` and `merchant_ids` on every request, you attach a `pool_id` and the API resolves the filters automatically.

## How pools work

A pool stores:

* **Networks** — affiliate networks to include
* **Merchants** — merchants to include in results

When you pass `pool_id` to a supported search endpoint, the pool's networks and merchants are combined with any explicitly passed filter values — not replaced.

<Warning>
  Pools are team-scoped. Passing a `pool_id` that belongs to a different team returns a `422` error.
</Warning>

## Using a pool in search

Pass `pool_id` as a top-level parameter to any of these endpoints:

| Endpoint                 | Description               |
| ------------------------ | ------------------------- |
| `POST /v1/products`      | Search affiliate products |
| `POST /v1/products/omni` | Unified product search    |
| `POST /v1/promotions`    | Search promotions         |

```json theme={null}
{
  "pool_id": "01JPSEEDP1ATA11P0010000100",
  "search": "shoes"
}
```

Only one `pool_id` may be passed per request. Returns `422` if the pool does not exist or belongs to another team.

## Available endpoints

| Method   | Endpoint                            | Description                     |
| -------- | ----------------------------------- | ------------------------------- |
| `GET`    | `/v1/pools`                         | List all pools                  |
| `POST`   | `/v1/pools`                         | Create a pool                   |
| `GET`    | `/v1/pools/{id}`                    | Get a pool                      |
| `PUT`    | `/v1/pools/{id}`                    | Update a pool                   |
| `DELETE` | `/v1/pools/{id}`                    | Delete a pool                   |
| `GET`    | `/v1/pools/{id}/settings`           | Get pool settings               |
| `PATCH`  | `/v1/pools/{id}/settings`           | Update pool settings            |
| `POST`   | `/v1/pools/{id}/networks`           | Add networks to a pool          |
| `DELETE` | `/v1/pools/{id}/networks`           | Remove networks from a pool     |
| `PUT`    | `/v1/pools/{id}/networks/{network}` | Update network affiliate config |
| `POST`   | `/v1/pools/{id}/merchants`          | Add merchants to a pool         |
| `DELETE` | `/v1/pools/{id}/merchants`          | Remove merchants from a pool    |
