---
title: "/signups"
method: POST
path: "/signups"
---

# /signups

`POST /signups`

## Request

- Base URL: `https://api.securevan.com/v4`
- URL: `https://api.securevan.com/v4/signups`
- Auth: HTTP basic

Use this endpoint to record a Person’s participation at an [Event](ref:events). Because it’s not easy to know whether a Person is already signed up for an Event, this endpoint will create a new Signup only if a Signup with the same Person, Event, Role, and Shift does not already exist. If a Signup does exist, it will override the existing Signup’s Status, Start Time, End Time, and (if specified) Location. A record of this change is displayed in the VAN UI.

When a Signup is created or updated, a canvass response is generated to represent the signup interaction. The *Input Type* is *API*, the *Date Canvassed* is the current date, the *Canvasser* is the API user associated with the current context, and the *Result Code* corresponds to a result most appropriate for the given Status (e.g., *Scheduled* → *Canvassed*). Consult the VAN UI for a detailed mapping.

This endpoint accepts a standard [Signup](ref:signups#common-models-33) object with simple types and no read-only values specified.

If successful, the endpoint responds with HTTP Status Code `201 Created` (even if it matched and updated an existing Signup) and the integer ID of the created Signup in the response body. It also sets the **Location** header to the [location](ref:signupseventsignupid-1) of the newly created Signup.

## Request body

- object
  - `person` object
    - `vanId` string
  - `event` object
    - `eventId` integer
  - `shift` object
    - `eventShiftId` integer
  - `role` object
    - `roleId` integer
  - `status` object
    - `statusId` integer
  - `location` object
    - `locationId` integer

## Response `201`

201

- object
  - `eventSignupId` integer
  - `person` object
    - `vanId` integer
    - `firstName` string
    - `middleName` string
    - `lastName` string
  - `event` object
    - `eventId` integer
    - `name` string
    - `shortName` string
  - `shift` object
    - `eventShiftId` integer
    - `name` unknown
  - `role` object
    - `roleId` integer
    - `name` string
  - `status` object
    - `statusId` integer
    - `name` string
  - `location` object
    - `locationId` integer
    - `name` string
    - `displayName` string
  - `startTimeOverride` string
  - `endTimeOverride` string

## Other responses

- `400`: 400

## Changes

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

[Operation history](https://skmtc.dev/ngpvan/apis/van-crm/changes/signups/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)
