---
title: "Custom Parameters API endpoints"
description: "Endpoint reference for the Custom Parameters tag (7 endpoints): The custom parameters the ad tags send: names, value lists, list separators and what reaches analytics"
type: "reference"
audience: [network-manager, admin]
keywords: [api, rest, endpoints, custom, parameters, targeting]
---

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.

# Custom Parameters API endpoints

The custom parameters the ad tags send: names, value lists, list separators and what reaches analytics. 7 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.

### POST /rest-api/custom-parameter-policy.do

[Request examples](https://epom.com/ad-server/docs/api/custom-parameters/post-custom-parameter-policy.md)

Set the custom parameter recording policy.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `policy` | form | string | yes | ANY or ONLY_VERIFIED Values: `ANY`, `ONLY_VERIFIED`. |

**Responses:** `200` — {policy} · `409` — The Analytics configuration list still decides; adopt it first. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/custom-parameter-policy/adopt-legacy.do

[Request examples](https://epom.com/ad-server/docs/api/custom-parameters/post-custom-parameter-policy-adopt-legacy.md)

Move the Analytics configuration list to the custom parameters.

No parameters beyond authentication.

**Responses:** `200` — {policy} · `409` — The policy is no longer LEGACY. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/custom-parameters.do

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

List custom parameters.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `usage` | query | boolean | no | true: count the targeting rules that read each parameter (CUSTOM_PARAMETERS admins only) |
| `query` | query | string | no | Only the parameters whose name or label contains this, ignoring case |

**Responses:** `200` — {parameters: [parameter], total, mayManage (whether the caller may change them and see the rules that read them), policy (LEGACY, ANY or ONLY_VERIFIED), legacy: {names, mode, applies (the list's filter is on for this server; other servers may differ), movesByItself (the list is empty, so the policy leaves LEGACY within a minute)} while LEGACY (CUSTOM_PARAMETERS admins only), unregistered: [{name, rules}] with usage=true}. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/custom-parameters.do

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

Add a custom parameter.

**Request body** (`application/json`, required): JSON object with fields `allowOtherValues`, `description`, `label`, `listSeparator`, `name`, `recordInAnalytics`, `valueMode`, `values` — The parameter.

**Responses:** `200` — {parameter, ignoredFields} · `409` — A parameter with this name already exists. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### GET /rest-api/custom-parameters/{parameterId}.do

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

Get a custom parameter.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `parameterId` | path | string | yes | Parameter id or name |

**Responses:** `200` — {parameter, rules (CUSTOM_PARAMETERS admins only): [{targetId, rule, kind, parameter, operation, values, text, ownerType, ownerId, ownerName, advertiserId, campaignId, siteId, zoneId, neverMatches}]} · `404` — No parameter with this id or name. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/custom-parameters/{parameterId}.do

[Request examples](https://epom.com/ad-server/docs/api/custom-parameters/post-custom-parameters-by-parameter-id.md)

Update a custom parameter.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `parameterId` | path | string | yes | Parameter id or name |

**Request body** (`application/json`, required): JSON object with fields `allowOtherValues`, `description`, `label`, `listSeparator`, `name`, `recordInAnalytics`, `valueMode`, `values` — Only the fields to change.

**Responses:** `200` — {parameter, ignoredFields} · `404` — No parameter with this id or name · `409` — Another parameter already has this name. Errors follow the [shared conventions](https://epom.com/ad-server/docs/api.md#error-codes).

### POST /rest-api/custom-parameters/{parameterId}/delete.do

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

Delete a custom parameter.

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `parameterId` | path | string | yes | Parameter id or name |

**Responses:** `200` — {success} · `404` — No parameter with this id or name. 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)

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