---
title: "Get campaign by ID"
type: reference
method: GET
path: /rest-api/campaign/{campaignId}.do
tag: "Campaigns"
---

# Get campaign by ID

`GET https://YOUR-NETWORK-DOMAIN/rest-api/campaign/{campaignId}.do`

Returns a single campaign: name, on/off flag (active), advertiserId, priority, weight, exchange rate, optimization settings, action-tracking settings (autoTagLandingUrl, maxActionPriceOverride, campaignAliasForActionTracking), targeting flags, labels, autolink categories, banner IDs and count, creation time (the creation day, at midnight), status tokens and hasTraffic; every field update accepts is returned under its update name (autolinkCategories as autoLinkCategories). Pricing and the self-serve status are added only with selfServRequest=true. The caller must have UPDATE permission on the campaign's advertiser and MANAGE_PRICING permission (enabled or read-only). Each campaign's 'status' array holds UI status tokens computed from traffic statistics, which are not the on/off switch — that is the 'active' field: status-active = switched on AND served traffic in the last ~6 hours; status-not-active = switched off OR no traffic in the last ~6 hours, so active=true together with status-not-active is normal for an idle, not-yet-started or newly created campaign; status-finished (added alongside) = the campaign's delivery limits have ended it — end date passed, total limit reached or an action limit reached. 'hasTraffic' is the same ~6-hour traffic flag on its own. Traffic data is refreshed hourly. A deleted campaign has an empty array. The response also carries additionalFieldValues: every custom field the network defines for this entity type, keyed by field id, each with its name and this entity's value (null when unset) - the values of /rest-api/additional-fields/{entityType}/{entityId}.

## Path params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `campaignId` | integer | yes | `2001` | Unique identifier of the campaign to retrieve |

## Query params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `selfServRequest` | boolean | no | `false` | When true, returns a simplified self-serve response format instead of the full campaign details |

## Responses

- `200` — Campaign details
- `400` — Campaign has been deleted
- `401` — Authentication error
- `403` — Not enough permissions
- `404` — Campaign not found

## Example request

```bash
curl --request GET \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/campaign/2001.do?selfServRequest=false' \
  --header 'X-Api-Key: YOUR_API_KEY'
```

Source: https://epom.com/ad-server/docs/api/campaigns/get-campaign