# Models

## The Enumeration object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"Enumeration":{"type":"object","description":"An allowed value for a selection-based custom field.","properties":{"Id":{"type":"integer","format":"int64"},"Value":{"type":"string"}}}}}}
```

## The CustomField object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"CustomField":{"type":"object","description":"A custom field that defines the data collection type for a survey question. For selection-based display types (drop-down, single-select, multi-select), `Enumerations` lists the available options.\n","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"DisplayType":{"type":"string","description":"The data collection type, returned as the internal value: `paragraph`, `number`, `date_picker`, `dropdown`, `multiple_choice` (single-select), `multiple_checkbox` (multi-select), or `file`.\n"},"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"}}}}}}
```

## The Question object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"Question":{"type":"object","properties":{"Id":{"type":"integer","format":"int64"},"Question":{"type":"string"},"CustomFieldId":{"type":"integer","format":"int64"},"ResponseRequired":{"type":"boolean"},"ResponseEditable":{"type":"boolean"},"Rank":{"type":"integer"},"CustomField":{"$ref":"#/components/schemas/CustomField"}}},"CustomField":{"type":"object","description":"A custom field that defines the data collection type for a survey question. For selection-based display types (drop-down, single-select, multi-select), `Enumerations` lists the available options.\n","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"DisplayType":{"type":"string","description":"The data collection type, returned as the internal value: `paragraph`, `number`, `date_picker`, `dropdown`, `multiple_choice` (single-select), `multiple_checkbox` (multi-select), or `file`.\n"},"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"}}}}}}
```

## The SurveySummary object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"SurveySummary":{"type":"object","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"StartDate":{"type":"string","format":"date-time"},"EndDate":{"type":"string","format":"date-time"},"Status":{"type":"string","enum":["Active","Upcoming","Expired"],"description":"Automatically calculated from the date range. Active = no restrictions or currently within range; Upcoming = start date in the future; Expired = end date in the past.\n"},"CoverImageUrl":{"type":"string"},"QuestionsCount":{"type":"integer"},"ResponsesCount":{"type":"integer"},"CreatedDate":{"type":"string","format":"date-time"},"UpdatedDate":{"type":"string","format":"date-time"}}}}}}
```

## The Survey object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"Survey":{"allOf":[{"$ref":"#/components/schemas/SurveySummary"},{"type":"object","properties":{"Questions":{"type":"array","items":{"$ref":"#/components/schemas/Question"}}}}]},"SurveySummary":{"type":"object","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"StartDate":{"type":"string","format":"date-time"},"EndDate":{"type":"string","format":"date-time"},"Status":{"type":"string","enum":["Active","Upcoming","Expired"],"description":"Automatically calculated from the date range. Active = no restrictions or currently within range; Upcoming = start date in the future; Expired = end date in the past.\n"},"CoverImageUrl":{"type":"string"},"QuestionsCount":{"type":"integer"},"ResponsesCount":{"type":"integer"},"CreatedDate":{"type":"string","format":"date-time"},"UpdatedDate":{"type":"string","format":"date-time"}}},"Question":{"type":"object","properties":{"Id":{"type":"integer","format":"int64"},"Question":{"type":"string"},"CustomFieldId":{"type":"integer","format":"int64"},"ResponseRequired":{"type":"boolean"},"ResponseEditable":{"type":"boolean"},"Rank":{"type":"integer"},"CustomField":{"$ref":"#/components/schemas/CustomField"}}},"CustomField":{"type":"object","description":"A custom field that defines the data collection type for a survey question. For selection-based display types (drop-down, single-select, multi-select), `Enumerations` lists the available options.\n","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"DisplayType":{"type":"string","description":"The data collection type, returned as the internal value: `paragraph`, `number`, `date_picker`, `dropdown`, `multiple_choice` (single-select), `multiple_checkbox` (multi-select), or `file`.\n"},"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"}}}}}}
```

## The SurveyListResponse object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"SurveyListResponse":{"type":"object","properties":{"Page":{"type":"integer"},"PageSize":{"type":"integer"},"TotalCount":{"type":"integer"},"Surveys":{"type":"array","items":{"$ref":"#/components/schemas/SurveySummary"}}}},"SurveySummary":{"type":"object","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"StartDate":{"type":"string","format":"date-time"},"EndDate":{"type":"string","format":"date-time"},"Status":{"type":"string","enum":["Active","Upcoming","Expired"],"description":"Automatically calculated from the date range. Active = no restrictions or currently within range; Upcoming = start date in the future; Expired = end date in the past.\n"},"CoverImageUrl":{"type":"string"},"QuestionsCount":{"type":"integer"},"ResponsesCount":{"type":"integer"},"CreatedDate":{"type":"string","format":"date-time"},"UpdatedDate":{"type":"string","format":"date-time"}}}}}}
```

## The CreateQuestion object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"CreateQuestion":{"type":"object","required":["Question"],"properties":{"Question":{"type":"string","maxLength":191,"description":"The question text."},"CustomFieldId":{"type":"integer","format":"int64","description":"ID of the custom field linked to this question."},"ResponseRequired":{"type":"boolean","default":false,"description":"Whether a response is required."},"ResponseEditable":{"type":"boolean","default":false,"description":"Whether the response is editable."}}}}}}
```

## The CreateSurveyRequest object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"CreateSurveyRequest":{"type":"object","required":["Name","Questions"],"properties":{"Name":{"type":"string","maxLength":255,"description":"Name of the survey."},"Description":{"type":"string","description":"Description of the survey."},"StartDate":{"type":"string","format":"date","description":"Start date (ISO 8601)."},"EndDate":{"type":"string","format":"date","description":"End date (ISO 8601)."},"Timezone":{"type":"string","description":"IANA timezone ID (e.g. America/New_York, UTC). Stored for reference.\n"},"CoverImageUrl":{"type":"string","description":"URL for the survey cover image. If not provided, the brand's logo is used.\n"},"RestrictToPartners":{"type":"array","uniqueItems":true,"description":"Set of partner IDs to restrict the survey to.","items":{"type":"integer","format":"int64"}},"RestrictToGroups":{"type":"array","uniqueItems":true,"description":"Set of group names to restrict the survey to.","items":{"type":"string"}},"Questions":{"type":"array","description":"List of questions to create.","items":{"$ref":"#/components/schemas/CreateQuestion"}}}},"CreateQuestion":{"type":"object","required":["Question"],"properties":{"Question":{"type":"string","maxLength":191,"description":"The question text."},"CustomFieldId":{"type":"integer","format":"int64","description":"ID of the custom field linked to this question."},"ResponseRequired":{"type":"boolean","default":false,"description":"Whether a response is required."},"ResponseEditable":{"type":"boolean","default":false,"description":"Whether the response is editable."}}}}}}
```

## The UpdateQuestion object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"UpdateQuestion":{"type":"object","properties":{"Id":{"type":"integer","format":"int64","description":"ID of an existing question to update. Omit to create a new one."},"Question":{"type":"string","maxLength":191,"description":"The question text."},"CustomFieldId":{"type":"integer","format":"int64","description":"ID of the custom field linked to this question."},"ResponseRequired":{"type":"boolean","default":false,"description":"Whether a response is required."},"ResponseEditable":{"type":"boolean","default":false,"description":"Whether the response is editable."}}}}}}
```

## The UpdateSurveyRequest object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"UpdateSurveyRequest":{"type":"object","description":"All fields are optional. Only the fields provided are updated.","properties":{"Name":{"type":"string","maxLength":255,"description":"Updated name of the survey."},"Description":{"type":"string","description":"Updated description of the survey."},"StartDate":{"type":"string","format":"date","description":"Updated start date (ISO 8601)."},"EndDate":{"type":"string","format":"date","description":"Updated end date (ISO 8601)."},"Timezone":{"type":"string","description":"IANA timezone ID (e.g. America/New_York, UTC). Stored for reference."},"CoverImageUrl":{"type":"string","description":"Updated cover image URL."},"RestrictToPartners":{"type":"array","uniqueItems":true,"description":"Set of partner IDs to restrict the survey to.","items":{"type":"integer","format":"int64"}},"RestrictToGroups":{"type":"array","uniqueItems":true,"description":"Set of group names to restrict the survey to.","items":{"type":"string"}},"Questions":{"type":"array","description":"List of questions to create or update.","items":{"$ref":"#/components/schemas/UpdateQuestion"}}}},"UpdateQuestion":{"type":"object","properties":{"Id":{"type":"integer","format":"int64","description":"ID of an existing question to update. Omit to create a new one."},"Question":{"type":"string","maxLength":191,"description":"The question text."},"CustomFieldId":{"type":"integer","format":"int64","description":"ID of the custom field linked to this question."},"ResponseRequired":{"type":"boolean","default":false,"description":"Whether a response is required."},"ResponseEditable":{"type":"boolean","default":false,"description":"Whether the response is editable."}}}}}}
```

## The SurveyResponse object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"SurveyResponse":{"type":"object","properties":{"Id":{"type":"integer"},"QuestionId":{"type":"integer","format":"int64"},"Question":{"type":"string"},"PartnerId":{"type":"integer","format":"int64"},"PartnerName":{"type":"string"},"UserId":{"type":"integer","format":"int64"},"UserEmail":{"type":"string"},"ResponseValue":{"type":"string","description":"The response value. For enumeration-based custom fields, this is a comma-separated list of enumeration IDs that resolve to display values via the custom field's enumeration list.\n"},"ResponseDate":{"type":"string","format":"date-time"},"CustomFieldId":{"type":"integer","format":"int64"}}}}}}
```

## The SurveyResponseListResponse object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"SurveyResponseListResponse":{"type":"object","properties":{"Page":{"type":"integer"},"PageSize":{"type":"integer"},"TotalCount":{"type":"integer"},"Responses":{"type":"array","items":{"$ref":"#/components/schemas/SurveyResponse"}}}},"SurveyResponse":{"type":"object","properties":{"Id":{"type":"integer"},"QuestionId":{"type":"integer","format":"int64"},"Question":{"type":"string"},"PartnerId":{"type":"integer","format":"int64"},"PartnerName":{"type":"string"},"UserId":{"type":"integer","format":"int64"},"UserEmail":{"type":"string"},"ResponseValue":{"type":"string","description":"The response value. For enumeration-based custom fields, this is a comma-separated list of enumeration IDs that resolve to display values via the custom field's enumeration list.\n"},"ResponseDate":{"type":"string","format":"date-time"},"CustomFieldId":{"type":"integer","format":"int64"}}}}}}
```

## The CoverImageUploadResponse object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"CoverImageUploadResponse":{"type":"object","properties":{"Status":{"type":"string"},"Body":{"type":"object","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"CoverImageUrl":{"type":"string"}}}}}}}}
```

## The StatusResponse object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"StatusResponse":{"type":"object","properties":{"Status":{"type":"string"}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"ErrorResponse":{"type":"object","description":"Error envelope returned by custom field write operations.","properties":{"Status":{"type":"string"},"Message":{"type":"string","description":"Human-readable error description."}}}}}}
```

## The CustomFieldListResponse object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"CustomFieldListResponse":{"type":"object","properties":{"Page":{"type":"integer"},"PageSize":{"type":"integer"},"TotalCount":{"type":"integer"},"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. For selection-based display types (drop-down, single-select, multi-select), `Enumerations` lists the available options.\n","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"DisplayType":{"type":"string","description":"The data collection type, returned as the internal value: `paragraph`, `number`, `date_picker`, `dropdown`, `multiple_choice` (single-select), `multiple_checkbox` (multi-select), or `file`.\n"},"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"}}}}}}
```

## The CreateCustomFieldRequest object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"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":"Display type, supplied as a UI label. Matching is case-insensitive and accepts spaces, hyphens, or underscores as word separators (e.g. `Single-select`, `single select`, and `SINGLE_SELECT` are equivalent). Accepted UI labels and the internal values they map to: `Paragraph` → `paragraph` (multi-line text), `Number` → `number` (numeric input), `Datepicker` → `date_picker` (date picker), `Dropdown list` → `dropdown` (single-select dropdown), `Single-select` → `multiple_choice` (single-select radio/choice), `Multi-select` → `multiple_checkbox` (multi-select checkbox), `File` → `file` (file upload).\n"},"Enumerations":{"type":"array","description":"List of enumeration values, for enumeration-based display types.","items":{"type":"string"}}}}}}}
```

## The UpdateCustomFieldRequest object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"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."}}}}}}
```

## The CustomFieldEnvelope object

```json
{"openapi":"3.1.0","info":{"title":"Surveys","version":"v14"},"components":{"schemas":{"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. For selection-based display types (drop-down, single-select, multi-select), `Enumerations` lists the available options.\n","properties":{"Id":{"type":"integer","format":"int64"},"Name":{"type":"string"},"Description":{"type":"string"},"DisplayType":{"type":"string","description":"The data collection type, returned as the internal value: `paragraph`, `number`, `date_picker`, `dropdown`, `multiple_choice` (single-select), `multiple_checkbox` (multi-select), or `file`.\n"},"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"}}}}}}
```


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
