---
title: "Limits API endpoints"
description: "Endpoint reference for the Limits tag (33 endpoints): Impression, click, and spend limits"
type: "reference"
audience: [network-manager, admin]
keywords: [api, rest, endpoints, limits]
---

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.

# Limits API endpoints

Impression, click, and spend limits. 33 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/advertiser/{advertiserId}/limits.do

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

Get advertiser limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `advertiserId` | path | integer | yes | Unique numeric identifier of the advertiser whose limits should be retrieved |
| `timezoneOffset` | query | integer | no | The caller's offset from UTC in minutes (east positive). With the limit on local time, startDate/endDate are answered in that offset, as the console shows them; omitted, they are in UTC |

**Responses:** `200` — Advertiser limits, or {advertiserId, limitsSet:false} when none are set · `404` — Advertiser not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### DELETE /rest-api/advertiser/{advertiserId}/limits.do

[Request examples](https://epom.com/ad-server/docs/api/limits/delete-advertiser-limits.md)

Disable advertiser limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `advertiserId` | path | integer | yes | Unique numeric identifier of the advertiser whose limits should be disabled and removed |

**Responses:** `200` — Advertiser limits disabled 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/advertiser/{advertiserId}/limits/reset.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-advertiser-limits-reset.md)

Reset advertiser limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `limitCounters` | form | array&lt;string&gt; | yes | Counters to reset to zero, at least one, comma-separated or repeated: any counter of the limit: DAILY_, WEEKLY_, MONTHLY_ or TOTAL_ followed by IMPRESSIONS, CLICKS, CONVERSIONS, REVENUE or OPPORTUNITIES (e.g. WEEKLY_CLICKS) Values: `TOTAL_IMPRESSIONS`, `TOTAL_CLICKS`, `TOTAL_CONVERSIONS`, `TOTAL_REQUESTS`, `TOTAL_REVENUE`, `TOTAL_OPPORTUNITIES`, `DAILY_IMPRESSIONS`, `DAILY_CONVERSIONS`, `DAILY_CLICKS`, `DAILY_REVENUE`, `DAILY_OPPORTUNITIES`, `NO_CONVERSIONS_HOURS`, `NO_CONVERSIONS_IMPRESSIONS`, `WEEKLY_REVENUE`, `MONTHLY_REVENUE`, `MONTHLY_IMPRESSIONS`, `WEEKLY_IMPRESSIONS`, `WEEKLY_CLICKS`, `MONTHLY_CLICKS`, `WEEKLY_CONVERSIONS`, `MONTHLY_CONVERSIONS`, `WEEKLY_OPPORTUNITIES`, `MONTHLY_OPPORTUNITIES`, `DAILY_REQUESTS`, `WEEKLY_REQUESTS` … (+4 more, 29 total). |
| `advertiserId` | path | integer | yes | Unique numeric identifier of the advertiser whose limit counters should be reset |

**Responses:** `200` — Advertiser limits reset successfully · `404` — No limit enabled for the advertiser. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/advertiser/{advertiserId}/limits/set.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-advertiser-limits-set.md)

Set advertiser limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `advertiserId` | path | integer | yes | Unique numeric identifier of the advertiser whose limits should be created or replaced |
| `dailyBudgetLimit` | form | number | no | Maximum daily budget (revenue) in currency units |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyOpportunitiesLimit` | form | integer | no | Maximum ad opportunities allowed per day |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyBudgetLimit` | form | number | no | Monthly budget cap; 0 means no monthly cap. Resets on the 1st of the month. |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalBudgetLimit` | form | number | no | Maximum total budget (revenue) allowed over the entire period in currency units |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalOpportunitiesLimit` | form | integer | no | Maximum total ad opportunities over the entire period |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyBudgetLimit` | form | number | no | Weekly budget cap; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |

**Responses:** `200` — Advertiser limits set 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/advertiser/{advertiserId}/limits/update.do

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

Update advertiser limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `advertiserId` | path | integer | yes | Unique numeric identifier of the advertiser whose limits should be updated |
| `dailyBudgetLimit` | form | number | no | Maximum daily budget (revenue) in currency units |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyOpportunitiesLimit` | form | integer | no | Maximum ad opportunities allowed per day |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyBudgetLimit` | form | number | no | Monthly budget cap; 0 means no monthly cap. Resets on the 1st of the month. |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalBudgetLimit` | form | number | no | Maximum total budget (revenue) allowed over the entire period in currency units |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalOpportunitiesLimit` | form | integer | no | Maximum total ad opportunities over the entire period |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyBudgetLimit` | form | number | no | Weekly budget cap; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |

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

### GET /rest-api/banner/{bannerId}/limits.do

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

Get banner limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `bannerId` | path | integer | yes | Unique numeric identifier of the banner whose limits should be retrieved |
| `timezoneOffset` | query | integer | no | The caller's offset from UTC in minutes (east positive). With the limit on local time, startDate/endDate are answered in that offset, as the console shows them; omitted, they are in UTC |

**Responses:** `200` — Banner limits, or {bannerId, limitsSet:false} when none are set · `404` — Banner not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### DELETE /rest-api/banner/{bannerId}/limits.do

[Request examples](https://epom.com/ad-server/docs/api/limits/delete-banner-limits.md)

Disable banner limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `bannerId` | path | integer | yes | Unique numeric identifier of the banner whose limits should be disabled and removed |

**Responses:** `200` — Banner limits disabled 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/banner/{bannerId}/limits/reset.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-banner-limits-reset.md)

Reset banner limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `limitCounters` | form | array&lt;string&gt; | yes | Counters to reset to zero, at least one, comma-separated or repeated: any counter of the limit: DAILY_, WEEKLY_, MONTHLY_ or TOTAL_ followed by IMPRESSIONS, CLICKS, CONVERSIONS, REVENUE or OPPORTUNITIES (e.g. WEEKLY_CLICKS) Values: `TOTAL_IMPRESSIONS`, `TOTAL_CLICKS`, `TOTAL_CONVERSIONS`, `TOTAL_REQUESTS`, `TOTAL_REVENUE`, `TOTAL_OPPORTUNITIES`, `DAILY_IMPRESSIONS`, `DAILY_CONVERSIONS`, `DAILY_CLICKS`, `DAILY_REVENUE`, `DAILY_OPPORTUNITIES`, `NO_CONVERSIONS_HOURS`, `NO_CONVERSIONS_IMPRESSIONS`, `WEEKLY_REVENUE`, `MONTHLY_REVENUE`, `MONTHLY_IMPRESSIONS`, `WEEKLY_IMPRESSIONS`, `WEEKLY_CLICKS`, `MONTHLY_CLICKS`, `WEEKLY_CONVERSIONS`, `MONTHLY_CONVERSIONS`, `WEEKLY_OPPORTUNITIES`, `MONTHLY_OPPORTUNITIES`, `DAILY_REQUESTS`, `WEEKLY_REQUESTS` … (+4 more, 29 total). |
| `bannerId` | path | integer | yes | Unique numeric identifier of the banner whose limit counters should be reset |

**Responses:** `200` — Banner limits reset successfully · `404` — No limit enabled for the banner. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/banner/{bannerId}/limits/set.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-banner-limits-set.md)

Set banner limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `bannerId` | path | integer | yes | Unique numeric identifier of the banner whose limits should be created or replaced |
| `dailyBudgetLimit` | form | number | no | Maximum daily budget (revenue) in currency units |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyOpportunitiesLimit` | form | integer | no | Maximum ad opportunities allowed per day |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyBudgetLimit` | form | number | no | Monthly budget cap; 0 means no monthly cap. Resets on the 1st of the month. |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalBudgetLimit` | form | number | no | Maximum total budget (revenue) allowed over the entire period in currency units |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalOpportunitiesLimit` | form | integer | no | Maximum total ad opportunities over the entire period |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyBudgetLimit` | form | number | no | Weekly budget cap; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |

**Responses:** `200` — Banner limits set 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/banner/{bannerId}/limits/update.do

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

Update banner limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `bannerId` | path | integer | yes | Unique numeric identifier of the banner whose limits should be updated |
| `dailyBudgetLimit` | form | number | no | Maximum daily budget (revenue) in currency units |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyOpportunitiesLimit` | form | integer | no | Maximum ad opportunities allowed per day |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyBudgetLimit` | form | number | no | Monthly budget cap; 0 means no monthly cap. Resets on the 1st of the month. |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalBudgetLimit` | form | number | no | Maximum total budget (revenue) allowed over the entire period in currency units |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalOpportunitiesLimit` | form | integer | no | Maximum total ad opportunities over the entire period |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyBudgetLimit` | form | number | no | Weekly budget cap; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |

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

### GET /rest-api/banners/limits.do

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

Get multiple banner limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `bannerIds` | query | array&lt;integer&gt; | yes | Comma-separated list of banner IDs whose limits should be retrieved |

**Responses:** `200` — Banner limits retrieved successfully · `404` — One of the provided banners not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

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

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

Get campaign limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique numeric identifier of the campaign whose limits should be retrieved |
| `timezoneOffset` | query | integer | no | The caller's offset from UTC in minutes (east positive). With the limit on local time, startDate/endDate are answered in that offset, as the console shows them; omitted, they are in UTC |

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

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

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

Disable campaign limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique numeric identifier of the campaign whose limits should be disabled and removed |

**Responses:** `200` — Campaign limits disabled 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}/limits/reset.do

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

Reset campaign limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `limitCounters` | form | array&lt;string&gt; | yes | Counters to reset to zero, at least one, comma-separated or repeated: any counter of the limit: DAILY_, WEEKLY_, MONTHLY_ or TOTAL_ followed by IMPRESSIONS, CLICKS, CONVERSIONS, REVENUE or OPPORTUNITIES (e.g. WEEKLY_CLICKS) Values: `TOTAL_IMPRESSIONS`, `TOTAL_CLICKS`, `TOTAL_CONVERSIONS`, `TOTAL_REQUESTS`, `TOTAL_REVENUE`, `TOTAL_OPPORTUNITIES`, `DAILY_IMPRESSIONS`, `DAILY_CONVERSIONS`, `DAILY_CLICKS`, `DAILY_REVENUE`, `DAILY_OPPORTUNITIES`, `NO_CONVERSIONS_HOURS`, `NO_CONVERSIONS_IMPRESSIONS`, `WEEKLY_REVENUE`, `MONTHLY_REVENUE`, `MONTHLY_IMPRESSIONS`, `WEEKLY_IMPRESSIONS`, `WEEKLY_CLICKS`, `MONTHLY_CLICKS`, `WEEKLY_CONVERSIONS`, `MONTHLY_CONVERSIONS`, `WEEKLY_OPPORTUNITIES`, `MONTHLY_OPPORTUNITIES`, `DAILY_REQUESTS`, `WEEKLY_REQUESTS` … (+4 more, 29 total). |
| `campaignId` | path | integer | yes | Unique numeric identifier of the campaign whose limit counters should be reset |

**Responses:** `200` — Campaign limits reset successfully · `404` — No limit enabled for the campaign. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

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

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

Set campaign limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique numeric identifier of the campaign whose limits should be created or replaced |
| `dailyBudgetLimit` | form | number | no | Maximum daily budget (revenue) in currency units |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyOpportunitiesLimit` | form | integer | no | Maximum ad opportunities allowed per day |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyBudgetLimit` | form | number | no | Monthly budget cap; 0 means no monthly cap. Resets on the 1st of the month. |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalBudgetLimit` | form | number | no | Maximum total budget (revenue) allowed over the entire period in currency units |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalOpportunitiesLimit` | form | integer | no | Maximum total ad opportunities over the entire period |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyBudgetLimit` | form | number | no | Weekly budget cap; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |

**Responses:** `200` — Campaign limits set 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}/limits/update.do

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

Update campaign limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignId` | path | integer | yes | Unique numeric identifier of the campaign whose limits should be updated |
| `dailyBudgetLimit` | form | number | no | Maximum daily budget (revenue) in currency units |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyOpportunitiesLimit` | form | integer | no | Maximum ad opportunities allowed per day |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyBudgetLimit` | form | number | no | Monthly budget cap; 0 means no monthly cap. Resets on the 1st of the month. |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalBudgetLimit` | form | number | no | Maximum total budget (revenue) allowed over the entire period in currency units |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalOpportunitiesLimit` | form | integer | no | Maximum total ad opportunities over the entire period |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyBudgetLimit` | form | number | no | Weekly budget cap; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyOpportunitiesLimit` | form | integer | no | Maximum opportunities allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |

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

### GET /rest-api/campaign/limits.do

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

Get campaign limits in bulk.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `campaignIds` | query | array&lt;integer&gt; | no | Comma-separated list of campaign IDs to retrieve limits for. If omitted, returns limits for all accessible campaigns |
| `startDateFrom` | query | string | no | Lower bound filter for the limit start date (inclusive), in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0). Only campaigns whose limit start date is on or after this value are included |
| `startDateTo` | query | string | no | Upper bound filter for the limit start date (inclusive), in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0). Only campaigns whose limit start date is on or before this value are included |
| `activeCampaignOnly` | query | boolean | no | When set to true, only campaigns with active status are included in the results. Defaults to false |

**Responses:** `200` — Campaign limits retrieved successfully · `404` — No limits set for such campaign. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/per-action/add/limit/{type}/{entityId}.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-per-action-add-limit.md)

Add per-action limit.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `type` | path | string | yes | Type of the parent entity to add the per-action limit to. Must be one of: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, SITE Values: `BANNER`, `CAMPAIGN`, `ADVERTISER`, `PLACEMENT`, `SITE`. |
| `entityId` | path | integer | yes | Unique numeric identifier of the parent entity (banner, campaign, advertiser, placement, or site) |
| `actionId` | form | integer | yes | Unique numeric identifier of the action (goal/conversion type) to which this limit applies |
| `dailyConversionsLimit` | form | integer | no | Maximum number of conversions allowed per day for this action; 0 is no daily cap. Omitted, a new limit has none and an action that already has a limit keeps its daily cap |
| `totalConversionsLimit` | form | integer | no | Maximum total number of conversions allowed for this action across the entire limit period; 0 is no total cap. Omitted, a new limit has none and an action that already has a limit keeps its total cap |

**Responses:** `200` — Per-action limit added 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/per-action/delete.do

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

Delete per-action limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `entityId` | form | integer | yes | Unique numeric identifier of the parent entity (banner, campaign, advertiser, placement, or site) that owns the action limits being deleted |
| `ids` | form | array&lt;integer&gt; | yes | Comma-separated list of per-action limit IDs to delete. Each ID corresponds to a specific action limit record |
| `type` | form | string | yes | Type of the parent entity. Must be one of: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, SITE Values: `BANNER`, `CAMPAIGN`, `ADVERTISER`, `PLACEMENT`, `SITE`. |

**Responses:** `200` — Per-action limits deleted successfully · `404` — One of the ids is not a per-action limit of this entity; the message names it. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/per-action/limits/{type}/{entityId}.do

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

List per-action limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `type` | path | string | yes | Type of the parent entity whose per-action limits should be listed. Must be one of: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, SITE Values: `BANNER`, `CAMPAIGN`, `ADVERTISER`, `PLACEMENT`, `SITE`. |
| `entityId` | path | integer | yes | Unique numeric identifier of the parent entity (banner, campaign, advertiser, placement, or site) |

**Responses:** `200` — Per-action limits retrieved 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/per-action/limits/{type}/{entityId}/disable.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-per-action-limits-disable.md)

Disable per-action limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `type` | path | string | yes | Type of the entity: ADVERTISER, CAMPAIGN or BANNER Values: `BANNER`, `CAMPAIGN`, `ADVERTISER`, `PLACEMENT`, `SITE`. |
| `entityId` | path | integer | yes | Unique numeric identifier of the entity |

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

### POST /rest-api/per-action/limits/{type}/{entityId}/enable.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-per-action-limits-enable.md)

Enable per-action limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `type` | path | string | yes | Type of the entity: ADVERTISER, CAMPAIGN or BANNER Values: `BANNER`, `CAMPAIGN`, `ADVERTISER`, `PLACEMENT`, `SITE`. |
| `entityId` | path | integer | yes | Unique numeric identifier of the entity |

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

### POST /rest-api/per-action/update/limit/{type}/{entityId}.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-per-action-update-limit.md)

Update per-action limit.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `type` | path | string | yes | Type of the parent entity whose per-action limit should be updated. Must be one of: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, SITE Values: `BANNER`, `CAMPAIGN`, `ADVERTISER`, `PLACEMENT`, `SITE`. |
| `entityId` | path | integer | yes | Unique numeric identifier of the parent entity (banner, campaign, advertiser, placement, or site) |
| `actionId` | form | integer | yes | Unique numeric identifier of the action (goal/conversion type) whose limit should be updated |
| `dailyConversionsLimit` | form | integer | no | New maximum number of conversions allowed per day for this action. Omit to leave the current daily cap unchanged |
| `totalConversionsLimit` | form | integer | no | New maximum total number of conversions allowed for this action. Omit to leave the current total cap unchanged |

**Responses:** `200` — Per-action limit updated successfully · `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/placement/{placementId}/limits.do

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

Get placement limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `placementId` | path | integer | yes | ID of the placement |
| `timezoneOffset` | query | integer | no | The caller's offset from UTC in minutes (east positive). With the limit on local time, startDate/endDate are answered in that offset, as the console shows them; omitted, they are in UTC |

**Responses:** `200` — Placement limits, or {placementId, limitsSet:false} when none are set · `404` — Placement not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### DELETE /rest-api/placement/{placementId}/limits.do

[Request examples](https://epom.com/ad-server/docs/api/limits/delete-placement-limits.md)

Remove placement limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `placementId` | path | integer | yes | ID of the placement |

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

### POST /rest-api/placement/{placementId}/limits/reset.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-placement-limits-reset.md)

Reset placement limit counters.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `limitCounters` | form | array&lt;string&gt; | yes | Counters to reset Values: `TOTAL_IMPRESSIONS`, `TOTAL_CLICKS`, `TOTAL_CONVERSIONS`, `TOTAL_REQUESTS`, `TOTAL_REVENUE`, `TOTAL_OPPORTUNITIES`, `DAILY_IMPRESSIONS`, `DAILY_CONVERSIONS`, `DAILY_CLICKS`, `DAILY_REVENUE`, `DAILY_OPPORTUNITIES`, `NO_CONVERSIONS_HOURS`, `NO_CONVERSIONS_IMPRESSIONS`, `WEEKLY_REVENUE`, `MONTHLY_REVENUE`, `MONTHLY_IMPRESSIONS`, `WEEKLY_IMPRESSIONS`, `WEEKLY_CLICKS`, `MONTHLY_CLICKS`, `WEEKLY_CONVERSIONS`, `MONTHLY_CONVERSIONS`, `WEEKLY_OPPORTUNITIES`, `MONTHLY_OPPORTUNITIES`, `DAILY_REQUESTS`, `WEEKLY_REQUESTS` … (+4 more, 29 total). |
| `placementId` | path | integer | yes | ID of the placement |

**Responses:** `200` — Reset started · `404` — Placement not found, or it has no limits. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/placement/{placementId}/limits/set.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-placement-limits-set.md)

Set placement limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `placementId` | path | integer | yes | ID of the placement |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyRequestsLimit` | form | integer | no | Ad requests allowed per day (0 = unlimited). Site and placement limits only |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyRequestsLimit` | form | integer | no | Ad requests allowed per calendar month (0 = unlimited). Site and placement limits only |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalRequestsLimit` | form | integer | no | Ad requests allowed over the limit's lifetime (0 = unlimited). Site and placement limits only |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyRequestsLimit` | form | integer | no | Ad requests allowed per ISO week (0 = unlimited). Site and placement limits only |

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

### POST /rest-api/placement/{placementId}/limits/update.do

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

Update placement limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `placementId` | path | integer | yes | ID of the placement |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyRequestsLimit` | form | integer | no | Ad requests allowed per day (0 = unlimited). Site and placement limits only |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyRequestsLimit` | form | integer | no | Ad requests allowed per calendar month (0 = unlimited). Site and placement limits only |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalRequestsLimit` | form | integer | no | Ad requests allowed over the limit's lifetime (0 = unlimited). Site and placement limits only |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyRequestsLimit` | form | integer | no | Ad requests allowed per ISO week (0 = unlimited). Site and placement limits only |

**Responses:** `200` — Limits saved · `404` — Placement not found, or it has no limits (use set). Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/site/{siteId}/limits.do

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

Get site limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `siteId` | path | integer | yes | ID of the site |
| `timezoneOffset` | query | integer | no | The caller's offset from UTC in minutes (east positive). With the limit on local time, startDate/endDate are answered in that offset, as the console shows them; omitted, they are in UTC |

**Responses:** `200` — Site limits, or {siteId, limitsSet:false} when none are set · `404` — Site not found. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### DELETE /rest-api/site/{siteId}/limits.do

[Request examples](https://epom.com/ad-server/docs/api/limits/delete-site-limits.md)

Remove site limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `siteId` | path | integer | yes | ID of the site |

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

### POST /rest-api/site/{siteId}/limits/reset.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-site-limits-reset.md)

Reset site limit counters.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `limitCounters` | form | array&lt;string&gt; | yes | Counters to reset Values: `TOTAL_IMPRESSIONS`, `TOTAL_CLICKS`, `TOTAL_CONVERSIONS`, `TOTAL_REQUESTS`, `TOTAL_REVENUE`, `TOTAL_OPPORTUNITIES`, `DAILY_IMPRESSIONS`, `DAILY_CONVERSIONS`, `DAILY_CLICKS`, `DAILY_REVENUE`, `DAILY_OPPORTUNITIES`, `NO_CONVERSIONS_HOURS`, `NO_CONVERSIONS_IMPRESSIONS`, `WEEKLY_REVENUE`, `MONTHLY_REVENUE`, `MONTHLY_IMPRESSIONS`, `WEEKLY_IMPRESSIONS`, `WEEKLY_CLICKS`, `MONTHLY_CLICKS`, `WEEKLY_CONVERSIONS`, `MONTHLY_CONVERSIONS`, `WEEKLY_OPPORTUNITIES`, `MONTHLY_OPPORTUNITIES`, `DAILY_REQUESTS`, `WEEKLY_REQUESTS` … (+4 more, 29 total). |
| `siteId` | path | integer | yes | ID of the site |

**Responses:** `200` — Reset started · `404` — Site not found, or it has no limits. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/site/{siteId}/limits/set.do

[Request examples](https://epom.com/ad-server/docs/api/limits/post-site-limits-set.md)

Set site limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `siteId` | path | integer | yes | ID of the site |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyRequestsLimit` | form | integer | no | Ad requests allowed per day (0 = unlimited). Site and placement limits only |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyRequestsLimit` | form | integer | no | Ad requests allowed per calendar month (0 = unlimited). Site and placement limits only |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalRequestsLimit` | form | integer | no | Ad requests allowed over the limit's lifetime (0 = unlimited). Site and placement limits only |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyRequestsLimit` | form | integer | no | Ad requests allowed per ISO week (0 = unlimited). Site and placement limits only |

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

### POST /rest-api/site/{siteId}/limits/update.do

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

Update site limits.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `siteId` | path | integer | yes | ID of the site |
| `dailyClicksLimit` | form | integer | no | Maximum clicks allowed per day |
| `dailyConversionsLimit` | form | integer | no | Maximum conversions allowed per day |
| `dailyImpressionsLimit` | form | integer | no | Maximum impressions allowed per day |
| `dailyRequestsLimit` | form | integer | no | Ad requests allowed per day (0 = unlimited). Site and placement limits only |
| `endDate` | form | string | no | End date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `evenPacing` | form | boolean | no | When true, distributes delivery evenly throughout the day rather than front-loading |
| `monthlyClicksLimit` | form | integer | no | Maximum clicks allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyConversionsLimit` | form | integer | no | Maximum conversions allowed per month; 0 means no monthly cap. Resets the 1st of the month. |
| `monthlyImpressionsLimit` | form | integer | no | Maximum impressions allowed per calendar month; 0 means no monthly cap. Resets on the 1st. |
| `monthlyRequestsLimit` | form | integer | no | Ad requests allowed per calendar month (0 = unlimited). Site and placement limits only |
| `removeEndDateLimit` | form | boolean | no | When true, removes the existing end date limit |
| `removeStartDateLimit` | form | boolean | no | When true, removes the existing start date limit |
| `startDate` | form | string | no | Start date for the limiting period in yyyy-MM-dd-HH-mm (or yyyy-MM-dd HH:mm) format (GMT+0) |
| `timezoneOffset` | form | integer | no | The caller's offset from UTC in minutes (east positive, e.g. 120 for UTC+2). With useLocalTime on, the startDate/endDate of this request are read in that offset and stored in UTC; dates not sent are left as stored |
| `totalClicksLimit` | form | integer | no | Maximum total clicks allowed over the entire period |
| `totalConversionsLimit` | form | integer | no | Maximum total conversions allowed over the entire period |
| `totalImpressionsLimit` | form | integer | no | Maximum total impressions allowed over the entire period |
| `totalRequestsLimit` | form | integer | no | Ad requests allowed over the limit's lifetime (0 = unlimited). Site and placement limits only |
| `useLocalTime` | form | boolean | no | When true, startDate/endDate are given in the caller's local time (the console's Local Time switch); the limit read answers them in local time too when it is passed the same timezoneOffset, and in UTC otherwise. Omitted, the limit keeps its current setting |
| `weeklyClicksLimit` | form | integer | no | Maximum clicks allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyConversionsLimit` | form | integer | no | Maximum conversions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyImpressionsLimit` | form | integer | no | Maximum impressions allowed per week; 0 means no weekly cap. Resets each ISO week (Monday). |
| `weeklyRequestsLimit` | form | integer | no | Ad requests allowed per ISO week (0 = unlimited). Site and placement limits only |

**Responses:** `200` — Limits saved · `404` — Site not found, or it has no limits (use set). 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)
- [Targeting, capping and limits via API](https://epom.com/ad-server/docs/api/targeting-capping-limits.md)

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