---
title: "/people/{personIdType}:{personId}/canvassResponses"
method: POST
path: "/people/{personIdType}:{personId}/canvassResponses"
---

# /people/{personIdType}:{personId}/canvassResponses

`POST /people/{personIdType}:{personId}/canvassResponses`

## Request

- Base URL: `https://api.securevan.com/v4`
- URL: `https://api.securevan.com/v4/people/{personIdType}:{personId}/canvassResponses`
- Auth: HTTP basic

This endpoint is the same as [POST /people/{vanId}/canvassResponses](ref:people#peoplevanidcanvassresponses) but uses external IDs rather than VANIDs.

## Path parameters

- `personIdType` string, required
- `personId` string, required

## Request body

- object
  - `canvassContext` object: Optional; describes the context in which this Canvass Response was created
    - `contactTypeId` integer: Optional; a valid [Contact Type ID](ref:canvassresponsescontacttypes)
    - `inputTypeId` integer: Optional; a valid [Input Type ID](ref:canvassresponsesinputtypes) (defaults to `11` → API)
    - `dateCanvassed` string, date: Optional; the ISO 8601 formatted date that the canvass attempt was made (defaults to today’s date)
    - `phoneId` integer: Optional; the identifier of the phone number that was called when canvassing this person. May result in a phone suppression in the event of certain kinds of Result Codes (e.g., Wrong Number.)
    - `skipMatching` boolean: Optional; if set to `true`, skips matching/de-duping of contact history. Defaults to a null value, aka `false`.
    - `omitActivistCodeContactHistory` boolean: Optional; if set to `true`, no contact history record will be created if `responses` contains only Activist Codes
    - `phone` object: Optional; describes the context of the phone number where a contact was attempted
      - `dialingPrefix` string: The country calling code of the number
      - `phoneNumber` string: Required when inputTypeId is 1 (Phone) or 37 (SMS); the phone number you are attempting - without calling code/dialing prefix
      - `smsOptInStatus` 'I' | 'O' | 'U': Optional; Must be one of three values: `I` (Opt-In), `O` (Opt-Out), `U` (Unknown). Please note: phone numbers that have been deactivated by the carrier will be marked with an SMS Opt In Status of "Unknown". This information is updated nightly based on information provided by cell phone carriers.
    - `campaignId` integer: Optional; a valid [Campaign ID](ref:campaigns). Required if `contentId` is also specified.
    - `contentId` integer: Optional; a valid Content ID. If specified, the Content's corresponding Campaign must be specified as `campaignId`.
    - `includeReferenceIdInResponse` boolean: Optional; When set to true, the response body will include a GUID corresponding to the newly created canvass response. This GUID can be used later at GET /people/{vanId}/canvassResponses to retrieve the associated canvassResponseId, which is necessary for patching canvass responses at PATCH /people/{vanId}/canvassResponses/{canvassResponseId}. By default, this parameter is false.
  - `resultCodeId` integer: Optional; specifies the [Result Code](ref:canvass-responses#canvassresponsesresultcodes) of this Response. If no `resultCodeId` is specified, `responses` must be specified. Conversely, if `responses` are specified, `resultCodeId` must be null (a result of *Canvassed* is implied). The `resultCodeId` must be a valid [Result Code](ref:canvass-responses#canvassresponsesresultcodes) in the current context.
  - `responses` object[]: Optional; an array of Script Responses. If specified, `resultCodeId` must be null. Each Script Response has a property that determines the response's type. This array can contain multiple types.
    - `type` 'ActivistCode' | 'SurveyResponse' | 'VolunteerActivity', required: The `type` of this response dictates the validation requirements of other properties. One of `ActivistCode`, `SurveyResponse`, or `VolunteerActivity`
    - `action` 'Apply' | 'Remove': Indicates whether to apply or remove this response from a person (valid for `ActivistCode` and `VolunteerActivity` only). NOTE: when removing a multi-assign Activist Code, include dateCanvassed in the canvassContext array to specify the record.
    - `activistCodeId` integer: Required if `type` is `ActivistCode`; a valid [Activist Code ID](ref:activist-codes)
    - `surveyQuestionId` integer: Required if `type` is `SurveyResponse`; a valid [Survey Question ID](ref:survey-questions)
    - `surveyResponseId` integer: Required if `type` is `SurveyResponse`; a valid response corresponding to the question specified by `surveyQuestionId`
    - `volunteerActivityId` integer: Required if `type` is `VolunteerActivity`; a valid Volunteer Activity ID

## Response `200`

200

- object
  - `referenceId` string

## Other responses

- `204`: 204
- `400`: 400

## Changes

- **2026-11-03** `4f2049fba5af`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ngpvan/apis/van-crm/changes/people/:personIdType::personId/canvassResponses/post.md)

---

[API](https://skmtc.dev/ngpvan/apis/van-crm.md) - [All operations](https://skmtc.dev/ngpvan/apis/van-crm/llms.txt) - [OpenAPI document](https://skmtc.dev/ngpvan/apis/van-crm/revisions/4f2049fba5af?raw)
