Creates a poll and responds with 201 Created and the full poll, exactly as GET /polls/:pollId returns it. Share inviteUrl with participants. The request mirrors the response: kind chooses what participants vote on, and options takes the same shape the poll returns, so a poll can be recreated from the body of a GET. A poll has at most 100 options.
Date poll
Pass kind: "date" and options, one { "date": "YYYY-MM-DD" } per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed.
Pass kind: "time", optionally a timeZone (an IANA zone the times are written in) and a default duration in minutes, and the slots as options, generators or both.
Explicit slots
Each entry in options is one slot: a startTime and an optional duration that overrides the poll default. A startTime with no offset, like 2027-03-01T09:00:00, is wall clock time in timeZone when that is set and a floating time with no conversion otherwise; one with an offset or Z is an absolute instant.
Each object in generators expands into recurring slots of duration minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. duration is required when generators is set.
This produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop interval and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30.
Field
Meaning
startDate, endDate
The date range, inclusive. Fewer than 366 days.
days
Days of the week to include: mon to sun. Optional; defaults to every day.
from
Earliest slot start on each day, HH:mm in timeZone.
to
End of the daily window, HH:mm in timeZone. A slot is only generated if it ends by this time. Must be later than from.
interval
Minutes between slot starts. Optional; defaults to duration, which gives back to back slots.
A generator that cannot produce a slot is rejected with VALIDATION_ERROR naming the field: to not later than from, a window shorter than duration, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to options, and duplicate slots are removed. A request that would exceed 100 options fails with TOO_MANY_OPTIONS.
POST
/
v1
/
polls
curl --request POST \ --url https://api.rallly.co/v1/polls \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "title": "Team offsite", "kind": "date", "description": "Which days work for a two day offsite?", "options": [ { "date": "2027-03-01" }, { "date": "2027-03-02" }, { "date": "2027-03-03" } ]}'
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Date poll
Time poll
kind chooses what participants vote on: whole days (date) or time slots (time). The request mirrors the poll the API returns: the same settings, and options in the same shape as the response.
title
string
required
Required string length: 1 - 255
Example:
"Team sync"
kind
string
required
Participants vote on whole days.
Allowed value: "date"
options
Date option · object[]
required
Calendar days to offer. Dates are floating calendar days with no timezone, so never convert them through one. Duplicates are removed.
Minimum array length: 1
Show child attributes
description
string
Maximum string length: 1000
Example:
"Pick a time that works for everyone"
location
string
Where the event takes place, as free text.
Maximum string length: 255
Example:
"Conference Room A"
conferencing
object
The video call for the event. meet, zoom, teams and webex need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. custom names any call, with an optional link participants join with.
Option 1
Option 2
Option 3
Option 4
Option 5
Show child attributes
Example:
{ "provider": "zoom" }
requireEmail
boolean
Require participants to provide their email address
Example:
true
hideParticipants
boolean
Hide participant names from other participants
Example:
false
hideScores
boolean
Hide vote counts from participants
Example:
false
disableComments
boolean
Disable the comments section. Defaults to true: new polls have comments disabled unless this is set to false.
Example:
false
allowTentativeVotes
boolean
Allow participants to answer "if need be" as well as yes and no. Defaults to true.
Example:
true
organizer
object
Organizer of the poll. Defaults to the space owner if not provided. The organizer must be a member of the space.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Rallly","colors":{"primary":"#4f46e5","light":"#847eed","dark":"#4f46e5"},"logo":{"light":"https://mintcdn.com/rallly/u-wzWrUsy5xDwUk7/logo/light.svg?fit=max\u0026auto=format\u0026n=u-wzWrUsy5xDwUk7\u0026q=85\u0026s=9d8170d558fae26f51d317bc7f8a04a7","dark":"https://mintcdn.com/rallly/u-wzWrUsy5xDwUk7/logo/dark.svg?fit=max\u0026auto=format\u0026n=u-wzWrUsy5xDwUk7\u0026q=85\u0026s=1a5f161a7b632f2983dfde47fc0487a3","href":"https://rallly.co"},"favicon":"https://mintcdn.com/rallly/dP6sNfH-SQIRaRNK/favicon.png?fit=max\u0026auto=format\u0026n=dP6sNfH-SQIRaRNK\u0026q=85\u0026s=10686e2de0ba649ff00567adc90e112a","background":{"color":{"light":"#FFFFFF","dark":"#18181B"}},"navbar":{"links":[{"href":"https://support.rallly.co/contact/support","label":"Contact"}],"primary":{"type":"button","label":"Go to app","href":"https://app.rallly.co"}},"footer":{"socials":{"twitter":"https://twitter.com/ralllyco","linkedin":"https://www.linkedin.com/company/rallly","github":"https://github.com/lukevella/rallly","discord":"https://discord.com/invite/uzg4ZcHbuM","website":"https://rallly.co/"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rallly","hasAudioNarration":false,"actualSubdomain":"rallly","customDomains":["support.rallly.co"],"gitSource":{"type":"github","owner":"lukevella","repo":"rallly","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":false,"mountPath":"","label":""},"feedback":{"edits":true,"issues":true,"thumbs":true},"entitlements":{},"buildId":"6af43d58ec28eb92a90a398a","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"default","tag":"Documentation","count":18},{"language":"default","tag":"API Reference","count":17},{"language":"default","tag":"Self-Hosting","count":12},{"language":"default","tag":"Get Started","count":7},{"language":"default","tag":"Polls","count":7},{"language":"default","tag":"Getting started","count":6},{"language":"default","tag":"Spaces","count":6},{"language":"default","tag":"Guides","count":5},{"language":"default","tag":"Contribute","count":5},{"language":"default","tag":"Webhooks","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--gray-50: 250 250 250;--gray-100: 244 244 245;--gray-200: 228 228 231;--gray-300: 212 212 216;--gray-400: 161 161 170;--gray-500: 113 113 122;--gray-600: 82 82 91;--gray-700: 63 63 70;--gray-800: 39 39 42;--gray-900: 24 24 27;--gray-950: 9 9 11}#content-area{color:rgb(39 39 42)}.dark #content-area{color:rgb(255 255 255)}.dark #content-area h1,.dark #content-area h2,.dark #content-area h3,.dark #content-area h4{color:rgb(255 255 255)}.dark{--primary-light: 132 126 237;--primary-dark: 132 126 237}.dark .bg-primary-dark{background-color:rgb(132 126 237)}.dark #content-area .prose pre.shiki,.dark #content-area .prose pre.shiki span{background-color:var(--shiki-dark-bg)!important;color:var(--shiki-dark)!important}#content-area table td code,#content-area table th code{white-space:nowrap}"}],"page":{"pagePath":"api-reference/polls/create-a-poll","slug":"/api-reference/polls/create-a-poll","pageMetadata":{"title":"Create a poll","description":"Creates a poll and responds with `201 Created` and the full poll, exactly as `GET /polls/:pollId` returns it. Share `inviteUrl` with participants. The request mirrors the response: `kind` chooses what participants vote on, and `options` takes the same shape the poll returns, so a poll can be recreated from the body of a `GET`. A poll has at most 100 options.\n\n## Date poll\n\nPass `kind: \"date\"` and `options`, one `{ \"date\": \"YYYY-MM-DD\" }` per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed.\n\n```json\n{\n \"title\": \"Team offsite\",\n \"kind\": \"date\",\n \"options\": [{ \"date\": \"2027-03-01\" }, { \"date\": \"2027-03-02\" }, { \"date\": \"2027-03-03\" }]\n}\n```\n\n## Time poll\n\nPass `kind: \"time\"`, optionally a `timeZone` (an IANA zone the times are written in) and a default `duration` in minutes, and the slots as `options`, `generators` or both.\n\n### Explicit slots\n\nEach entry in `options` is one slot: a `startTime` and an optional `duration` that overrides the poll default. A `startTime` with no offset, like `2027-03-01T09:00:00`, is wall clock time in `timeZone` when that is set and a floating time with no conversion otherwise; one with an offset or `Z` is an absolute instant.\n\n```json\n{\n \"title\": \"Kickoff\",\n \"kind\": \"time\",\n \"timeZone\": \"Europe/London\",\n \"duration\": 60,\n \"options\": [\n { \"startTime\": \"2027-03-01T09:00:00\" },\n { \"startTime\": \"2027-03-02T14:00:00\", \"duration\": 90 }\n ]\n}\n```\n\n### Slot generators\n\nEach object in `generators` expands into recurring slots of `duration` minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. `duration` is required when `generators` is set.\n\n```json\n{\n \"title\": \"Interview availability\",\n \"kind\": \"time\",\n \"timeZone\": \"America/New_York\",\n \"duration\": 30,\n \"generators\": [\n {\n \"startDate\": \"2027-03-01\",\n \"endDate\": \"2027-03-05\",\n \"days\": [\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"],\n \"from\": \"09:00\",\n \"to\": \"12:00\",\n \"interval\": 60\n }\n ]\n}\n```\n\nThis produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop `interval` and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30.\n\n| Field | Meaning |\n| --- | --- |\n| `startDate`, `endDate` | The date range, inclusive. Fewer than 366 days. |\n| `days` | Days of the week to include: `mon` to `sun`. Optional; defaults to every day. |\n| `from` | Earliest slot start on each day, `HH:mm` in `timeZone`. |\n| `to` | End of the daily window, `HH:mm` in `timeZone`. A slot is only generated if it ends by this time. Must be later than `from`. |\n| `interval` | Minutes between slot starts. Optional; defaults to `duration`, which gives back to back slots. |\n\nA generator that cannot produce a slot is rejected with `VALIDATION_ERROR` naming the field: `to` not later than `from`, a window shorter than `duration`, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to `options`, and duplicate slots are removed. A request that would exceed 100 options fails with `TOO_MANY_OPTIONS`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/polls","href":"/api-reference/polls/create-a-poll","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h2: \"h2\",\n h3: \"h3\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Creates a poll and responds with \", _jsx(_components.code, {\n children: \"201 Created\"\n }), \" and the full poll, exactly as \", _jsx(_components.code, {\n children: \"GET /polls/:pollId\"\n }), \" returns it. Share \", _jsx(_components.code, {\n children: \"inviteUrl\"\n }), \" with participants. The request mirrors the response: \", _jsx(_components.code, {\n children: \"kind\"\n }), \" chooses what participants vote on, and \", _jsx(_components.code, {\n children: \"options\"\n }), \" takes the same shape the poll returns, so a poll can be recreated from the body of a \", _jsx(_components.code, {\n children: \"GET\"\n }), \". A poll has at most 100 options.\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Date poll\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Pass \", _jsx(_components.code, {\n children: \"kind: \\\"date\\\"\"\n }), \" and \", _jsx(_components.code, {\n children: \"options\"\n }), \", one \", _jsx(_components.code, {\n children: \"{ \\\"date\\\": \\\"YYYY-MM-DD\\\" }\"\n }), \" per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"5\",\n language: \"json\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"json\",\n children: _jsxs(_components.code, {\n language: \"json\",\n numberOfLines: \"5\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"title\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"Team offsite\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"kind\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"date\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"options\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": [{ \"\n }), _jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \"\\\"date\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2027-03-01\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }, { \"\n }), _jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \"\\\"date\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2027-03-02\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }, { \"\n }), _jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \"\\\"date\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2027-03-03\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }]\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"}\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Time poll\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Pass \", _jsx(_components.code, {\n children: \"kind: \\\"time\\\"\"\n }), \", optionally a \", _jsx(_components.code, {\n children: \"timeZone\"\n }), \" (an IANA zone the times are written in) and a default \", _jsx(_components.code, {\n children: \"duration\"\n }), \" in minutes, and the slots as \", _jsx(_components.code, {\n children: \"options\"\n }), \", \", _jsx(_components.code, {\n children: \"generators\"\n }), \" or both.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Explicit slots\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Each entry in \", _jsx(_components.code, {\n children: \"options\"\n }), \" is one slot: a \", _jsx(_components.code, {\n children: \"startTime\"\n }), \" and an optional \", _jsx(_components.code, {\n children: \"duration\"\n }), \" that overrides the poll default. A \", _jsx(_components.code, {\n children: \"startTime\"\n }), \" with no offset, like \", _jsx(_components.code, {\n children: \"2027-03-01T09:00:00\"\n }), \", is wall clock time in \", _jsx(_components.code, {\n children: \"timeZone\"\n }), \" when that is set and a floating time with no conversion otherwise; one with an offset or \", _jsx(_components.code, {\n children: \"Z\"\n }), \" is an absolute instant.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"10\",\n language: \"json\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"json\",\n children: _jsxs(_components.code, {\n language: \"json\",\n numberOfLines: \"10\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"title\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"Kickoff\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"kind\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"time\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"timeZone\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"Europe/London\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"duration\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"60\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"options\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": [\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \"\\\"startTime\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2027-03-01T09:00:00\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" },\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" { \"\n }), _jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \"\\\"startTime\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2027-03-02T14:00:00\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \"\\\"duration\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"90\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" ]\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"}\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Slot generators\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Each object in \", _jsx(_components.code, {\n children: \"generators\"\n }), \" expands into recurring slots of \", _jsx(_components.code, {\n children: \"duration\"\n }), \" minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. \", _jsx(_components.code, {\n children: \"duration\"\n }), \" is required when \", _jsx(_components.code, {\n children: \"generators\"\n }), \" is set.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"16\",\n language: \"json\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"json\",\n children: _jsxs(_components.code, {\n language: \"json\",\n numberOfLines: \"16\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"title\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"Interview availability\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"kind\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"time\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"timeZone\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"America/New_York\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"duration\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"30\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"generators\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": [\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" {\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"startDate\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2027-03-01\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"endDate\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"2027-03-05\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"days\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": [\"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"mon\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"tue\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"wed\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"thu\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \", \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"fri\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"],\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"from\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"09:00\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"to\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"12:00\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"interval\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0550AE\",\n \"--shiki-dark\": \"#B5CEA8\"\n },\n children: \"60\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" ]\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"}\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop \", _jsx(_components.code, {\n children: \"interval\"\n }), \" and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30.\"]\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"Field\"\n }), _jsx(_components.th, {\n children: \"Meaning\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsxs(_components.td, {\n children: [_jsx(_components.code, {\n children: \"startDate\"\n }), \", \", _jsx(_components.code, {\n children: \"endDate\"\n })]\n }), _jsx(_components.td, {\n children: \"The date range, inclusive. Fewer than 366 days.\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"days\"\n })\n }), _jsxs(_components.td, {\n children: [\"Days of the week to include: \", _jsx(_components.code, {\n children: \"mon\"\n }), \" to \", _jsx(_components.code, {\n children: \"sun\"\n }), \". Optional; defaults to every day.\"]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"from\"\n })\n }), _jsxs(_components.td, {\n children: [\"Earliest slot start on each day, \", _jsx(_components.code, {\n children: \"HH:mm\"\n }), \" in \", _jsx(_components.code, {\n children: \"timeZone\"\n }), \".\"]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"to\"\n })\n }), _jsxs(_components.td, {\n children: [\"End of the daily window, \", _jsx(_components.code, {\n children: \"HH:mm\"\n }), \" in \", _jsx(_components.code, {\n children: \"timeZone\"\n }), \". A slot is only generated if it ends by this time. Must be later than \", _jsx(_components.code, {\n children: \"from\"\n }), \".\"]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"interval\"\n })\n }), _jsxs(_components.td, {\n children: [\"Minutes between slot starts. Optional; defaults to \", _jsx(_components.code, {\n children: \"duration\"\n }), \", which gives back to back slots.\"]\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A generator that cannot produce a slot is rejected with \", _jsx(_components.code, {\n children: \"VALIDATION_ERROR\"\n }), \" naming the field: \", _jsx(_components.code, {\n children: \"to\"\n }), \" not later than \", _jsx(_components.code, {\n children: \"from\"\n }), \", a window shorter than \", _jsx(_components.code, {\n children: \"duration\"\n }), \", or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to \", _jsx(_components.code, {\n children: \"options\"\n }), \", and duplicate slots are removed. A request that would exceed 100 options fails with \", _jsx(_components.code, {\n children: \"TOO_MANY_OPTIONS\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a poll","description":"Creates a poll and responds with `201 Created` and the full poll, exactly as `GET /polls/:pollId` returns it. Share `inviteUrl` with participants. The request mirrors the response: `kind` chooses what participants vote on, and `options` takes the same shape the poll returns, so a poll can be recreated from the body of a `GET`. A poll has at most 100 options.\n\n## Date poll\n\nPass `kind: \"date\"` and `options`, one `{ \"date\": \"YYYY-MM-DD\" }` per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed.\n\n```json\n{\n \"title\": \"Team offsite\",\n \"kind\": \"date\",\n \"options\": [{ \"date\": \"2027-03-01\" }, { \"date\": \"2027-03-02\" }, { \"date\": \"2027-03-03\" }]\n}\n```\n\n## Time poll\n\nPass `kind: \"time\"`, optionally a `timeZone` (an IANA zone the times are written in) and a default `duration` in minutes, and the slots as `options`, `generators` or both.\n\n### Explicit slots\n\nEach entry in `options` is one slot: a `startTime` and an optional `duration` that overrides the poll default. A `startTime` with no offset, like `2027-03-01T09:00:00`, is wall clock time in `timeZone` when that is set and a floating time with no conversion otherwise; one with an offset or `Z` is an absolute instant.\n\n```json\n{\n \"title\": \"Kickoff\",\n \"kind\": \"time\",\n \"timeZone\": \"Europe/London\",\n \"duration\": 60,\n \"options\": [\n { \"startTime\": \"2027-03-01T09:00:00\" },\n { \"startTime\": \"2027-03-02T14:00:00\", \"duration\": 90 }\n ]\n}\n```\n\n### Slot generators\n\nEach object in `generators` expands into recurring slots of `duration` minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. `duration` is required when `generators` is set.\n\n```json\n{\n \"title\": \"Interview availability\",\n \"kind\": \"time\",\n \"timeZone\": \"America/New_York\",\n \"duration\": 30,\n \"generators\": [\n {\n \"startDate\": \"2027-03-01\",\n \"endDate\": \"2027-03-05\",\n \"days\": [\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"],\n \"from\": \"09:00\",\n \"to\": \"12:00\",\n \"interval\": 60\n }\n ]\n}\n```\n\nThis produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop `interval` and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30.\n\n| Field | Meaning |\n| --- | --- |\n| `startDate`, `endDate` | The date range, inclusive. Fewer than 366 days. |\n| `days` | Days of the week to include: `mon` to `sun`. Optional; defaults to every day. |\n| `from` | Earliest slot start on each day, `HH:mm` in `timeZone`. |\n| `to` | End of the daily window, `HH:mm` in `timeZone`. A slot is only generated if it ends by this time. Must be later than `from`. |\n| `interval` | Minutes between slot starts. Optional; defaults to `duration`, which gives back to back slots. |\n\nA generator that cannot produce a slot is rejected with `VALIDATION_ERROR` naming the field: `to` not later than `from`, a window shorter than `duration`, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to `options`, and duplicate slots are removed. A request that would exceed 100 options fails with `TOO_MANY_OPTIONS`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/polls","href":"/api-reference/polls/create-a-poll","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"postV1Polls","tags":["Polls"],"summary":"Create a poll","description":"Creates a poll and responds with `201 Created` and the full poll, exactly as `GET /polls/:pollId` returns it. Share `inviteUrl` with participants. The request mirrors the response: `kind` chooses what participants vote on, and `options` takes the same shape the poll returns, so a poll can be recreated from the body of a `GET`. A poll has at most 100 options.\n\n## Date poll\n\nPass `kind: \"date\"` and `options`, one `{ \"date\": \"YYYY-MM-DD\" }` per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed.\n\n```json\n{\n \"title\": \"Team offsite\",\n \"kind\": \"date\",\n \"options\": [{ \"date\": \"2027-03-01\" }, { \"date\": \"2027-03-02\" }, { \"date\": \"2027-03-03\" }]\n}\n```\n\n## Time poll\n\nPass `kind: \"time\"`, optionally a `timeZone` (an IANA zone the times are written in) and a default `duration` in minutes, and the slots as `options`, `generators` or both.\n\n### Explicit slots\n\nEach entry in `options` is one slot: a `startTime` and an optional `duration` that overrides the poll default. A `startTime` with no offset, like `2027-03-01T09:00:00`, is wall clock time in `timeZone` when that is set and a floating time with no conversion otherwise; one with an offset or `Z` is an absolute instant.\n\n```json\n{\n \"title\": \"Kickoff\",\n \"kind\": \"time\",\n \"timeZone\": \"Europe/London\",\n \"duration\": 60,\n \"options\": [\n { \"startTime\": \"2027-03-01T09:00:00\" },\n { \"startTime\": \"2027-03-02T14:00:00\", \"duration\": 90 }\n ]\n}\n```\n\n### Slot generators\n\nEach object in `generators` expands into recurring slots of `duration` minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. `duration` is required when `generators` is set.\n\n```json\n{\n \"title\": \"Interview availability\",\n \"kind\": \"time\",\n \"timeZone\": \"America/New_York\",\n \"duration\": 30,\n \"generators\": [\n {\n \"startDate\": \"2027-03-01\",\n \"endDate\": \"2027-03-05\",\n \"days\": [\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"],\n \"from\": \"09:00\",\n \"to\": \"12:00\",\n \"interval\": 60\n }\n ]\n}\n```\n\nThis produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop `interval` and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30.\n\n| Field | Meaning |\n| --- | --- |\n| `startDate`, `endDate` | The date range, inclusive. Fewer than 366 days. |\n| `days` | Days of the week to include: `mon` to `sun`. Optional; defaults to every day. |\n| `from` | Earliest slot start on each day, `HH:mm` in `timeZone`. |\n| `to` | End of the daily window, `HH:mm` in `timeZone`. A slot is only generated if it ends by this time. Must be later than `from`. |\n| `interval` | Minutes between slot starts. Optional; defaults to `duration`, which gives back to back slots. |\n\nA generator that cannot produce a slot is rejected with `VALIDATION_ERROR` naming the field: `to` not later than `from`, a window shorter than `duration`, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to `options`, and duplicate slots are removed. A request that would exceed 100 options fails with `TOO_MANY_OPTIONS`.","security":["b192e996-2914-42c7-9f73-d7008ceff0d2"],"responses":{"201":"19614a30-5456-4dab-a99c-7e61e2fdd538","400":"3db3ebbb-b871-468c-9096-ca0b3edac017","401":"a9bb151f-3559-42e7-a618-024491dd45c6","403":"09426c2d-c180-44b3-b062-8bc2159bb369","429":"2554830d-84fa-48ed-81de-74b085baa4bb","503":"d9366f1b-2b2a-4857-88df-c99b6d37c441"},"requestBody":"31bcf717-c4b4-4cd3-b43e-4f00854d3cba","method":"post","type":"path","servers":["8e26f361-777b-4ae8-8351-c7fd7bdb86b4"],"path":"/v1/polls","baseUrlOptions":["https://api.rallly.co"],"title":"Create a poll","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Date poll","description":"`kind` chooses what participants vote on: whole days (`date`) or time slots (`time`). The request mirrors the poll the API returns: the same settings, and `options` in the same shape as the response.","required":["title","kind","options"],"properties":{"title":{"type":"string","minLength":1,"maxLength":255,"example":"Team sync","isRequired":true,"uniqueKey":"oneOf.0.title","typeLabel":"string"},"kind":{"type":"string","const":"date","description":"Participants vote on whole days.","isRequired":true,"uniqueKey":"oneOf.0.kind","typeLabel":"string"},"options":{"minItems":1,"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date","description":"Calendar day to offer, as a floating `YYYY-MM-DD` date.","example":"2027-03-01","isRequired":true,"uniqueKey":"oneOf.0.options.items.[INDEX].date","typeLabel":"string\u003cdate>"}},"required":["date"],"additionalProperties":false,"title":"Date option","description":"One all-day option. The same shape `DateOption` returns.","uniqueKey":"oneOf.0.options.items.[INDEX]","typeLabel":"Date option · object"},"description":"Calendar days to offer. Dates are floating calendar days with no timezone, so never convert them through one. Duplicates are removed.","isRequired":true,"uniqueKey":"oneOf.0.options","typeLabel":"Date option · object[]"},"description":{"example":"Pick a time that works for everyone","type":"string","maxLength":1000,"uniqueKey":"oneOf.0.description","typeLabel":"string"},"location":{"description":"Where the event takes place, as free text.","example":"Conference Room A","type":"string","maxLength":255,"uniqueKey":"oneOf.0.location","typeLabel":"string"},"conferencing":{"oneOf":[{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"meet","isRequired":true,"uniqueKey":"oneOf.0.conferencing.oneOf.0.provider","typeLabel":"string"}},"uniqueKey":"oneOf.0.conferencing.oneOf.0","typeLabel":"object"},{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"zoom","isRequired":true,"uniqueKey":"oneOf.0.conferencing.oneOf.1.provider","typeLabel":"string"}},"uniqueKey":"oneOf.0.conferencing.oneOf.1","typeLabel":"object"},{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"teams","isRequired":true,"uniqueKey":"oneOf.0.conferencing.oneOf.2.provider","typeLabel":"string"}},"uniqueKey":"oneOf.0.conferencing.oneOf.2","typeLabel":"object"},{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"webex","isRequired":true,"uniqueKey":"oneOf.0.conferencing.oneOf.3.provider","typeLabel":"string"}},"uniqueKey":"oneOf.0.conferencing.oneOf.3","typeLabel":"object"},{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider","label"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"custom","isRequired":true,"uniqueKey":"oneOf.0.conferencing.oneOf.4.provider","typeLabel":"string"},"label":{"type":"string","minLength":1,"maxLength":100,"isRequired":true,"uniqueKey":"oneOf.0.conferencing.oneOf.4.label","typeLabel":"string"},"uri":{"type":"string","format":"uri","uniqueKey":"oneOf.0.conferencing.oneOf.4.uri","typeLabel":"string\u003curi>"}},"uniqueKey":"oneOf.0.conferencing.oneOf.4","typeLabel":"object"}],"uniqueKey":"oneOf.0.conferencing","typeLabel":"object"},"requireEmail":{"description":"Require participants to provide their email address","example":true,"type":"boolean","uniqueKey":"oneOf.0.requireEmail","typeLabel":"boolean"},"hideParticipants":{"description":"Hide participant names from other participants","example":false,"type":"boolean","uniqueKey":"oneOf.0.hideParticipants","typeLabel":"boolean"},"hideScores":{"description":"Hide vote counts from participants","example":false,"type":"boolean","uniqueKey":"oneOf.0.hideScores","typeLabel":"boolean"},"disableComments":{"description":"Disable the comments section. Defaults to true: new polls have comments disabled unless this is set to false.","example":false,"type":"boolean","uniqueKey":"oneOf.0.disableComments","typeLabel":"boolean"},"allowTentativeVotes":{"description":"Allow participants to answer \"if need be\" as well as yes and no. Defaults to true.","example":true,"type":"boolean","uniqueKey":"oneOf.0.allowTentativeVotes","typeLabel":"boolean"},"organizer":{"description":"Organizer of the poll. Defaults to the space owner if not provided. The organizer must be a member of the space.","type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address of the organizer","example":"organizer@example.com","isRequired":true,"uniqueKey":"oneOf.0.organizer.email","typeLabel":"string\u003cemail>"}},"required":["email"],"additionalProperties":false,"uniqueKey":"oneOf.0.organizer","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"Date poll · object"},{"type":"object","title":"Time poll","description":"`kind` chooses what participants vote on: whole days (`date`) or time slots (`time`). The request mirrors the poll the API returns: the same settings, and `options` in the same shape as the response.","required":["title","kind"],"properties":{"title":{"type":"string","minLength":1,"maxLength":255,"example":"Team sync","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"kind":{"type":"string","const":"time","description":"Participants vote on time slots.","isRequired":true,"uniqueKey":"oneOf.1.kind","typeLabel":"string"},"description":{"example":"Pick a time that works for everyone","type":"string","maxLength":1000,"uniqueKey":"oneOf.1.description","typeLabel":"string"},"location":{"description":"Where the event takes place, as free text.","example":"Conference Room A","type":"string","maxLength":255,"uniqueKey":"oneOf.1.location","typeLabel":"string"},"conferencing":{"oneOf":[{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"meet","isRequired":true,"uniqueKey":"oneOf.1.conferencing.oneOf.0.provider","typeLabel":"string"}},"uniqueKey":"oneOf.1.conferencing.oneOf.0","typeLabel":"object"},{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"zoom","isRequired":true,"uniqueKey":"oneOf.1.conferencing.oneOf.1.provider","typeLabel":"string"}},"uniqueKey":"oneOf.1.conferencing.oneOf.1","typeLabel":"object"},{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"teams","isRequired":true,"uniqueKey":"oneOf.1.conferencing.oneOf.2.provider","typeLabel":"string"}},"uniqueKey":"oneOf.1.conferencing.oneOf.2","typeLabel":"object"},{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"webex","isRequired":true,"uniqueKey":"oneOf.1.conferencing.oneOf.3.provider","typeLabel":"string"}},"uniqueKey":"oneOf.1.conferencing.oneOf.3","typeLabel":"object"},{"type":"object","description":"The video call for the event. `meet`, `zoom`, `teams` and `webex` need the organizer to have connected that account in their Conferencing settings; the meeting link is created when the poll is finalized. `custom` names any call, with an optional link participants join with.","required":["provider","label"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"custom","isRequired":true,"uniqueKey":"oneOf.1.conferencing.oneOf.4.provider","typeLabel":"string"},"label":{"type":"string","minLength":1,"maxLength":100,"isRequired":true,"uniqueKey":"oneOf.1.conferencing.oneOf.4.label","typeLabel":"string"},"uri":{"type":"string","format":"uri","uniqueKey":"oneOf.1.conferencing.oneOf.4.uri","typeLabel":"string\u003curi>"}},"uniqueKey":"oneOf.1.conferencing.oneOf.4","typeLabel":"object"}],"uniqueKey":"oneOf.1.conferencing","typeLabel":"object"},"requireEmail":{"description":"Require participants to provide their email address","example":true,"type":"boolean","uniqueKey":"oneOf.1.requireEmail","typeLabel":"boolean"},"hideParticipants":{"description":"Hide participant names from other participants","example":false,"type":"boolean","uniqueKey":"oneOf.1.hideParticipants","typeLabel":"boolean"},"hideScores":{"description":"Hide vote counts from participants","example":false,"type":"boolean","uniqueKey":"oneOf.1.hideScores","typeLabel":"boolean"},"disableComments":{"description":"Disable the comments section. Defaults to true: new polls have comments disabled unless this is set to false.","example":false,"type":"boolean","uniqueKey":"oneOf.1.disableComments","typeLabel":"boolean"},"allowTentativeVotes":{"description":"Allow participants to answer \"if need be\" as well as yes and no. Defaults to true.","example":true,"type":"boolean","uniqueKey":"oneOf.1.allowTentativeVotes","typeLabel":"boolean"},"organizer":{"description":"Organizer of the poll. Defaults to the space owner if not provided. The organizer must be a member of the space.","type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address of the organizer","example":"organizer@example.com","isRequired":true,"uniqueKey":"oneOf.1.organizer.email","typeLabel":"string\u003cemail>"}},"required":["email"],"additionalProperties":false,"uniqueKey":"oneOf.1.organizer","typeLabel":"object"},"timeZone":{"description":"IANA time zone the times are written in. Datetime strings without an offset are interpreted in this zone. If omitted, offset-less datetimes are floating times (no conversion) and the poll has no time zone.","example":"Europe/London","type":"string","uniqueKey":"oneOf.1.timeZone","typeLabel":"string"},"duration":{"description":"Default slot length in minutes. Required when `generators` is set or an option omits its own `duration`.","example":30,"type":"integer","minimum":15,"maximum":1440,"uniqueKey":"oneOf.1.duration","typeLabel":"integer"},"options":{"description":"Explicit slots. Provide `options`, `generators` or both. Duplicates are removed.","minItems":1,"type":"array","items":{"type":"object","properties":{"startTime":{"type":"string","format":"date-time","description":"ISO datetime start time. A string without an offset is wall clock time in `timeZone` when that is set (`2027-03-01T09:00:00` with `timeZone: Europe/London` means 09:00 in London) and a floating time with no conversion otherwise. A string with an offset or `Z` is an absolute instant.","example":"2027-03-01T09:00:00","isRequired":true,"uniqueKey":"oneOf.1.options.items.[INDEX].startTime","typeLabel":"string\u003cdate-time>"},"duration":{"description":"Length of this slot in minutes. Defaults to the poll's `duration`.","example":30,"type":"integer","minimum":15,"maximum":1440,"uniqueKey":"oneOf.1.options.items.[INDEX].duration","typeLabel":"integer"}},"required":["startTime"],"additionalProperties":false,"title":"Time option","description":"One time slot. The same shape `TimeOption` returns.","uniqueKey":"oneOf.1.options.items.[INDEX]","typeLabel":"Time option · object"},"uniqueKey":"oneOf.1.options","typeLabel":"Time option · object[]"},"generators":{"description":"Slot generators. Each expands into recurring slots from a schedule and the result is appended to `options`.","minItems":1,"type":"array","items":{"type":"object","properties":{"startDate":{"type":"string","format":"date","description":"First day of the range to generate slots on, inclusive.","example":"2027-03-01","isRequired":true,"uniqueKey":"oneOf.1.generators.items.[INDEX].startDate","typeLabel":"string\u003cdate>"},"endDate":{"type":"string","format":"date","description":"Last day of the range, inclusive. The range must span fewer than 366 days.","example":"2027-03-05","isRequired":true,"uniqueKey":"oneOf.1.generators.items.[INDEX].endDate","typeLabel":"string\u003cdate>"},"from":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$","description":"Earliest slot start on each day, as a wall clock time in `timeZone`.","example":"09:00","isRequired":true,"uniqueKey":"oneOf.1.generators.items.[INDEX].from","typeLabel":"string"},"to":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$","description":"End of the daily window, as a wall clock time in `timeZone`. A slot is only generated if it ends at or before this time.","example":"17:00","isRequired":true,"uniqueKey":"oneOf.1.generators.items.[INDEX].to","typeLabel":"string"},"days":{"default":["mon","tue","wed","thu","fri","sat","sun"],"description":"Days of the week to generate slots on. Days in the range that are not listed are skipped. Defaults to every day.","example":["mon","tue","wed","thu","fri"],"minItems":1,"type":"array","items":{"type":"string","enum":["mon","tue","wed","thu","fri","sat","sun"],"uniqueKey":"oneOf.1.generators.items.[INDEX].days.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"oneOf.1.generators.items.[INDEX].days","typeLabel":"enum\u003cstring>[]"},"interval":{"description":"Minutes between consecutive slot starts. Defaults to `duration`, which produces back to back slots.","example":60,"type":"integer","minimum":15,"maximum":1440,"uniqueKey":"oneOf.1.generators.items.[INDEX].interval","typeLabel":"integer"}},"required":["startDate","endDate","from","to"],"additionalProperties":false,"title":"Slot generator","description":"Expands into one slot of `duration` minutes every `interval` minutes between `from` and `to`, on each listed day of the week between `startDate` and `endDate`. Slots that would not end by `to` are not generated.","uniqueKey":"oneOf.1.generators.items.[INDEX]","typeLabel":"Slot generator · object"},"uniqueKey":"oneOf.1.generators","typeLabel":"Slot generator · object[]"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"Time poll · object"}],"uniqueKey":"","typeLabel":"Date poll · object | Time poll · object"},"examples":{"Date poll":{"title":"Date poll","description":"Let participants pick between calendar days. Each option is one all-day date.","value":{"title":"Team offsite","kind":"date","description":"Which days work for a two day offsite?","options":[{"date":"2027-03-01"},{"date":"2027-03-02"},{"date":"2027-03-03"}]}},"Time poll with explicit slots":{"title":"Time poll with explicit slots","description":"Offer specific time slots. Datetimes without an offset are wall clock times in `timeZone`; this example offers 09:00 and 14:00 in London. Append `Z` or an offset for an absolute instant instead. A slot may override the poll's `duration`.","value":{"title":"Project kickoff","kind":"time","location":"Zoom","timeZone":"Europe/London","duration":60,"options":[{"startTime":"2027-03-01T09:00:00"},{"startTime":"2027-03-01T14:00:00","duration":90}]}},"Time poll with a slot generator":{"title":"Time poll with a slot generator","description":"Expand recurring slots across a date range. This example generates 30 minute slots at 09:00, 10:00 and 11:00 (New York time) every weekday from 1 to 5 March.","value":{"title":"Interview availability","kind":"time","timeZone":"America/New_York","duration":30,"generators":[{"startDate":"2027-03-01","endDate":"2027-03-05","days":["mon","tue","wed","thu","fri"],"from":"09:00","to":"12:00","interval":60}]}},"Time poll mixing slots and a generator":{"title":"Time poll mixing slots and a generator","description":"`options` and `generators` combine. When `interval` is omitted it defaults to `duration`, so this generator produces back to back 90 minute slots at 14:00 and 15:30 on Monday and Wednesday.","value":{"title":"Product workshop","kind":"time","timeZone":"Europe/Berlin","duration":90,"options":[{"startTime":"2027-03-06T10:00:00"}],"generators":[{"startDate":"2027-03-08","endDate":"2027-03-10","days":["mon","wed"],"from":"14:00","to":"17:00"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"19614a30-5456-4dab-a99c-7e61e2fdd538":{"description":"Poll created","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"Xk3pQ9vLm2Ab","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"title":{"type":"string","example":"Team sync","isRequired":true,"uniqueKey":"data.title","typeLabel":"string"},"description":{"oneOf":[{"type":"string","example":"Pick a time that works for everyone","isRequired":true,"uniqueKey":"data.description.oneOf.0","typeLabel":"string"},{"type":"null","example":"Pick a time that works for everyone","isRequired":true,"uniqueKey":"data.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.description","typeLabel":"string | null"},"location":{"oneOf":[{"type":"string","example":"Conference Room A","isRequired":true,"uniqueKey":"data.location.oneOf.0","typeLabel":"string"},{"type":"null","example":"Conference Room A","isRequired":true,"uniqueKey":"data.location.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.location","typeLabel":"string | null"},"conferencing":{"oneOf":[{"type":"object","description":"The video call for the event, or `null`. A `meet`, `zoom`, `teams` or `webex` entry has no link until the poll is finalized; a `custom` entry carries the organizer's label and, when given, the link.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"meet","isRequired":true,"uniqueKey":"data.conferencing.oneOf.0.provider","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.conferencing.oneOf.0","typeLabel":"object"},{"type":"object","description":"The video call for the event, or `null`. A `meet`, `zoom`, `teams` or `webex` entry has no link until the poll is finalized; a `custom` entry carries the organizer's label and, when given, the link.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"zoom","isRequired":true,"uniqueKey":"data.conferencing.oneOf.1.provider","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.conferencing.oneOf.1","typeLabel":"object"},{"type":"object","description":"The video call for the event, or `null`. A `meet`, `zoom`, `teams` or `webex` entry has no link until the poll is finalized; a `custom` entry carries the organizer's label and, when given, the link.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"teams","isRequired":true,"uniqueKey":"data.conferencing.oneOf.2.provider","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.conferencing.oneOf.2","typeLabel":"object"},{"type":"object","description":"The video call for the event, or `null`. A `meet`, `zoom`, `teams` or `webex` entry has no link until the poll is finalized; a `custom` entry carries the organizer's label and, when given, the link.","required":["provider"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"webex","isRequired":true,"uniqueKey":"data.conferencing.oneOf.3.provider","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.conferencing.oneOf.3","typeLabel":"object"},{"type":"object","description":"The video call for the event, or `null`. A `meet`, `zoom`, `teams` or `webex` entry has no link until the poll is finalized; a `custom` entry carries the organizer's label and, when given, the link.","required":["provider","label"],"example":{"provider":"zoom"},"properties":{"provider":{"type":"string","const":"custom","isRequired":true,"uniqueKey":"data.conferencing.oneOf.4.provider","typeLabel":"string"},"label":{"type":"string","minLength":1,"maxLength":100,"isRequired":true,"uniqueKey":"data.conferencing.oneOf.4.label","typeLabel":"string"},"uri":{"type":"string","format":"uri","uniqueKey":"data.conferencing.oneOf.4.uri","typeLabel":"string\u003curi>"}},"isRequired":true,"uniqueKey":"data.conferencing.oneOf.4","typeLabel":"object"},{"type":"null","description":"The video call for the event, or `null`. A `meet`, `zoom`, `teams` or `webex` entry has no link until the poll is finalized; a `custom` entry carries the organizer's label and, when given, the link.","example":{"provider":"zoom"},"isRequired":true,"uniqueKey":"data.conferencing.oneOf.5","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.conferencing","typeLabel":"object · object · object · object · object · null"},"timeZone":{"oneOf":[{"type":"string","example":"Europe/London","isRequired":true,"uniqueKey":"data.timeZone.oneOf.0","typeLabel":"string"},{"type":"null","example":"Europe/London","isRequired":true,"uniqueKey":"data.timeZone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.timeZone","typeLabel":"string | null"},"status":{"type":"string","enum":["open","closed","scheduled","canceled"],"isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"kind":{"type":"string","enum":["date","time"],"description":"Whether the poll offers calendar dates (`date`) or time slots (`time`). Determines which option shape the poll uses: every option in a `date` poll has a `date`, every option in a `time` poll has a `startTime` and `duration`.","example":"time","isRequired":true,"uniqueKey":"data.kind","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","example":"2025-01-10T12:00:00.000Z","isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"When the poll was last modified. Changes when the poll's details, settings or status change.","example":"2025-01-12T08:30:00.000Z","isRequired":true,"uniqueKey":"data.updatedAt","typeLabel":"string\u003cdate-time>"},"organizer":{"oneOf":[{"type":"object","description":"The space member the poll belongs to. `null` when the organizer's account no longer exists.","required":["id","name","email","image"],"properties":{"id":{"type":"string","example":"cm3f7d1qa0000t2k9c6b8h4jr","isRequired":true,"uniqueKey":"data.organizer.oneOf.0.id","typeLabel":"string"},"name":{"type":"string","example":"John Doe","isRequired":true,"uniqueKey":"data.organizer.oneOf.0.name","typeLabel":"string"},"email":{"type":"string","format":"email","example":"organizer@example.com","isRequired":true,"uniqueKey":"data.organizer.oneOf.0.email","typeLabel":"string\u003cemail>"},"image":{"oneOf":[{"type":"string","example":"https://cdn.rallly.co/avatars/cm3f7d1qa0000t2k9c6b8h4jr.jpg","isRequired":true,"uniqueKey":"data.organizer.oneOf.0.image.oneOf.0","typeLabel":"string"},{"type":"null","example":"https://cdn.rallly.co/avatars/cm3f7d1qa0000t2k9c6b8h4jr.jpg","isRequired":true,"uniqueKey":"data.organizer.oneOf.0.image.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.organizer.oneOf.0.image","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.organizer.oneOf.0","typeLabel":"object"},{"type":"null","description":"The space member the poll belongs to. `null` when the organizer's account no longer exists.","isRequired":true,"uniqueKey":"data.organizer.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.organizer","typeLabel":"object | null"},"requireEmail":{"type":"boolean","description":"Whether participants must provide their email address","example":false,"isRequired":true,"uniqueKey":"data.requireEmail","typeLabel":"boolean"},"hideParticipants":{"type":"boolean","description":"Whether participant names are hidden from other participants","example":false,"isRequired":true,"uniqueKey":"data.hideParticipants","typeLabel":"boolean"},"hideScores":{"type":"boolean","description":"Whether vote counts are hidden from participants","example":false,"isRequired":true,"uniqueKey":"data.hideScores","typeLabel":"boolean"},"disableComments":{"type":"boolean","description":"Whether the comments section is disabled","example":true,"isRequired":true,"uniqueKey":"data.disableComments","typeLabel":"boolean"},"allowTentativeVotes":{"type":"boolean","description":"Whether participants may cast the tentative \"if need be\" vote","example":true,"isRequired":true,"uniqueKey":"data.allowTentativeVotes","typeLabel":"boolean"},"participantCount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Number of participants who have responded to the poll","example":3,"isRequired":true,"uniqueKey":"data.participantCount","typeLabel":"integer"},"options":{"type":"array","items":{"oneOf":[{"type":"object","description":"A poll option. The shape follows the poll's `kind`: a `DateOption` for `date` polls, a `TimeOption` for `time` polls.","required":["id","date"],"properties":{"id":{"type":"string","example":"cm5h8x2k40000q9l4f7e2d3an","isRequired":true,"uniqueKey":"data.options.items.[INDEX].oneOf.0.id","typeLabel":"string"},"date":{"type":"string","format":"date","description":"Calendar date in YYYY-MM-DD format. All-day options are floating dates with no time component and no timezone.","example":"2025-01-15","isRequired":true,"uniqueKey":"data.options.items.[INDEX].oneOf.0.date","typeLabel":"string\u003cdate>"}},"uniqueKey":"data.options.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"A poll option. The shape follows the poll's `kind`: a `DateOption` for `date` polls, a `TimeOption` for `time` polls.","required":["id","startTime","duration"],"properties":{"id":{"type":"string","example":"cm5h8x2k40000q9l4f7e2d3an","isRequired":true,"uniqueKey":"data.options.items.[INDEX].oneOf.1.id","typeLabel":"string"},"startTime":{"type":"string","format":"date-time","description":"Start of the slot as an ISO 8601 instant in UTC.","example":"2025-01-15T09:00:00.000Z","isRequired":true,"uniqueKey":"data.options.items.[INDEX].oneOf.1.startTime","typeLabel":"string\u003cdate-time>"},"duration":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Duration in minutes.","example":30,"isRequired":true,"uniqueKey":"data.options.items.[INDEX].oneOf.1.duration","typeLabel":"integer"}},"uniqueKey":"data.options.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"data.options.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.options","typeLabel":"object[]"},"adminUrl":{"type":"string","example":"https://app.rallly.co/poll/Xk3pQ9vLm2Ab","isRequired":true,"uniqueKey":"data.adminUrl","typeLabel":"string"},"inviteUrl":{"type":"string","example":"https://rallly.co/invite/Xk3pQ9vLm2Ab","isRequired":true,"uniqueKey":"data.inviteUrl","typeLabel":"string"}},"required":["id","title","description","location","conferencing","timeZone","status","kind","createdAt","updatedAt","organizer","requireEmail","hideParticipants","hideScores","disableComments","allowTentativeVotes","participantCount","options","adminUrl","inviteUrl"],"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"Xk3pQ9vLm2Ab","title":"Team sync","description":"Pick a time that works for everyone","location":"Conference Room A","conferencing":{"provider":"zoom"},"timeZone":"Europe/London","status":"open","kind":"time","createdAt":"2025-01-10T12:00:00.000Z","updatedAt":"2025-01-12T08:30:00.000Z","organizer":{"id":"cm3f7d1qa0000t2k9c6b8h4jr","name":"John Doe","email":"organizer@example.com","image":"https://cdn.rallly.co/avatars/cm3f7d1qa0000t2k9c6b8h4jr.jpg"},"requireEmail":false,"hideParticipants":false,"hideScores":false,"disableComments":true,"allowTentativeVotes":true,"participantCount":3,"options":[{"id":"cm5h8x2k40000q9l4f7e2d3an","date":"2025-01-15"}],"adminUrl":"https://app.rallly.co/poll/Xk3pQ9vLm2Ab","inviteUrl":"https://rallly.co/invite/Xk3pQ9vLm2Ab"}}}},"exampleType":"generated"}},"exampleType":"generated"},"3db3ebbb-b871-468c-9096-ca0b3edac017":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. The full list is in the API description.","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation. For `VALIDATION_ERROR` it names each offending field, e.g. `title: Invalid input: expected string, received undefined; dates.0: Invalid ISO date`.","example":"title: Invalid input: expected string, received undefined","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"title: Invalid input: expected string, received undefined"}}}},"exampleType":"generated"}},"exampleType":"generated"},"a9bb151f-3559-42e7-a618-024491dd45c6":{"description":"The API key is missing, invalid, expired or revoked, or its owner is banned. Includes a `WWW-Authenticate` header.","headers":{"WWW-Authenticate":{"description":"The bearer challenge, per RFC 6750.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. The full list is in the API description.","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation. For `VALIDATION_ERROR` it names each offending field, e.g. `title: Invalid input: expected string, received undefined; dates.0: Invalid ISO date`.","example":"title: Invalid input: expected string, received undefined","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"title: Invalid input: expected string, received undefined"}}}},"exampleType":"generated"}},"exampleType":"generated"},"09426c2d-c180-44b3-b062-8bc2159bb369":{"description":"The space associated with the API key does not have a Pro subscription","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. The full list is in the API description.","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation. For `VALIDATION_ERROR` it names each offending field, e.g. `title: Invalid input: expected string, received undefined; dates.0: Invalid ISO date`.","example":"title: Invalid input: expected string, received undefined","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"title: Invalid input: expected string, received undefined"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2554830d-84fa-48ed-81de-74b085baa4bb":{"description":"Rate limit exceeded. Includes a `Retry-After` header indicating how many seconds to wait before retrying.","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. The full list is in the API description.","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation. For `VALIDATION_ERROR` it names each offending field, e.g. `title: Invalid input: expected string, received undefined; dates.0: Invalid ISO date`.","example":"title: Invalid input: expected string, received undefined","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"title: Invalid input: expected string, received undefined"}}}},"exampleType":"generated"}},"exampleType":"generated"},"d9366f1b-2b2a-4857-88df-c99b6d37c441":{"description":"The API is temporarily unavailable, for maintenance or because the rate limit store cannot be reached. Includes a `Retry-After` header. Maintenance responses are sent before the rate limiter runs and carry no `RateLimit-*` headers.","headers":{"Retry-After":{"description":"Seconds to wait before retrying the request.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. The full list is in the API description.","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation. For `VALIDATION_ERROR` it names each offending field, e.g. `title: Invalid input: expected string, received undefined; dates.0: Invalid ISO date`.","example":"title: Invalid input: expected string, received undefined","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"title: Invalid input: expected string, received undefined"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"b192e996-2914-42c7-9f73-d7008ceff0d2":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"8e26f361-777b-4ae8-8351-c7fd7bdb86b4":{"url":"https://api.rallly.co"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"rallly","siteName":"Rallly","title":"Create a poll - Rallly","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-13T23:41:58.959Z","originalFileLocation":"api-reference/polls/create-a-poll.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a poll and responds with 201 Created and the full poll, exactly as GET /polls/:pollId returns it. Share inviteUrl with participants. The request mirrors the response: kind chooses what participants vote on, and options takes the same shape the poll returns, so a poll can be recreated from the body of a GET. A poll has at most 100 options. ## Date poll Pass kind: \u0026quot;date\u0026quot; and options, one { \u0026quot;date\u0026quot;: \u0026quot;YYYY-MM-DD\u0026quot; } per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed. json { \u0026quot;title\u0026quot;: \u0026quot;Team offsite\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;date\u0026quot;, \u0026quot;options\u0026quot;: [{ \u0026quot;date\u0026quot;: \u0026quot;2027-03-01\u0026quot; }, { \u0026quot;date\u0026quot;: \u0026quot;2027-03-02\u0026quot; }, { \u0026quot;date\u0026quot;: \u0026quot;2027-03-03\u0026quot; }] } ## Time poll Pass kind: \u0026quot;time\u0026quot;, optionally a timeZone (an IANA zone the times are written in) and a default duration in minutes, and the slots as options, generators or both. ### Explicit slots Each entry in options is one slot: a startTime and an optional duration that overrides the poll default. A startTime with no offset, like 2027-03-01T09:00:00, is wall clock time in timeZone when that is set and a floating time with no conversion otherwise; one with an offset or Z is an absolute instant. json { \u0026quot;title\u0026quot;: \u0026quot;Kickoff\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;time\u0026quot;, \u0026quot;timeZone\u0026quot;: \u0026quot;Europe/London\u0026quot;, \u0026quot;duration\u0026quot;: 60, \u0026quot;options\u0026quot;: [ { \u0026quot;startTime\u0026quot;: \u0026quot;2027-03-01T09:00:00\u0026quot; }, { \u0026quot;startTime\u0026quot;: \u0026quot;2027-03-02T14:00:00\u0026quot;, \u0026quot;duration\u0026quot;: 90 } ] } ### Slot generators Each object in generators expands into recurring slots of duration minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. duration is required when generators is set. json { \u0026quot;title\u0026quot;: \u0026quot;Interview availability\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;time\u0026quot;, \u0026quot;timeZone\u0026quot;: \u0026quot;America/New_York\u0026quot;, \u0026quot;duration\u0026quot;: 30, \u0026quot;generators\u0026quot;: [ { \u0026quot;startDate\u0026quot;: \u0026quot;2027-03-01\u0026quot;, \u0026quot;endDate\u0026quot;: \u0026quot;2027-03-05\u0026quot;, \u0026quot;days\u0026quot;: [\u0026quot;mon\u0026quot;, \u0026quot;tue\u0026quot;, \u0026quot;wed\u0026quot;, \u0026quot;thu\u0026quot;, \u0026quot;fri\u0026quot;], \u0026quot;from\u0026quot;: \u0026quot;09:00\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;12:00\u0026quot;, \u0026quot;interval\u0026quot;: 60 } ] } This produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop interval and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30. | Field | Meaning | | --- | --- | | startDate, endDate | The date range, inclusive. Fewer than 366 days. | | days | Days of the week to include: mon to sun. Optional; defaults to every day. | | from | Earliest slot start on each day, HH:mm in timeZone. | | to | End of the daily window, HH:mm in timeZone. A slot is only generated if it ends by this time. Must be later than from. | | interval | Minutes between slot starts. Optional; defaults to duration, which gives back to back slots. | A generator that cannot produce a slot is rejected with VALIDATION_ERROR naming the field: to not later than from, a window shorter than duration, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to options, and duplicate slots are removed. A request that would exceed 100 options fails with TOO_MANY_OPTIONS.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Rallly\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a poll - Rallly\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a poll and responds with 201 Created and the full poll, exactly as GET /polls/:pollId returns it. Share inviteUrl with participants. The request mirrors the response: kind chooses what participants vote on, and options takes the same shape the poll returns, so a poll can be recreated from the body of a GET. A poll has at most 100 options. ## Date poll Pass kind: \u0026quot;date\u0026quot; and options, one { \u0026quot;date\u0026quot;: \u0026quot;YYYY-MM-DD\u0026quot; } per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed. json { \u0026quot;title\u0026quot;: \u0026quot;Team offsite\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;date\u0026quot;, \u0026quot;options\u0026quot;: [{ \u0026quot;date\u0026quot;: \u0026quot;2027-03-01\u0026quot; }, { \u0026quot;date\u0026quot;: \u0026quot;2027-03-02\u0026quot; }, { \u0026quot;date\u0026quot;: \u0026quot;2027-03-03\u0026quot; }] } ## Time poll Pass kind: \u0026quot;time\u0026quot;, optionally a timeZone (an IANA zone the times are written in) and a default duration in minutes, and the slots as options, generators or both. ### Explicit slots Each entry in options is one slot: a startTime and an optional duration that overrides the poll default. A startTime with no offset, like 2027-03-01T09:00:00, is wall clock time in timeZone when that is set and a floating time with no conversion otherwise; one with an offset or Z is an absolute instant. json { \u0026quot;title\u0026quot;: \u0026quot;Kickoff\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;time\u0026quot;, \u0026quot;timeZone\u0026quot;: \u0026quot;Europe/London\u0026quot;, \u0026quot;duration\u0026quot;: 60, \u0026quot;options\u0026quot;: [ { \u0026quot;startTime\u0026quot;: \u0026quot;2027-03-01T09:00:00\u0026quot; }, { \u0026quot;startTime\u0026quot;: \u0026quot;2027-03-02T14:00:00\u0026quot;, \u0026quot;duration\u0026quot;: 90 } ] } ### Slot generators Each object in generators expands into recurring slots of duration minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. duration is required when generators is set. json { \u0026quot;title\u0026quot;: \u0026quot;Interview availability\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;time\u0026quot;, \u0026quot;timeZone\u0026quot;: \u0026quot;America/New_York\u0026quot;, \u0026quot;duration\u0026quot;: 30, \u0026quot;generators\u0026quot;: [ { \u0026quot;startDate\u0026quot;: \u0026quot;2027-03-01\u0026quot;, \u0026quot;endDate\u0026quot;: \u0026quot;2027-03-05\u0026quot;, \u0026quot;days\u0026quot;: [\u0026quot;mon\u0026quot;, \u0026quot;tue\u0026quot;, \u0026quot;wed\u0026quot;, \u0026quot;thu\u0026quot;, \u0026quot;fri\u0026quot;], \u0026quot;from\u0026quot;: \u0026quot;09:00\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;12:00\u0026quot;, \u0026quot;interval\u0026quot;: 60 } ] } This produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop interval and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30. | Field | Meaning | | --- | --- | | startDate, endDate | The date range, inclusive. Fewer than 366 days. | | days | Days of the week to include: mon to sun. Optional; defaults to every day. | | from | Earliest slot start on each day, HH:mm in timeZone. | | to | End of the daily window, HH:mm in timeZone. A slot is only generated if it ends by this time. Must be later than from. | | interval | Minutes between slot starts. Optional; defaults to duration, which gives back to back slots. | A generator that cannot produce a slot is rejected with VALIDATION_ERROR naming the field: to not later than from, a window shorter than duration, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to options, and duplicate slots are removed. A request that would exceed 100 options fails with TOO_MANY_OPTIONS.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Rallly\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://support.rallly.co/api-reference/polls/create-a-poll\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rallly.mintlify.site/_mintlify/api/og/v2?division=Polls\u0026amp;title=Create+a+poll\u0026amp;description=Creates+a+poll+and+responds+with+%60201+Created%60+and+the+full+poll%2C+exactly+as+%60GET+%2Fpolls%2F%3ApollId%60+returns+it.+Share+%60inviteUrl%60+with+participants.+The+request+m\u0026amp;theme=3b224ee58e25c2691403f254\u0026amp;signature=042dc4b7639c8826f72bedfd2dff1540126ccd86f9e1175f2a2502cd4f902fd3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create a poll - Rallly\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a poll and responds with 201 Created and the full poll, exactly as GET /polls/:pollId returns it. Share inviteUrl with participants. The request mirrors the response: kind chooses what participants vote on, and options takes the same shape the poll returns, so a poll can be recreated from the body of a GET. A poll has at most 100 options. ## Date poll Pass kind: \u0026quot;date\u0026quot; and options, one { \u0026quot;date\u0026quot;: \u0026quot;YYYY-MM-DD\u0026quot; } per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed. json { \u0026quot;title\u0026quot;: \u0026quot;Team offsite\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;date\u0026quot;, \u0026quot;options\u0026quot;: [{ \u0026quot;date\u0026quot;: \u0026quot;2027-03-01\u0026quot; }, { \u0026quot;date\u0026quot;: \u0026quot;2027-03-02\u0026quot; }, { \u0026quot;date\u0026quot;: \u0026quot;2027-03-03\u0026quot; }] } ## Time poll Pass kind: \u0026quot;time\u0026quot;, optionally a timeZone (an IANA zone the times are written in) and a default duration in minutes, and the slots as options, generators or both. ### Explicit slots Each entry in options is one slot: a startTime and an optional duration that overrides the poll default. A startTime with no offset, like 2027-03-01T09:00:00, is wall clock time in timeZone when that is set and a floating time with no conversion otherwise; one with an offset or Z is an absolute instant. json { \u0026quot;title\u0026quot;: \u0026quot;Kickoff\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;time\u0026quot;, \u0026quot;timeZone\u0026quot;: \u0026quot;Europe/London\u0026quot;, \u0026quot;duration\u0026quot;: 60, \u0026quot;options\u0026quot;: [ { \u0026quot;startTime\u0026quot;: \u0026quot;2027-03-01T09:00:00\u0026quot; }, { \u0026quot;startTime\u0026quot;: \u0026quot;2027-03-02T14:00:00\u0026quot;, \u0026quot;duration\u0026quot;: 90 } ] } ### Slot generators Each object in generators expands into recurring slots of duration minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. duration is required when generators is set. json { \u0026quot;title\u0026quot;: \u0026quot;Interview availability\u0026quot;, \u0026quot;kind\u0026quot;: \u0026quot;time\u0026quot;, \u0026quot;timeZone\u0026quot;: \u0026quot;America/New_York\u0026quot;, \u0026quot;duration\u0026quot;: 30, \u0026quot;generators\u0026quot;: [ { \u0026quot;startDate\u0026quot;: \u0026quot;2027-03-01\u0026quot;, \u0026quot;endDate\u0026quot;: \u0026quot;2027-03-05\u0026quot;, \u0026quot;days\u0026quot;: [\u0026quot;mon\u0026quot;, \u0026quot;tue\u0026quot;, \u0026quot;wed\u0026quot;, \u0026quot;thu\u0026quot;, \u0026quot;fri\u0026quot;], \u0026quot;from\u0026quot;: \u0026quot;09:00\u0026quot;, \u0026quot;to\u0026quot;: \u0026quot;12:00\u0026quot;, \u0026quot;interval\u0026quot;: 60 } ] } This produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop interval and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30. | Field | Meaning | | --- | --- | | startDate, endDate | The date range, inclusive. Fewer than 366 days. | | days | Days of the week to include: mon to sun. Optional; defaults to every day. | | from | Earliest slot start on each day, HH:mm in timeZone. | | to | End of the daily window, HH:mm in timeZone. A slot is only generated if it ends by this time. Must be later than from. | | interval | Minutes between slot starts. Optional; defaults to duration, which gives back to back slots. | A generator that cannot produce a slot is rejected with VALIDATION_ERROR naming the field: to not later than from, a window shorter than duration, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to options, and duplicate slots are removed. A request that would exceed 100 options fails with TOO_MANY_OPTIONS.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rallly.mintlify.site/_mintlify/api/og/v2?division=Polls\u0026amp;title=Create+a+poll\u0026amp;description=Creates+a+poll+and+responds+with+%60201+Created%60+and+the+full+poll%2C+exactly+as+%60GET+%2Fpolls%2F%3ApollId%60+returns+it.+Share+%60inviteUrl%60+with+participants.+The+request+m\u0026amp;theme=3b224ee58e25c2691403f254\u0026amp;signature=042dc4b7639c8826f72bedfd2dff1540126ccd86f9e1175f2a2502cd4f902fd3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/rallly/yJAOogumIB5LJ2ZL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Rallly\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4f46e5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://support.rallly.co/api-reference/polls/create-a-poll\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/polls/create-a-poll.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://support.rallly.co/#organization\",\"name\":\"Rallly\",\"url\":\"https://support.rallly.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rallly/u-wzWrUsy5xDwUk7/logo/light.svg?fit=max\u0026auto=format\u0026n=u-wzWrUsy5xDwUk7\u0026q=85\u0026s=9d8170d558fae26f51d317bc7f8a04a7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://support.rallly.co#website\",\"name\":\"Rallly\",\"url\":\"https://support.rallly.co\",\"publisher\":{\"@id\":\"https://support.rallly.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://support.rallly.co/api-reference/polls/create-a-poll#webpage\",\"url\":\"https://support.rallly.co/api-reference/polls/create-a-poll\",\"name\":\"Create a poll\",\"description\":\"Creates a poll and responds with 201 Created and the full poll, exactly as GET /polls/:pollId returns it. Share inviteUrl with participants. The request mirrors the response: kind chooses what participants vote on, and options takes the same shape the poll returns, so a poll can be recreated from the body of a GET. A poll has at most 100 options. ## Date poll Pass kind: \\\"date\\\" and options, one { \\\"date\\\": \\\"YYYY-MM-DD\\\" } per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed. json { \\\"title\\\": \\\"Team offsite\\\", \\\"kind\\\": \\\"date\\\", \\\"options\\\": [{ \\\"date\\\": \\\"2027-03-01\\\" }, { \\\"date\\\": \\\"2027-03-02\\\" }, { \\\"date\\\": \\\"2027-03-03\\\" }] } ## Time poll Pass kind: \\\"time\\\", optionally a timeZone (an IANA zone the times are written in) and a default duration in minutes, and the slots as options, generators or both. ### Explicit slots Each entry in options is one slot: a startTime and an optional duration that overrides the poll default. A startTime with no offset, like 2027-03-01T09:00:00, is wall clock time in timeZone when that is set and a floating time with no conversion otherwise; one with an offset or Z is an absolute instant. json { \\\"title\\\": \\\"Kickoff\\\", \\\"kind\\\": \\\"time\\\", \\\"timeZone\\\": \\\"Europe/London\\\", \\\"duration\\\": 60, \\\"options\\\": [ { \\\"startTime\\\": \\\"2027-03-01T09:00:00\\\" }, { \\\"startTime\\\": \\\"2027-03-02T14:00:00\\\", \\\"duration\\\": 90 } ] } ### Slot generators Each object in generators expands into recurring slots of duration minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. duration is required when generators is set. json { \\\"title\\\": \\\"Interview availability\\\", \\\"kind\\\": \\\"time\\\", \\\"timeZone\\\": \\\"America/New_York\\\", \\\"duration\\\": 30, \\\"generators\\\": [ { \\\"startDate\\\": \\\"2027-03-01\\\", \\\"endDate\\\": \\\"2027-03-05\\\", \\\"days\\\": [\\\"mon\\\", \\\"tue\\\", \\\"wed\\\", \\\"thu\\\", \\\"fri\\\"], \\\"from\\\": \\\"09:00\\\", \\\"to\\\": \\\"12:00\\\", \\\"interval\\\": 60 } ] } This produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop interval and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30. | Field | Meaning | | --- | --- | | startDate, endDate | The date range, inclusive. Fewer than 366 days. | | days | Days of the week to include: mon to sun. Optional; defaults to every day. | | from | Earliest slot start on each day, HH:mm in timeZone. | | to | End of the daily window, HH:mm in timeZone. A slot is only generated if it ends by this time. Must be later than from. | | interval | Minutes between slot starts. Optional; defaults to duration, which gives back to back slots. | A generator that cannot produce a slot is rejected with VALIDATION_ERROR naming the field: to not later than from, a window shorter than duration, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to options, and duplicate slots are removed. A request that would exceed 100 options fails with TOO_MANY_OPTIONS.\",\"dateModified\":\"2026-10-13T23:41:58.959Z\",\"isPartOf\":{\"@id\":\"https://support.rallly.co#website\"},\"breadcrumb\":{\"@id\":\"https://support.rallly.co/api-reference/polls/create-a-poll#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://support.rallly.co/api-reference/polls/create-a-poll#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Rallly\",\"item\":\"https://support.rallly.co\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a poll\",\"item\":\"https://support.rallly.co/api-reference/polls/create-a-poll\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://support.rallly.co/api-reference/polls/create-a-poll#apireference\",\"headline\":\"Create a poll\",\"name\":\"Create a poll\",\"description\":\"Creates a poll and responds with 201 Created and the full poll, exactly as GET /polls/:pollId returns it. Share inviteUrl with participants. The request mirrors the response: kind chooses what participants vote on, and options takes the same shape the poll returns, so a poll can be recreated from the body of a GET. A poll has at most 100 options. ## Date poll Pass kind: \\\"date\\\" and options, one { \\\"date\\\": \\\"YYYY-MM-DD\\\" } per day. Each becomes one all-day option. Dates are floating calendar days with no timezone, so never convert them through one. Duplicate dates are removed. json { \\\"title\\\": \\\"Team offsite\\\", \\\"kind\\\": \\\"date\\\", \\\"options\\\": [{ \\\"date\\\": \\\"2027-03-01\\\" }, { \\\"date\\\": \\\"2027-03-02\\\" }, { \\\"date\\\": \\\"2027-03-03\\\" }] } ## Time poll Pass kind: \\\"time\\\", optionally a timeZone (an IANA zone the times are written in) and a default duration in minutes, and the slots as options, generators or both. ### Explicit slots Each entry in options is one slot: a startTime and an optional duration that overrides the poll default. A startTime with no offset, like 2027-03-01T09:00:00, is wall clock time in timeZone when that is set and a floating time with no conversion otherwise; one with an offset or Z is an absolute instant. json { \\\"title\\\": \\\"Kickoff\\\", \\\"kind\\\": \\\"time\\\", \\\"timeZone\\\": \\\"Europe/London\\\", \\\"duration\\\": 60, \\\"options\\\": [ { \\\"startTime\\\": \\\"2027-03-01T09:00:00\\\" }, { \\\"startTime\\\": \\\"2027-03-02T14:00:00\\\", \\\"duration\\\": 90 } ] } ### Slot generators Each object in generators expands into recurring slots of duration minutes from a schedule, so availability across days or weeks does not have to be listed slot by slot. duration is required when generators is set. json { \\\"title\\\": \\\"Interview availability\\\", \\\"kind\\\": \\\"time\\\", \\\"timeZone\\\": \\\"America/New_York\\\", \\\"duration\\\": 30, \\\"generators\\\": [ { \\\"startDate\\\": \\\"2027-03-01\\\", \\\"endDate\\\": \\\"2027-03-05\\\", \\\"days\\\": [\\\"mon\\\", \\\"tue\\\", \\\"wed\\\", \\\"thu\\\", \\\"fri\\\"], \\\"from\\\": \\\"09:00\\\", \\\"to\\\": \\\"12:00\\\", \\\"interval\\\": 60 } ] } This produces 30 minute slots at 09:00, 10:00 and 11:00 New York time on each weekday from 1 to 5 March, fifteen options in all. Drop interval and the window fills with back to back slots at 09:00, 09:30, 10:00, 10:30, 11:00 and 11:30. | Field | Meaning | | --- | --- | | startDate, endDate | The date range, inclusive. Fewer than 366 days. | | days | Days of the week to include: mon to sun. Optional; defaults to every day. | | from | Earliest slot start on each day, HH:mm in timeZone. | | to | End of the daily window, HH:mm in timeZone. A slot is only generated if it ends by this time. Must be later than from. | | interval | Minutes between slot starts. Optional; defaults to duration, which gives back to back slots. | A generator that cannot produce a slot is rejected with VALIDATION_ERROR naming the field: to not later than from, a window shorter than duration, or a range that contains none of the listed days. Generators are expanded when the poll is created, the result is appended to options, and duplicate slots are removed. A request that would exceed 100 options fails with TOO_MANY_OPTIONS.\",\"url\":\"https://support.rallly.co/api-reference/polls/create-a-poll\",\"mainEntityOfPage\":{\"@id\":\"https://support.rallly.co/api-reference/polls/create-a-poll#webpage\"},\"dateModified\":\"2026-10-13T23:41:58.959Z\",\"publisher\":{\"@id\":\"https://support.rallly.co/#organization\"},\"isPartOf\":{\"@id\":\"https://support.rallly.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Rallly\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Rallly\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/polls/create-a-poll.md","siteName":"Rallly","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Self-Hosting","pages":[{"title":"Self-Hosting","href":"/self-hosting/introduction"}]},{"tab":"API Reference","groups":[{"group":"Getting started","pages":[{"title":"Introduction","icon":"house","href":"/api-reference/introduction"},{"title":"Authentication","icon":"key","href":"/api-reference/authentication"},{"title":"Rate limits","icon":"gauge-high","href":"/api-reference/rate-limits"},{"title":"Errors","icon":"triangle-exclamation","href":"/api-reference/errors"},{"title":"Changelog","icon":"clock-rotate-left","href":"/api-reference/changelog"},{"title":"Migrating from the private API","icon":"arrow-right-arrow-left","description":"Move an integration from /api/private to /v1, endpoint by endpoint.","href":"/api-reference/migrating-from-the-private-api"}]},{"group":"Polls","pages":[{"title":"Create a poll","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/polls","href":"/api-reference/polls/create-a-poll"},{"title":"List polls","description":"Lists the polls in the space associated with the API key, sorted by creation date (newest first).\n\nUse the `status` query parameter to only return polls in a given state — for example `status=open` to sweep polls that are still collecting responses. Results are paginated with a cursor: pass the `nextCursor` value from the previous response to fetch the next page.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/polls","href":"/api-reference/polls/list-polls"},{"title":"Get a poll","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/polls/{pollId}","href":"/api-reference/polls/get-a-poll"},{"title":"Delete a poll","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/polls/{pollId}","href":"/api-reference/polls/delete-a-poll"},{"title":"Get poll results","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/polls/{pollId}/results","href":"/api-reference/polls/get-poll-results"},{"title":"List poll participants","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/polls/{pollId}/participants","href":"/api-reference/polls/list-poll-participants"},{"title":"Get a poll participant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/polls/{pollId}/participants/{participantId}","href":"/api-reference/polls/get-a-poll-participant"}]},{"group":"Webhooks","tag":"Beta","pages":[{"title":"Overview","sidebarTitle":"Overview","icon":"webhook","href":"/api-reference/webhooks"},{"title":"Events","icon":"bolt","href":"/api-reference/webhooks/events"},{"title":"Security","icon":"shield-check","href":"/api-reference/webhooks/security"},{"group":"Guides","icon":"book-open","pages":[{"title":"Receive webhooks in n8n","sidebarTitle":"n8n","icon":"diagram-project","href":"/api-reference/webhooks/guides/n8n"}]}]}]},{"tab":"Contribute","pages":[{"title":"Contribute","href":"/contribute/introduction"}]}]},"basePath":"","title":"Create a poll - Rallly","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BvKnMd7F.js","utils-BMt52org.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CGXZuDGO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dl57XWH2.js","snippetPresets-CWd8CxSk.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BR-Wkc_D.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-YMmi08aZ.js","shallow-DBC1OB78.js","getApiPlaygroundDisplay-Be7mmEzP.js","CodeSnippet-B14o1TgQ.js","CodeSnippets-CJ2q3fTq.js","Page-Chgj7sZe.js","getPastedJson-DnpLXm8x.js","icon-BpkSFtdK.js","MethodPill-BO3zPf-g.js","DuplicateIcon-Bib3qwfw.js","createIcon-CY2noFo3.js","DynamicMarkdown-TAXIW2vN.js","SectionHeading-Dfs3Fmfw.js","axios-vUo_bRtp.js","Markdown-CGAo_eqA.js","clsx-BNa-H6W6.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-r2tNEC1n.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-B7oWe6jc.js"]}