Skip to main content
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.
Pools are team-scoped. Passing a pool_id that belongs to a different team returns a 422 error.
Pass pool_id as a top-level parameter to any of these endpoints:
Pass the bare ULID — the pool_-prefixed object_id form returns 422. Only one pool_id may be passed per request. Returns 422 if the id is prefixed, the pool does not exist, or it belongs to another team.

Using a pool with GET /v1/merchants

pool_id behaves differently here than on products/omni/promotions — it’s a hard scope rather than a filter merge, and it also decides whose credentials build providers[] links. Requires extended=1.
cURL
Running more than one pool — separate credentials per site or brand, say? Pass the pool_id that matches the request; a Source configured on one pool never applies to a different pool’s request. This is not provider isolation, though — for a provider the pool owns no credential for, resolution falls back to your account-level credential, so links can still come back with a different campaign than a pool that owns its own. See Monetizing with the Merchants API for a full worked example.

Available endpoints