---
title: "List placements with details and filters"
type: reference
method: GET
path: /rest-api/placements/summary.do
tag: "Placements"
---

# List placements with details and filters

`GET https://YOUR-NETWORK-DOMAIN/rest-api/placements/summary.do`

Returns summary information for the placements the user can see: ID, name, description, type, site and zone IDs and names, category, labels, ad unit size, placement key, active flag, default code, targeting settings and native preferences; video placements also carry their video ad manager settings. Placements of every type are returned — SITE_PLACEMENT, MOBILE_SITE_PLACEMENT, NON_STANDARD_SITE_PLACEMENT, VIDEO_PLACEMENT, APPLICATION_PLACEMENT, EMAIL_PLACEMENT, CLICK_THROUGH_PLACEMENT and NATIVE_PLACEMENT. size is the ad unit's title, WIDTHxHEIGHT for a placement sized without an ad unit, or - when it has no size; dimensions carries the same as {width, height, adUnitId, adUnitName}, or null. Results can be filtered by publishing categories, specific placement IDs, site ID, zone ID, placement types, active state, label names and any on/off setting (filter[...]), paged via offset and limit, and trimmed to the fields named in fields; every filter narrows the result, and a list filter matches any of its values. A labels filter naming no existing label returns an empty list.

## Query params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `publishingCategories` | array<integer> | no | `5` | IDs of publishing categories to filter placements by |
| `placementIds` | array<integer> | no | `4001` | Specific placement IDs to retrieve |
| `zoneId` | integer | no | `3001` | Zone ID to filter placements by |
| `labels` | array<string> | no | `premium` | Label names to filter placements by |
| `offset` | integer | no | `0` | Pagination offset (zero-based index of the first result) |
| `limit` | integer | no | `50` | Maximum number of placements to return |
| `types` | array<string> | no | `VIDEO_PLACEMENT` | Placement types to filter by; a placement matching any of them is returned |
| `siteId` | integer | no | `1001` | Site ID to filter placements by |
| `active` | boolean | no | `true` | When set, returns only active (true) or only inactive (false) placements; omit to return both |
| `fields` | array<string> | no | `id,name,active` | Return only these fields of each entity, comma-separated; id is always kept. A requested field no returned row carries is named in the X-Ignored-Fields response header |
| `filter` | object | no | `{"hasLimits": "true"}` | Keep only entities matching every key, e.g. filter[cpaOptimization]=true&filter[hasLimit]=true. Keys are the entity's on/off settings (active, enableTargeting, cpaOptimization, alwaysRedirect, ...) and a has<Relation> flag for each setting kept in rows of its own (hasLimit, hasPricing, hasFrequencyCapping, hasTrackingCode, hasPriceAdjustmentRules, hasLabels, hasBanners, ...), true when the relation holds a row; hasCapping, hasLimits and hasTargetingRules group the relations of their kind. An unknown key is a 400 that lists every valid key for the list. |

## Responses

- `200` — Placements summary returned successfully
- `400` — Bad request — invalid or missing parameters
- `401` — Authentication error
- `403` — Forbidden — insufficient permissions

## Example request

```bash
curl --request GET \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/placements/summary.do?zoneId=3001&siteId=1001&active=true&publishingCategories=5&placementIds=4001' \
  --header 'X-Api-Key: YOUR_API_KEY'
```

Source: https://epom.com/ad-server/docs/api/placements/get-placements-summary