---
title: "Campaigns API endpoints"
description: "Endpoint reference for the Campaigns tag (26 endpoints): Campaign management, bulk operations, and configuration"
type: "reference"
audience: [network-manager, admin]
keywords: [api, rest, endpoints, campaigns]
---

Fetch the complete documentation index at: https://epom.com/ad-server/docs/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Campaigns API endpoints

Campaign management, bulk operations, and configuration. 26 endpoints, generated from the OpenAPI spec. Authentication, the response envelope, pagination and error codes are shared by all endpoints — see [REST API overview](https://epom.com/ad-server/docs/api.md). Parameters marked `form` go in an `application/x-www-form-urlencoded` request body.

### GET /rest-api/campaign/{campaignId}.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/get-campaign.md)

Get campaign by ID.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign to retrieve |
| `selfServRequest` | query | boolean | no | When true, returns a simplified self-serve response format instead of the full campaign details |

**Responses:** `200` — Campaign details · `404` — Campaign not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/{operation}/{advertiserId}.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign.md)

Copy or move campaign.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign to copy or move |
| `operation` | path | string | yes | Operation to perform: COPY or MOVE Values: `MOVE`, `COPY`. |
| `advertiserId` | path | integer | yes | ID of the target advertiser to copy/move the campaign to |
| `copyCount` | form | integer | no | Number of copies to create, 1 to 20 (COPY only, defaults to 1) |
| `keepBannersLinked` | form | boolean | no | Whether the copied or moved banners stay linked to the source banners' placements; when false they end up with no placement links (defaults to false) |
| `dontCopyBanners` | form | boolean | no | When true, campaign banners are not copied (COPY only, defaults to false) |
| `pauseBanners` | form | boolean | no | When true, the copied banners are switched off; when false they keep the source banners' on/off state (COPY only, defaults to false) |
| `preserveActive` | form | boolean | no | When true, the copied campaign keeps the source campaign's on/off state; when false (default) every copy starts switched off (COPY only) |
| `name` | form | string | no | Name for the copy (COPY only, at most 500 characters). With copyCount above 1 the later copies are named '&lt;name> 2', '&lt;name> 3'... Omit to keep the source's name (with '_copy' appended when the target advertiser already has one of that name). |

**Responses:** `200` — Operation completed successfully · `404` — Not found — resource does not exist · `500` — Internal server error during operation. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/campaign/{campaignId}/banners.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/get-campaign-banners.md)

List banners for campaign.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign whose banners to list |
| `selfServRequest` | query | boolean | no | When true, returns a simplified self-serve banner format |

**Responses:** `200` — List of banners · `404` — Not found — resource does not exist. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/campaignPricing/actionPricing.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-campaignpricing-actionpricing.md)

Update campaign action pricing.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `price` | form | number | yes | CPA price for the action, 0 to 1000000 |
| `campaignId` | path | integer | yes | Unique identifier of the campaign |
| `actionName` | form | string | no | Name of the action to set pricing for (alternative to actionKey) |
| `actionKey` | form | string | no | Unique key of the action to set pricing for (alternative to actionName) |

**Responses:** `200` — Action pricing updated · `404` — No action the caller can see matches actionKey/actionName. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/campaign/{campaignId}/competitors.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/get-campaign-competitors.md)

List campaign competitors.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign |

**Responses:** `200` — Competitors retrieved · `404` — Campaign not found or deleted. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/competitors/add.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-competitors-add.md)

Add campaign competitors.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign |
| `competitorIds` | form | array&lt;integer&gt; | yes | IDs of the competitor campaigns — repeat the parameter or separate with commas |

**Responses:** `200` — Competitors linked; competitors lists the campaign's competitors afterwards · `404` — Campaign not found or deleted. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/competitors/disable.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-competitors-disable.md)

Disable campaign competitors.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign |

**Responses:** `200` — Competitors disabled; enableCompetitors echoes the new state · `404` — Campaign not found or deleted. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/competitors/enable.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-competitors-enable.md)

Enable campaign competitors.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign |

**Responses:** `200` — Competitors enabled; enableCompetitors echoes the new state · `404` — Campaign not found or deleted. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/competitors/remove.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-competitors-remove.md)

Remove campaign competitors.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign |
| `competitorIds` | form | array&lt;integer&gt; | yes | IDs of the competitor campaigns to unlink — repeat the parameter or separate with commas |

**Responses:** `200` — Competitors unlinked; competitors lists the campaign's competitors afterwards · `404` — Campaign not found or deleted. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/delete.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-delete.md)

Delete campaign.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign to delete |

**Responses:** `200` — Campaign deleted successfully · `404` — Not found — resource does not exist. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/disable-actions.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-disable-actions.md)

Disable campaign actions.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign to disable actions for |

**Responses:** `200` — Campaign actions disabled · `404` — Not found — resource does not exist. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/enable-actions.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-enable-actions.md)

Enable campaign actions.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign to enable actions for |

**Responses:** `200` — Campaign actions enabled · `404` — Not found — resource does not exist. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/campaign/{campaignId}/pricing.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/get-campaign-pricing.md)

Get campaign pricing.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign whose pricing to retrieve |

**Responses:** `200` — Campaign pricing details, or {campaignId, pricingSet:false} when none is set · `404` — Campaign not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/pricing.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-pricing.md)

Update campaign pricing.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign whose pricing to update |
| `burnUpPeriod` | form | integer | no | Burn-up period in hours for eCPM optimization |
| `burnUpSubPeriod` | form | integer | no | Burn-up sub-period length in hours |
| `burnUpSubPeriodWeighting` | form | string | no | Weighting type for burn-up sub-periods Values: `SINGLET`, `DECREMENT`, `HARMONIC`. |
| `estimatedConversionRate` | form | number | no | Estimated impression-to-conversion rate (I2C) as a fraction from 0 to 1, not a percentage — 0.002 means 0.2%. Used to estimate eCPM of CPA campaigns under eCPM optimization; omit to keep the current value (a new pricing record starts from the network default) |
| `estimatedCtr` | form | number | no | Estimated click-through rate as a fraction from 0 to 1, not a percentage — 0.005 means 0.5% CTR. Used to estimate eCPM of CPC campaigns under eCPM optimization; omit to keep the current value (a new pricing record starts from the network default) |
| `minClicks` | form | integer | no | Minimum number of clicks before optimization kicks in |
| `minConversions` | form | integer | no | Minimum number of conversions before optimization kicks in |
| `paymentModel` | form | string | no | Payment model (FIXED_PRICE, REVENUE_SHARE) Values: `FIXED_PRICE`, `REVENUE_SHARE`. |
| `price` | form | number | no | Price value in the selected pricing type; null when no global price is set |
| `pricingType` | form | string | no | Pricing type (CPM, CPC, CPA, COST_PER_DAY, COST_PER_MONTH) Values: `CPM`, `CPC`, `CPA`, `COST_PER_DAY`, `COST_PER_MONTH`. |
| `startUpPeriod` | form | integer | no | Start-up period in hours for eCPM optimization; must not exceed burnUpPeriod |
| `useGlobalActionPricing` | form | boolean | no | Whether to use global action pricing from the action definition |

**Responses:** `200` — Campaign pricing updated · `404` — Not found — resource does not exist. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### DELETE /rest-api/campaign/{campaignId}/pricing.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/delete-campaign-pricing.md)

Disable campaign pricing.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign whose pricing to remove |

**Responses:** `200` — {success:true}: campaign pricing removed, or there was none · `404` — Campaign not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/pricing/{countryCode}.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-pricing-by-campaign-id.md)

Update campaign country pricing.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `price` | form | number | yes | Price for the country, 0 to 1000000 |
| `campaignId` | path | integer | yes | Unique identifier of the campaign |
| `countryCode` | path | string | yes | ISO 3166 two-letter country code, or '*' for global pricing |
| `actionName` | form | string | no | Name of the action for CPA per-action country pricing (optional) |
| `actionKey` | form | string | no | Unique key of the action for CPA per-action country pricing (optional) |

**Responses:** `200` — Country pricing updated · `404` — No action the caller can see matches actionKey/actionName. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### DELETE /rest-api/campaign/{campaignId}/pricing/{countryCode}.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/delete-campaign-pricing-by-campaign-id.md)

Remove campaign country pricing.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign |
| `countryCode` | path | string | yes | ISO 3166 two-letter country code to remove pricing for |

**Responses:** `200` — Country pricing removed · `404` — Campaign not found, or it has no price for the country. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/pricing/batch.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-pricing-batch.md)

Batch update campaign country pricing.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign whose country pricing to update in batch |
| `countryPricesCsv` | form | string | no | The CSV's text, for a client that cannot upload a file; send this or countryPrices |

**Request body** (`multipart/form-data`): form with field `countryPrices` — CSV file with the country prices; send this or countryPricesCsv.

**Responses:** `200` — Batch update result: applied and rejected lines, plus the legacy csvErrors and csvWarnings · `404` — Not found — resource does not exist. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/{campaignId}/update.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-update.md)

Update campaign.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique identifier of the campaign to update |
| `autolinkCategories` | form | array&lt;integer&gt; | no | IDs of the publisher categories whose new placements the campaign auto-links to, comma-separated or repeated — with none set, only banners carrying auto-link labels link, by label |
| `active` | form | boolean | no | Whether the campaign is active and serving ads |
| `allowActionPricingUrlOverriding` | form | boolean | no | Allow overriding action pricing URLs at the campaign level |
| `allowImpressionAndClicksPricingUrlOverriding` | form | boolean | no | Allow overriding impression and click pricing URLs |
| `allowNewPlacementsAutolinking` | form | boolean | no | When true, newly created placements matching the campaign's categories are automatically linked |
| `allowUseForTemplate` | form | boolean | no | Whether this campaign can be used as a template |
| `autoTagLandingUrl` | form | boolean | no | Whether the click redirect appends the click id to the landing page, so the macro does not have to be pasted into every creative. Off by default - it rewrites a URL the advertiser owns |
| `campaignAliasForActionTracking` | form | string | no | Custom alias for action tracking attribution, up to 64 characters |
| `cpaOptimization` | form | boolean | no | Enable CPA-based optimization for banner delivery |
| `cpaOptimizationActions` | form | array&lt;integer&gt; | no | Set of actions used for CPA optimization — IDs of the action entities, comma-separated or as repeated parameters |
| `ctrOptimization` | form | boolean | no | Enable CTR-based optimization for banner delivery |
| `description` | form | string | no | Campaign description text |
| `ecpmOptimization` | form | boolean | no | Enable eCPM-based optimization for banner delivery |
| `enableActions` | form | boolean | no | Enable conversion action tracking for this campaign |
| `exchangeRate` | form | number | no | Currency conversion multiplier from campaign currency to the network's base currency (range 0.001–999.999) |
| `labelUpdateType` | form | string | no | How labels are applied. Allowed values: add (append), overwrite (replace all existing), remove (delete specified), clear (remove all) Values: `ADD`, `OVERWRITE`, `REMOVE`, `CLEAR`. |
| `labels` | form | array&lt;string&gt; | no | Label names to associate with this campaign |
| `maxActionPriceOverride` | form | number | no | Upper bound, in campaign currency, on the conversion payout a tracking URL may set. A higher payout is clamped to this value and the conversion is still counted. Omit to keep the current bound, send it empty to remove it (0 is a bound of 0); 0 to 9999999.9999; only consulted when allowActionPricingUrlOverriding is enabled |
| `name` | form | string | no | Campaign display name, up to 512 characters, never blank. Left out on create, the campaign is named "Campaign &lt;id>". |
| `onlyOneBannerPerPage` | form | boolean | no | Restrict delivery to one banner per page view |
| `onlyThisCampaignOnPage` | form | boolean | no | Restrict page to show only banners from this campaign |
| `priority` | form | string | no | Delivery priority level for this campaign. Allowed values: STANDARD_HIGH, STANDARD_MEDIUM, STANDARD_LOW, PREMIUM, NON_GUARANTEED, HOUSE_ADS Values: `PREMIUM`, `STANDARD_HIGH`, `STANDARD_MEDIUM`, `STANDARD_LOW`, `NON_GUARANTEED`, `HOUSE_ADS`. |
| `selfServeCampaignType` | form | string | no | Self-serve campaign type classification Values: `BANNER_DESKTOP`, `BANNER_MOBILE`, `BANNER_APPLICATION`, `BANNER_NATIVE`, `POP_UNDER`, `INTERSTITIAL_MOBILE`, `INTERSTITIAL_APPLICATION`. |
| `showBannersOfOneCampaignAtTheSamePageAlias` | form | string | no | Alias used for one-campaign-per-page restriction, up to 64 characters |
| `targetTemplateName` | form | string | no | Name of the targeting template to apply, up to 50 characters |
| `weight` | form | integer | no | Relative delivery weight (0-32767) for weighted rotation |

**Responses:** `200` — Campaign updated successfully · `404` — Campaign not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/campaign/banners/batch.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/get-campaign-banners-batch.md)

List banners for multiple campaigns.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignIds` | query | array&lt;integer&gt; | no | Array of campaign IDs to retrieve banners for |

**Responses:** `200` — List of banners. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaign/create.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaign-create.md)

Create campaign.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `advertiserId` | form | integer | yes | ID of the advertiser under which to create the campaign |
| `autolinkCategories` | form | array&lt;integer&gt; | no | IDs of the publisher categories whose new placements the campaign auto-links to, comma-separated or repeated — with none set, only banners carrying auto-link labels link, by label |
| `active` | form | boolean | no | Whether the campaign is active and serving ads |
| `allowActionPricingUrlOverriding` | form | boolean | no | Allow overriding action pricing URLs at the campaign level |
| `allowImpressionAndClicksPricingUrlOverriding` | form | boolean | no | Allow overriding impression and click pricing URLs |
| `allowNewPlacementsAutolinking` | form | boolean | no | When true, newly created placements matching the campaign's categories are automatically linked |
| `allowUseForTemplate` | form | boolean | no | Whether this campaign can be used as a template |
| `autoTagLandingUrl` | form | boolean | no | Whether the click redirect appends the click id to the landing page, so the macro does not have to be pasted into every creative. Off by default - it rewrites a URL the advertiser owns |
| `campaignAliasForActionTracking` | form | string | no | Custom alias for action tracking attribution, up to 64 characters |
| `cpaOptimization` | form | boolean | no | Enable CPA-based optimization for banner delivery |
| `cpaOptimizationActions` | form | array&lt;integer&gt; | no | Set of actions used for CPA optimization — IDs of the action entities, comma-separated or as repeated parameters |
| `ctrOptimization` | form | boolean | no | Enable CTR-based optimization for banner delivery |
| `description` | form | string | no | Campaign description text |
| `ecpmOptimization` | form | boolean | no | Enable eCPM-based optimization for banner delivery |
| `enableActions` | form | boolean | no | Enable conversion action tracking for this campaign |
| `exchangeRate` | form | number | no | Currency conversion multiplier from campaign currency to the network's base currency (range 0.001–999.999) |
| `labelUpdateType` | form | string | no | How labels are applied. Allowed values: add (append), overwrite (replace all existing), remove (delete specified), clear (remove all) Values: `ADD`, `OVERWRITE`, `REMOVE`, `CLEAR`. |
| `labels` | form | array&lt;string&gt; | no | Label names to associate with this campaign |
| `maxActionPriceOverride` | form | number | no | Upper bound, in campaign currency, on the conversion payout a tracking URL may set. A higher payout is clamped to this value and the conversion is still counted. Omit to keep the current bound, send it empty to remove it (0 is a bound of 0); 0 to 9999999.9999; only consulted when allowActionPricingUrlOverriding is enabled |
| `name` | form | string | no | Campaign display name, up to 512 characters, never blank. Left out on create, the campaign is named "Campaign &lt;id>". |
| `onlyOneBannerPerPage` | form | boolean | no | Restrict delivery to one banner per page view |
| `onlyThisCampaignOnPage` | form | boolean | no | Restrict page to show only banners from this campaign |
| `priority` | form | string | no | Delivery priority level for this campaign. Allowed values: STANDARD_HIGH, STANDARD_MEDIUM, STANDARD_LOW, PREMIUM, NON_GUARANTEED, HOUSE_ADS Values: `PREMIUM`, `STANDARD_HIGH`, `STANDARD_MEDIUM`, `STANDARD_LOW`, `NON_GUARANTEED`, `HOUSE_ADS`. |
| `selfServeCampaignType` | form | string | no | Self-serve campaign type classification Values: `BANNER_DESKTOP`, `BANNER_MOBILE`, `BANNER_APPLICATION`, `BANNER_NATIVE`, `POP_UNDER`, `INTERSTITIAL_MOBILE`, `INTERSTITIAL_APPLICATION`. |
| `showBannersOfOneCampaignAtTheSamePageAlias` | form | string | no | Alias used for one-campaign-per-page restriction, up to 64 characters |
| `targetTemplateName` | form | string | no | Name of the targeting template to apply, up to 50 characters |
| `weight` | form | integer | no | Relative delivery weight (0-32767) for weighted rotation |

**Responses:** `200` — Campaign created successfully · `404` — Advertiser not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/campaigns.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/get-campaigns.md)

List all campaigns.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `selfServRequest` | query | boolean | no | When true, returns a simplified self-serve response format instead of the full campaign details |
| `active` | query | boolean | no | When set, returns only active (true) or only inactive (false) campaigns; omit to return both |
| `labels` | query | array&lt;string&gt; | no | Label names to filter by; a campaign carrying any of them is returned |
| `advertiserId` | query | integer | no | Advertiser ID to restrict results to a single advertiser |
| `offset` | query | integer | no | Pagination offset over campaigns ordered by id (zero-based) |
| `limit` | query | integer | no | Maximum number of campaigns to return; omit for all |
| `fields` | query | array&lt;string&gt; | no | 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` | query | object | no | 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&lt;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` — List of campaigns. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaigns/copy/bulk/{advertiserId}.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaigns-copy-bulk.md)

Bulk copy campaigns.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `advertiserId` | path | integer | yes | Unique identifier of the target advertiser that will own the copied campaigns. Must reference an existing, non-deleted advertiser |
| `numberOfCopies` | form | integer | no | Number of copies to create for each campaign in the bulk request, 1 to 20. Defaults to 1 if not specified |

**Request body** (`application/json`, required): JSON array; each element a JSON object with fields `banners`, `companyId`, `companyName`.

**Responses:** `200` — Bulk copy operation result with new campaign IDs · `404` — Advertiser or campaign not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaigns/labels.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaigns-labels.md)

Change labels of many campaigns.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `ids` | form | array&lt;integer&gt; | yes | Campaign IDs to change, 1 to 500 |
| `labels` | form | array&lt;string&gt; | no | Label names, comma-separated or repeated |
| `labelUpdateType` | form | string | no | ADD (default), OVERWRITE, REMOVE or CLEAR Values: `ADD`, `OVERWRITE`, `REMOVE`, `CLEAR`. |

**Responses:** `200` — Batch applied · `404` — None of the ids names an existing campaign. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/campaigns/priorities.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/get-campaigns-priorities.md)

List campaign priority types.

No parameters beyond authentication.

**Responses:** `200` — List of priority types. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/campaigns/status.do

[Request examples](https://epom.com/ad-server/docs/api/campaigns/post-campaigns-status.md)

Switch campaigns on or off.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `ids` | form | array&lt;integer&gt; | yes | Campaign IDs to switch, 1 to 500 |
| `active` | form | boolean | yes | true to switch the campaigns on, false to switch them off |

**Responses:** `200` — Batch applied · `404` — None of the ids names an existing campaign. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

## Related

- [REST API overview](https://epom.com/ad-server/docs/api.md) — authentication and conventions
- [API endpoint reference by tag](https://epom.com/ad-server/docs/api/endpoints.md)
- [Entities — create, read, update, delete via API](https://epom.com/ad-server/docs/api/entities-crud.md)

<!-- Generated from the OpenAPI spec. Do not edit by hand. -->