---
title: "Create Vote"
method: POST
path: "/api/v1/votes"
tags: ["Voting"]
---

# Create Vote

`POST /api/v1/votes`

## Request

- Base URL: `https://www.endlesstravelplans.com`
- URL: `https://www.endlesstravelplans.com/api/v1/votes`
- Auth: HTTP bearer

Create a new voting session with options.

## Request body

- object
  - `trip_external_id` string, nullable: The <code>external_id</code> of an existing record in the trips table.
  - `name` string, required: The vote title.
  - `description` string, nullable: Optional description.
  - `vote_type_id` integer, required: The vote type ID.
  - `anonymous` boolean: Allow anonymous voting.
  - `allow_multiple_options` boolean: Allow selecting multiple options.
  - `ranked_choice_voting` boolean
  - `gamification` boolean
  - `name_required` boolean
  - `show_live_results` boolean
  - `weighted_voting_enabled` boolean
  - `voting_deadline` string, nullable: Must be a valid date. Must be a date after or equal to <code>today</code>.
  - `consensus_threshold_percent` integer, nullable: Must be at least 1. Must not be greater than 100.
  - `options` object[], required: At least 2 options.
    - `name` string, required: The option name.
    - `description` string, nullable: Optional description.

## Response `201`

- object
  - `vote` object
    - `name` string
    - `url` string

## Other responses

- `401`: unauthenticated: No valid bearer token was sent.
- `422`: validation_failed: The request body failed validation; field messages are in `errors`.
- `429`: rate_limited: A throttle or a per-account allowance refused the request; `retry_after` or `remaining` may be present.
- `500`: server_error: Unhandled failure; quote `request_id` to support.

---

[API](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api.md) · [All operations](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api/llms.txt) · [OpenAPI document](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api/revisions/ae82ed3e4a8f?raw)
