> For the complete documentation index, see [llms.txt](https://integrations.impact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://integrations.impact.com/brand-api-reference/reference/surveys-and-custom-fields/custom-fields.md).

# Custom Fields

## List All Custom Fields

> Returns a list of custom fields for the program. Supports searching by name or ID and filtering by display type.<br>

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"tags":[{"name":"Custom Fields"}],"servers":[{"url":"https://api.impact.com","description":"impact.com API"}],"paths":{"/Advertisers/{AccountSid}/Programs/{ProgramId}/CustomFields":{"get":{"tags":["Custom Fields"],"operationId":"listCustomFields","summary":"List All Custom Fields","description":"Returns a list of custom fields for the program. Supports searching by name or ID and filtering by display type.\n","parameters":[{"name":"Query","in":"query","required":false,"description":"Search query to filter by custom field name or ID.","schema":{"type":"string"}},{"name":"DisplayTypes","in":"query","required":false,"description":"Filter by display types. See the DisplayType field for accepted values.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true}],"responses":{"200":{"description":"A list of custom fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomFieldListResponse"}}}},"404":{"description":"Program not found."},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"schemas":{"CustomFieldListResponse":{"type":"object","properties":{"CustomFields":{"type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"CustomField":{"type":"object","description":"A custom field that defines the data collection type for a survey question.\n","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"DisplayType":{"type":"string","description":"The display type.","enum":["Paragraph","Multi-select","Dropdown list","Single-select","Date picker","Number","File"]},"Enumerations":{"type":"array","items":{"$ref":"#/components/schemas/Enumeration"}}}},"Enumeration":{"type":"object","description":"An allowed value for a selection-based custom field.","properties":{"Id":{"type":"integer","format":"int64"},"Value":{"type":"string"}}}},"responses":{"ServerError":{"description":"Internal server error."}}}}
```

## Create a Custom Field

> Creates a custom field. For enumeration-based display types (dropdown\
> list, single-select, and multi-select), provide the option values in\
> \`Enumerations\`.\
> \
> For more about custom fields and how they're used in surveys, see\
> \[Create Custom Fields for Surveys]\(<https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/reach-out-to-partners/surveys/create-custom-fields-for-surveys>).<br>

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"tags":[{"name":"Custom Fields"}],"servers":[{"url":"https://api.impact.com","description":"impact.com API"}],"paths":{"/Advertisers/{AccountSid}/Programs/{ProgramId}/CustomFields":{"post":{"tags":["Custom Fields"],"operationId":"createCustomField","summary":"Create a Custom Field","description":"Creates a custom field. For enumeration-based display types (dropdown\nlist, single-select, and multi-select), provide the option values in\n`Enumerations`.\n\nFor more about custom fields and how they're used in surveys, see\n[Create Custom Fields for Surveys](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/reach-out-to-partners/surveys/create-custom-fields-for-surveys).\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomFieldRequest"}}}},"responses":{"201":{"description":"The created custom field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomFieldEnvelope"}}}},"400":{"description":"Bad request. This can occur when:\n- The Account SID is invalid\n- `DisplayType` is missing or is not a recognized display type\n- A custom field with the same name **and** type already exists. The\n  uniqueness check is on name and type combined, so two custom fields\n  may share a name as long as their types differ.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Program not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"schemas":{"CreateCustomFieldRequest":{"type":"object","required":["Name","DisplayType"],"properties":{"Name":{"type":"string","description":"Name of the custom field."},"Description":{"type":"string","description":"Description of the custom field."},"DisplayType":{"type":"string","description":"The display type for the custom field. Determines what kind of data\nthe field collects:\n\n- **Paragraph** — Open-ended questions that allow unique answers.\n- **Multi-select** — Questions that may include multiple answers. Respondents can select one or more options. *(enumeration-based)*\n- **Dropdown list** — Questions that require respondents to select one option from a dropdown menu. *(enumeration-based)*\n- **Single-select** — Questions that require respondents to select only one option from a list. *(enumeration-based)*\n- **Date picker** — Questions that require a date as an answer.\n- **Number** — Questions that require a number as an answer.\n- **File** — Questions that require an attachment from the partner.\n","enum":["Paragraph","Multi-select","Dropdown list","Single-select","Date picker","Number","File"]},"Enumerations":{"type":"array","description":"List of option values, required for enumeration-based display types (dropdown list, single-select, multi-select). Provide each option as a separate array item.\n","items":{"type":"string"}}}},"CustomFieldEnvelope":{"type":"object","description":"Success envelope returned when a custom field is created.","properties":{"Status":{"type":"string"},"Body":{"$ref":"#/components/schemas/CustomField"}}},"CustomField":{"type":"object","description":"A custom field that defines the data collection type for a survey question.\n","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"DisplayType":{"type":"string","description":"The display type.","enum":["Paragraph","Multi-select","Dropdown list","Single-select","Date picker","Number","File"]},"Enumerations":{"type":"array","items":{"$ref":"#/components/schemas/Enumeration"}}}},"Enumeration":{"type":"object","description":"An allowed value for a selection-based custom field.","properties":{"Id":{"type":"integer","format":"int64"},"Value":{"type":"string"}}},"ErrorResponse":{"type":"object","description":"Error envelope returned by custom field write operations.","properties":{"Status":{"type":"string"},"Message":{"type":"string","description":"Human-readable error description."}}}},"responses":{"ServerError":{"description":"Internal server error."}}}}
```

## Get a Custom Field

> Returns the details of a single custom field.

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"tags":[{"name":"Custom Fields"}],"servers":[{"url":"https://api.impact.com","description":"impact.com API"}],"paths":{"/Advertisers/{AccountSid}/Programs/{ProgramId}/CustomFields/{CustomFieldId}":{"get":{"tags":["Custom Fields"],"operationId":"getCustomField","summary":"Get a Custom Field","description":"Returns the details of a single custom field.","responses":{"200":{"description":"The requested custom field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomField"}}}},"400":{"description":"Invalid request."},"404":{"description":"Custom field not found."},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"schemas":{"CustomField":{"type":"object","description":"A custom field that defines the data collection type for a survey question.\n","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"DisplayType":{"type":"string","description":"The display type.","enum":["Paragraph","Multi-select","Dropdown list","Single-select","Date picker","Number","File"]},"Enumerations":{"type":"array","items":{"$ref":"#/components/schemas/Enumeration"}}}},"Enumeration":{"type":"object","description":"An allowed value for a selection-based custom field.","properties":{"Id":{"type":"integer","format":"int64"},"Value":{"type":"string"}}}},"responses":{"ServerError":{"description":"Internal server error."}}}}
```

## Delete a Custom Field

> Deletes a custom field.\
> \
> {% hint style="warning" %}\
> \*\*Warning:\*\* Deleting a custom field also deletes all response data\
> collected through it. Any survey that uses the field is no longer\
> available to partners.\
> {% endhint %}<br>

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"tags":[{"name":"Custom Fields"}],"servers":[{"url":"https://api.impact.com","description":"impact.com API"}],"paths":{"/Advertisers/{AccountSid}/Programs/{ProgramId}/CustomFields/{CustomFieldId}":{"delete":{"tags":["Custom Fields"],"operationId":"deleteCustomField","summary":"Delete a Custom Field","description":"Deletes a custom field.\n\n{% hint style=\"warning\" %}\n**Warning:** Deleting a custom field also deletes all response data\ncollected through it. Any survey that uses the field is no longer\navailable to partners.\n{% endhint %}\n","responses":{"200":{"description":"The custom field was deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}},"404":{"description":"Custom field not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"schemas":{"StatusResponse":{"type":"object","properties":{"Status":{"type":"string"}}},"ErrorResponse":{"type":"object","description":"Error envelope returned by custom field write operations.","properties":{"Status":{"type":"string"},"Message":{"type":"string","description":"Human-readable error description."}}}},"responses":{"ServerError":{"description":"Internal server error."}}}}
```

## Update a Custom Field

> Updates the name and/or description of a custom field.\
> \
> {% hint style="success" %}\
> \*\*Note:\*\* A custom field's type (\`DisplayType\`) and its enumeration\
> values cannot be changed after the field is created. Changing them would\
> break surveys and responses that already use the field, so impact.com\
> only allows the name and description to be updated for now. If a custom\
> field needs to change in any other way, rename the existing field (for\
> example, prefix its name with \`\[archived]\` or \`\[deprecated]\`) and create\
> a new custom field.\
> {% endhint %}<br>

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"tags":[{"name":"Custom Fields"}],"servers":[{"url":"https://api.impact.com","description":"impact.com API"}],"paths":{"/Advertisers/{AccountSid}/Programs/{ProgramId}/CustomFields/{CustomFieldId}":{"patch":{"tags":["Custom Fields"],"operationId":"updateCustomField","summary":"Update a Custom Field","description":"Updates the name and/or description of a custom field.\n\n{% hint style=\"success\" %}\n**Note:** A custom field's type (`DisplayType`) and its enumeration\nvalues cannot be changed after the field is created. Changing them would\nbreak surveys and responses that already use the field, so impact.com\nonly allows the name and description to be updated for now. If a custom\nfield needs to change in any other way, rename the existing field (for\nexample, prefix its name with `[archived]` or `[deprecated]`) and create\na new custom field.\n{% endhint %}\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomFieldRequest"}}}},"responses":{"200":{"description":"The custom field was updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Custom field not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"schemas":{"UpdateCustomFieldRequest":{"type":"object","description":"Only the fields provided are updated.","properties":{"Name":{"type":"string","description":"Updated name of the custom field."},"Description":{"type":"string","description":"Updated description of the custom field."}}},"StatusResponse":{"type":"object","properties":{"Status":{"type":"string"}}},"ErrorResponse":{"type":"object","description":"Error envelope returned by custom field write operations.","properties":{"Status":{"type":"string"},"Message":{"type":"string","description":"Human-readable error description."}}}},"responses":{"ServerError":{"description":"Internal server error."}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://integrations.impact.com/brand-api-reference/reference/surveys-and-custom-fields/custom-fields.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
