Creates a draft enrollment batch: checks every person, fills their variables and writes each person’s final emails. Nothing is enrolled or sent until you call start. Each person comes back ready, needs_input or blocked with the reasons in issues; fix people with PATCH .../recipients/{recipient_id}. When the campaign uses AI variables the batch is preparing while they are written; read it again until it is ready. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (429 DAILY_ENROLLMENT_LIMIT_REACHED). Needs campaigns:enroll.
Signed-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.
next_window (default): the first step's wait counts from now, then the email goes out in its next sending window, skipping weekends and holidays the campaign doesn't send on. now: the first email goes out right away, even outside sending hours, on a weekend or holiday, or when the first step has a wait. scheduled: the first email goes out at start_at in start_timezone, even outside sending hours or on a weekend or holiday; if the first step has a wait, it counts from start_at and the email then goes out in the next sending window. The outside_sending_window warning tells you when the first email goes out off schedule or has to wait.
When to start, only with start_mode scheduled: a local date and time such as 2026-10-19T09:00:00, read in start_timezone, 5 minutes to 90 days ahead. A batch's timing can't be changed after it is prepared; to move it, discard the batch and prepare a new one.
Which email to pick for people without one given. auto: work emails for business development and client nurture campaigns, personal emails otherwise. The person's preferred email always wins.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Stardex Help Docs","description":"AI native ATS \u0026 CRM for search firms","colors":{"primary":"#5853f7","light":"#5853f7","dark":"#EDF3F9"},"logo":{"light":"https://mintcdn.com/stardex/Unebva7RlCeyAgPy/logo/light.svg?fit=max\u0026auto=format\u0026n=Unebva7RlCeyAgPy\u0026q=85\u0026s=6a32bc87265a1562f0ee3793cb4c66e7","dark":"https://mintcdn.com/stardex/Unebva7RlCeyAgPy/logo/dark.svg?fit=max\u0026auto=format\u0026n=Unebva7RlCeyAgPy\u0026q=85\u0026s=000def45485b23628fc81f156a6306cd"},"favicon":"https://mintcdn.com/stardex/Unebva7RlCeyAgPy/favicon.svg?fit=max\u0026auto=format\u0026n=Unebva7RlCeyAgPy\u0026q=85\u0026s=dbebacabd3552482bc8b3f787e61888d","api":{"mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":"https://api.stardex.ai"}},"navbar":{"links":[{"href":"mailto:support@stardex.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://stardex.com/jobs"}},"footer":{"socials":{"x":"https://x.com/stardexhq","linkedin":"https://linkedin.com/company/stardexhq"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Home page","icon":"book-open-cover","href":"https://www.stardex.com"},{"anchor":"Blog","icon":"newspaper","href":"https://www.stardex.com/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"stardex","hasAudioNarration":false,"actualSubdomain":"stardex","customDomains":["docs.stardex.com"],"gitSource":{"type":"github","owner":"dotshq","repo":"ats-plus","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adc22bb47d1fc97ca4d909a","collectionId":"ec4ca445-ecb9-4c0a-a762-4ff8472e33d8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adc22bb47d1fc97ca4d909a"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{},"buildId":"6ade7b00b7bed53c17af21c3","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":162},{"language":"default","tag":"Help Center","count":86},{"language":"default","tag":"Core Features","count":35},{"language":"default","tag":"Settings \u0026 Customization","count":27},{"language":"default","tag":"Campaigns","count":23},{"language":"default","tag":"Persons","count":23},{"language":"default","tag":"Integrations","count":16},{"language":"default","tag":"Jobs","count":15},{"language":"default","tag":"Email \u0026 other integrations","count":10},{"language":"default","tag":"Automations","count":10}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/campaigns/prepare-an-enrollment","slug":"/api-reference/campaigns/prepare-an-enrollment","pageMetadata":{"title":"Prepare an enrollment","description":"Creates a draft enrollment batch: checks every person, fills their variables and writes each person's final emails. Nothing is enrolled or sent until you call start. Each person comes back `ready`, `needs_input` or `blocked` with the reasons in `issues`; fix people with `PATCH .../recipients/{recipient_id}`. When the campaign uses AI variables the batch is `preparing` while they are written; read it again until it is `ready`. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (`429 DAILY_ENROLLMENT_LIMIT_REACHED`). Needs `campaigns:enroll`.\n\nSigned-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/enrollment-batches","href":"/api-reference/campaigns/prepare-an-enrollment","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 p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Creates a draft enrollment batch: checks every person, fills their variables and writes each person’s final emails. Nothing is enrolled or sent until you call start. Each person comes back \", _jsx(_components.code, {\n children: \"ready\"\n }), \", \", _jsx(_components.code, {\n children: \"needs_input\"\n }), \" or \", _jsx(_components.code, {\n children: \"blocked\"\n }), \" with the reasons in \", _jsx(_components.code, {\n children: \"issues\"\n }), \"; fix people with \", _jsx(_components.code, {\n children: \"PATCH .../recipients/{recipient_id}\"\n }), \". When the campaign uses AI variables the batch is \", _jsx(_components.code, {\n children: \"preparing\"\n }), \" while they are written; read it again until it is \", _jsx(_components.code, {\n children: \"ready\"\n }), \". A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (\", _jsx(_components.code, {\n children: \"429 DAILY_ENROLLMENT_LIMIT_REACHED\"\n }), \"). Needs \", _jsx(_components.code, {\n children: \"campaigns:enroll\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Signed-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.\"\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};\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":"Prepare an enrollment","description":"Creates a draft enrollment batch: checks every person, fills their variables and writes each person's final emails. Nothing is enrolled or sent until you call start. Each person comes back `ready`, `needs_input` or `blocked` with the reasons in `issues`; fix people with `PATCH .../recipients/{recipient_id}`. When the campaign uses AI variables the batch is `preparing` while they are written; read it again until it is `ready`. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (`429 DAILY_ENROLLMENT_LIMIT_REACHED`). Needs `campaigns:enroll`.\n\nSigned-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/enrollment-batches","href":"/api-reference/campaigns/prepare-an-enrollment","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createCampaignEnrollmentBatch","summary":"Prepare an enrollment","description":"Creates a draft enrollment batch: checks every person, fills their variables and writes each person's final emails. Nothing is enrolled or sent until you call start. Each person comes back `ready`, `needs_input` or `blocked` with the reasons in `issues`; fix people with `PATCH .../recipients/{recipient_id}`. When the campaign uses AI variables the batch is `preparing` while they are written; read it again until it is `ready`. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (`429 DAILY_ENROLLMENT_LIMIT_REACHED`). Needs `campaigns:enroll`.\n\nSigned-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.","tags":["Campaigns"],"parameters":["0c477eae-0e2d-4ffa-a9a2-f88c2f404383"],"requestBody":"6212c8de-e8d7-4f30-94fc-5654592cd201","responses":{"201":"0700cb49-1116-4e23-b88a-1e8a8db589e7","400":"01d2aa25-5a65-4ad7-8e30-d77d97759125","403":"88dbc8b8-1da7-4135-80c7-c994017d4c9d","404":"57954bb5-cbf1-4a4f-869f-525316b050ec","409":"f2115b4a-4d4e-47ff-af97-d466940524db","429":"686c6367-a7fe-4e8f-9dd1-f520dec693bb","500":"1a9eae59-5797-4dea-949d-5cd3a3ef8331"},"method":"post","type":"path","servers":["20e81692-0e88-4037-93ca-f9780d101506"],"security":["5625a650-543e-4dde-bdd4-529bc2359650"],"path":"/v1/campaigns/{id}/enrollment-batches","baseUrlOptions":["https://api.stardex.ai"],"title":"Prepare an enrollment","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"0c477eae-0e2d-4ffa-a9a2-f88c2f404383":{"schema":{"type":"string","format":"uuid","description":"Campaign ID.","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"},"required":true,"description":"Campaign ID.","name":"id","in":"path"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"from_email":{"type":"string","format":"email","description":"Mailbox to send from: the sender's own or one shared with them. See GET /v1/campaigns/mailboxes.","isRequired":true,"uniqueKey":"from_email","typeLabel":"string\u003cemail>"},"recipients":{"type":"array","items":{"type":"object","properties":{"person_id":{"type":"string","format":"uuid","description":"Person to enroll.","isRequired":true,"uniqueKey":"recipients.items.[INDEX].person_id","typeLabel":"string\u003cuuid>"},"email":{"oneOf":[{"type":"string","format":"email","description":"Email to send to. Left out, the person's best email is picked using email_preference.","uniqueKey":"recipients.items.[INDEX].email.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","format":"email","description":"Email to send to. Left out, the person's best email is picked using email_preference.","uniqueKey":"recipients.items.[INDEX].email.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipients.items.[INDEX].email","typeLabel":"string\u003cemail> | null"},"add_email_to_person":{"type":"boolean","description":"Save email to the person's profile when it isn't one of their emails. A batch can't send to an address without saving it, so without this an email not on the profile leaves the person needs_input (email_not_on_person).","uniqueKey":"recipients.items.[INDEX].add_email_to_person","typeLabel":"boolean"},"variable_values":{"type":"object","additionalProperties":{"type":"string","maxLength":2000,"uniqueKey":"recipients.items.[INDEX].variable_values.additionalProperties","typeLabel":"string"},"description":"Values for {{variables}}, keyed by the name used in the template, for example {\"personalization_line\": \"Loved your PyCon talk.\"} or {\"ai:opening_line\": \"...\"} to write an AI variable yourself.","uniqueKey":"recipients.items.[INDEX].variable_values","typeLabel":"object"},"blank_variables":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"uniqueKey":"recipients.items.[INDEX].blank_variables.items.[INDEX]","typeLabel":"string"},"maxItems":100,"description":"Variables to leave out of the email. The {{token}} is removed and the spacing around it tidied.","uniqueKey":"recipients.items.[INDEX].blank_variables","typeLabel":"string[]"},"overrides":{"type":"array","items":{"type":"string","enum":["company_do_not_contact","duplicate_enrollment"],"uniqueKey":"recipients.items.[INDEX].overrides.items.[INDEX]","typeLabel":"enum\u003cstring>"},"maxItems":2,"description":"Enroll despite these blocks: company_do_not_contact (works at a company marked do not contact) or duplicate_enrollment (already in this campaign at another email, or finished it before). Needs override_reason here or on the batch. Ignored when the person has neither block. A blocked person (unsubscribed, bounced, marked do not contact, or still in this campaign at the same email) cannot be overridden, and passing overrides for them fails the whole request with OVERRIDE_NOT_ALLOWED. To re-enroll someone at the same email, stop their enrollment first.","uniqueKey":"recipients.items.[INDEX].overrides","typeLabel":"enum\u003cstring>[]"},"override_reason":{"oneOf":[{"type":"string","minLength":1,"maxLength":1000,"description":"Why the block is being overridden. Stored on the enrollment.","uniqueKey":"recipients.items.[INDEX].override_reason.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"maxLength":1000,"description":"Why the block is being overridden. Stored on the enrollment.","uniqueKey":"recipients.items.[INDEX].override_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipients.items.[INDEX].override_reason","typeLabel":"string | null"}},"required":["person_id"],"uniqueKey":"recipients.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":1000,"description":"People to enroll, each person once. A batch holds up to your workspace's recipient limit (50 by default), and never more than 1,000.","isRequired":true,"uniqueKey":"recipients","typeLabel":"object[]"},"sender_team_member_id":{"type":"string","format":"uuid","description":"Team member the emails are sent as. Required with an API key; signed-in users always send as themselves.","uniqueKey":"sender_team_member_id","typeLabel":"string\u003cuuid>"},"job_id":{"oneOf":[{"type":"string","format":"uuid","description":"Job to add everyone to, which also fills {{search_name}}, {{search_client}} and {{application_link}}.","uniqueKey":"job_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Job to add everyone to, which also fills {{search_name}}, {{search_client}} and {{application_link}}.","uniqueKey":"job_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"job_id","typeLabel":"string\u003cuuid> | null"},"job_pipeline_stage_id":{"oneOf":[{"type":"string","format":"uuid","description":"Pipeline stage of job_id to put everyone in. Left out, people already on the job keep their stage and new ones start in the job's first stage.","uniqueKey":"job_pipeline_stage_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Pipeline stage of job_id to put everyone in. Left out, people already on the job keep their stage and new ones start in the job's first stage.","uniqueKey":"job_pipeline_stage_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"job_pipeline_stage_id","typeLabel":"string\u003cuuid> | null"},"start_mode":{"type":"string","enum":["next_window","now","scheduled"],"default":"next_window","description":"next_window (default): the first step's wait counts from now, then the email goes out in its next sending window, skipping weekends and holidays the campaign doesn't send on. now: the first email goes out right away, even outside sending hours, on a weekend or holiday, or when the first step has a wait. scheduled: the first email goes out at start_at in start_timezone, even outside sending hours or on a weekend or holiday; if the first step has a wait, it counts from start_at and the email then goes out in the next sending window. The outside_sending_window warning tells you when the first email goes out off schedule or has to wait.","uniqueKey":"start_mode","typeLabel":"enum\u003cstring>"},"start_at":{"oneOf":[{"type":"string","description":"When to start, only with start_mode scheduled: a local date and time such as 2026-10-19T09:00:00, read in start_timezone, 5 minutes to 90 days ahead. A batch's timing can't be changed after it is prepared; to move it, discard the batch and prepare a new one.","uniqueKey":"start_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"When to start, only with start_mode scheduled: a local date and time such as 2026-10-19T09:00:00, read in start_timezone, 5 minutes to 90 days ahead. A batch's timing can't be changed after it is prepared; to move it, discard the batch and prepare a new one.","uniqueKey":"start_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"start_at","typeLabel":"string | null"},"start_timezone":{"oneOf":[{"type":"string","description":"IANA timezone for start_at, for example Europe/London. Required with start_mode scheduled.","uniqueKey":"start_timezone.oneOf.0","typeLabel":"string"},{"type":"null","description":"IANA timezone for start_at, for example Europe/London. Required with start_mode scheduled.","uniqueKey":"start_timezone.oneOf.1","typeLabel":"null"}],"uniqueKey":"start_timezone","typeLabel":"string | null"},"email_preference":{"type":"string","enum":["auto","work","personal"],"default":"auto","description":"Which email to pick for people without one given. auto: work emails for business development and client nurture campaigns, personal emails otherwise. The person's preferred email always wins.","uniqueKey":"email_preference","typeLabel":"enum\u003cstring>"},"variable_values":{"type":"object","additionalProperties":{"type":"string","maxLength":2000,"uniqueKey":"variable_values.additionalProperties","typeLabel":"string"},"description":"Values used for everyone in the batch. A person's own variable_values win.","uniqueKey":"variable_values","typeLabel":"object"},"blank_variables":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"uniqueKey":"blank_variables.items.[INDEX]","typeLabel":"string"},"maxItems":100,"description":"Variables to leave out for everyone in the batch.","uniqueKey":"blank_variables","typeLabel":"string[]"},"override_reason":{"oneOf":[{"type":"string","minLength":1,"maxLength":1000,"description":"Reason used for every person with overrides and no own reason.","uniqueKey":"override_reason.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"maxLength":1000,"description":"Reason used for every person with overrides and no own reason.","uniqueKey":"override_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"override_reason","typeLabel":"string | null"}},"required":["from_email","recipients"],"uniqueKey":"","typeLabel":"object"},"example":{"sender_team_member_id":"7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20","from_email":"riya@acmetalent.com","job_id":"b21d7e4a-5c9f-4e3b-a1d6-8f2c4e7b9a13","job_pipeline_stage_id":"e4a0c3b7-1f5d-4a8e-9b2c-6d3f7a1e5c88","start_mode":"scheduled","start_at":"2026-10-19T09:00:00","start_timezone":"Europe/London","variable_values":{"custom":"We placed 3 engineers at Monzo last year."},"recipients":[{"person_id":"2f6b9d1e-4a8c-4e3f-b7d2-1c5a9e3b7f40","variable_values":{"personalization_line":"Loved your PyCon talk on async Python."},"blank_variables":["custom"]},{"person_id":"6a3e8c2f-9b1d-4f7a-a5c3-8e2b6d4f1a73"},{"person_id":"9c4f1a7e-2d8b-4e6c-b3a9-5f1d7c3e8b24"},{"person_id":"4e8b2d6f-1a3c-4e9b-8f5d-7c2a6e1b3d95","variable_values":{"personalization_line":"Your QCon London talk was great."}}]},"examples":{"Example":{"title":"Example","value":{"sender_team_member_id":"7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20","from_email":"riya@acmetalent.com","job_id":"b21d7e4a-5c9f-4e3b-a1d6-8f2c4e7b9a13","job_pipeline_stage_id":"e4a0c3b7-1f5d-4a8e-9b2c-6d3f7a1e5c88","start_mode":"scheduled","start_at":"2026-10-19T09:00:00","start_timezone":"Europe/London","variable_values":{"custom":"We placed 3 engineers at Monzo last year."},"recipients":[{"person_id":"2f6b9d1e-4a8c-4e3f-b7d2-1c5a9e3b7f40","variable_values":{"personalization_line":"Loved your PyCon talk on async Python."},"blank_variables":["custom"]},{"person_id":"6a3e8c2f-9b1d-4f7a-a5c3-8e2b6d4f1a73"},{"person_id":"9c4f1a7e-2d8b-4e6c-b3a9-5f1d7c3e8b24"},{"person_id":"4e8b2d6f-1a3c-4e9b-8f5d-7c2a6e1b3d95","variable_values":{"personalization_line":"Your QCon London talk was great."}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"0700cb49-1116-4e23-b88a-1e8a8db589e7":{"description":"Batch prepared","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"data":{"type":"object","properties":{"batch_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.batch_id","typeLabel":"string\u003cuuid>"},"status":{"type":"string","enum":["preparing","ready","starting","started","discarded","expired"],"description":"preparing: AI variables are being written. ready: can be edited and started. starting: people are enrolled and adding them to the job or as client contacts is still finishing. started, discarded, expired: final.","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"version":{"type":"integer","description":"Goes up with every change. Pass it to start.","isRequired":true,"uniqueKey":"data.version","typeLabel":"integer"},"source":{"type":"string","enum":["api","mcp","copilot","app"],"description":"Where the batch was made: api (an API key), mcp (an AI assistant connected over MCP), copilot (Ask Dex) or app (a signed-in user calling the API).","isRequired":true,"uniqueKey":"data.source","typeLabel":"enum\u003cstring>"},"campaign":{"type":"object","properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.campaign.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","isRequired":true,"uniqueKey":"data.campaign.name","typeLabel":"string"}},"required":["id","name"],"isRequired":true,"uniqueKey":"data.campaign","typeLabel":"object"},"sender":{"type":"object","properties":{"team_member_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.sender.team_member_id","typeLabel":"string\u003cuuid>"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.sender.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.sender.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.sender.name","typeLabel":"string | null"},"from_email":{"type":"string","isRequired":true,"uniqueKey":"data.sender.from_email","typeLabel":"string"}},"required":["team_member_id","name","from_email"],"isRequired":true,"uniqueKey":"data.sender","typeLabel":"object"},"job":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.job.oneOf.0.id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","isRequired":true,"uniqueKey":"data.job.oneOf.0.title","typeLabel":"string"},"pipeline_stage_id":{"oneOf":[{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.job.oneOf.0.pipeline_stage_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","isRequired":true,"uniqueKey":"data.job.oneOf.0.pipeline_stage_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.job.oneOf.0.pipeline_stage_id","typeLabel":"string\u003cuuid> | null"},"pipeline_stage":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.job.oneOf.0.pipeline_stage.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.job.oneOf.0.pipeline_stage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.job.oneOf.0.pipeline_stage","typeLabel":"string | null"}},"required":["id","title","pipeline_stage_id","pipeline_stage"],"isRequired":true,"uniqueKey":"data.job.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"pipeline_stage_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null","format":"uuid"}]},"pipeline_stage":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","title","pipeline_stage_id","pipeline_stage"],"isRequired":true,"uniqueKey":"data.job.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.job","typeLabel":"object | null"},"start":{"type":"object","properties":{"mode":{"type":"string","enum":["next_window","now","scheduled"],"isRequired":true,"uniqueKey":"data.start.mode","typeLabel":"enum\u003cstring>"},"at":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.start.at.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.start.at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.start.at","typeLabel":"string | null"},"timezone":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.start.timezone.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.start.timezone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.start.timezone","typeLabel":"string | null"}},"required":["mode","at","timezone"],"isRequired":true,"uniqueKey":"data.start","typeLabel":"object"},"created_by":{"type":"object","properties":{"type":{"type":"string","enum":["api_key","team_member"],"isRequired":true,"uniqueKey":"data.created_by.type","typeLabel":"enum\u003cstring>"},"id":{"oneOf":[{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.created_by.id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","isRequired":true,"uniqueKey":"data.created_by.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.created_by.id","typeLabel":"string\u003cuuid> | null"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.created_by.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.created_by.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.created_by.name","typeLabel":"string | null"}},"required":["type","id","name"],"description":"Who prepared the batch: an API key, with its name, or a team member. Only they can change, start or discard it.","isRequired":true,"uniqueKey":"data.created_by","typeLabel":"object"},"created_at":{"type":"string","isRequired":true,"uniqueKey":"data.created_at","typeLabel":"string"},"expires_at":{"type":"string","description":"A draft expires 24 hours after its last change.","isRequired":true,"uniqueKey":"data.expires_at","typeLabel":"string"},"started_at":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.started_at.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.started_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.started_at","typeLabel":"string | null"},"progress":{"oneOf":[{"type":"object","properties":{"done":{"type":"integer","isRequired":true,"uniqueKey":"data.progress.oneOf.0.done","typeLabel":"integer"},"total":{"type":"integer","isRequired":true,"uniqueKey":"data.progress.oneOf.0.total","typeLabel":"integer"}},"required":["done","total"],"description":"AI writing progress while preparing.","isRequired":true,"uniqueKey":"data.progress.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"done":{"type":"integer"},"total":{"type":"integer"}},"required":["done","total"],"description":"AI writing progress while preparing.","isRequired":true,"uniqueKey":"data.progress.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.progress","typeLabel":"object | null"},"summary":{"type":"object","properties":{"total":{"type":"integer","isRequired":true,"uniqueKey":"data.summary.total","typeLabel":"integer"},"preparing":{"type":"integer","isRequired":true,"uniqueKey":"data.summary.preparing","typeLabel":"integer"},"ready":{"type":"integer","isRequired":true,"uniqueKey":"data.summary.ready","typeLabel":"integer"},"needs_input":{"type":"integer","isRequired":true,"uniqueKey":"data.summary.needs_input","typeLabel":"integer"},"blocked":{"type":"integer","isRequired":true,"uniqueKey":"data.summary.blocked","typeLabel":"integer"},"excluded":{"type":"integer","isRequired":true,"uniqueKey":"data.summary.excluded","typeLabel":"integer"},"enrolled":{"type":"integer","isRequired":true,"uniqueKey":"data.summary.enrolled","typeLabel":"integer"},"rejected_at_start":{"type":"integer","isRequired":true,"uniqueKey":"data.summary.rejected_at_start","typeLabel":"integer"}},"required":["total","preparing","ready","needs_input","blocked","excluded","enrolled","rejected_at_start"],"isRequired":true,"uniqueKey":"data.summary","typeLabel":"object"},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"exceeds_daily_capacity, daily_limit_reached (the mailbox already sent its daily limit today and the first email is due today, so it waits for the reset), sending_disabled, mailbox_rate_limited, outside_sending_window, adds_to_job_pipeline, creates_client_contacts, contains_overrides (details has the names), shared_email (one per email several people use; details has the email and the names), job_automation_will_run or steps_without_timezone. outside_sending_window means the first email goes out outside sending hours, on a weekend or on a holiday the campaign skips (start_mode now or scheduled), or has to wait for the next sending window (next_window); details has reason (outside_hours, weekend or holiday), sending_hours and first_email_at.","isRequired":true,"uniqueKey":"data.warnings.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"data.warnings.items.[INDEX].message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"data.warnings.items.[INDEX].details.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"data.warnings.items.[INDEX].details.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"data.warnings.items.[INDEX].details.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"data.warnings.items.[INDEX].details.additionalProperties.oneOf.3","typeLabel":"null"},{"type":"array","items":{"type":"string","uniqueKey":"data.warnings.items.[INDEX].details.additionalProperties.oneOf.4.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.warnings.items.[INDEX].details.additionalProperties.oneOf.4","typeLabel":"string[]"},{"type":"null","uniqueKey":"data.warnings.items.[INDEX].details.additionalProperties.oneOf.5","typeLabel":"null"}],"uniqueKey":"data.warnings.items.[INDEX].details.additionalProperties","typeLabel":"string · number · boolean · null · string[] · null"},"description":"Extra facts about the issue, such as variable names.","uniqueKey":"data.warnings.items.[INDEX].details","typeLabel":"object"}},"required":["code","message"],"uniqueKey":"data.warnings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.warnings","typeLabel":"object[]"},"recipients":{"type":"array","items":{"type":"object","properties":{"recipient_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].recipient_id","typeLabel":"string\u003cuuid>"},"person_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].person_id","typeLabel":"string\u003cuuid>"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].email.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].email","typeLabel":"string | null"},"status":{"type":"string","enum":["preparing","ready","needs_input","blocked","excluded","enrolled","rejected_at_start"],"description":"ready: enrolled at start. needs_input and blocked: not enrolled; see issues. excluded: left out by you. preparing: AI variables are still being written. After start: enrolled or rejected_at_start.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Blocks: person_not_found, email_bounced, unsubscribed, person_do_not_contact, already_enrolled. Needs input: no_email, email_not_on_person, company_do_not_contact, already_enrolled_different_email, previously_completed, missing_variables, ai_generation_failed. Warnings: likely_bounce, enrolled_in_other_campaign, previously_in_campaign (was in this campaign before and was stopped, cancelled or failed).","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"What is wrong and how to fix it.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details.additionalProperties.oneOf.3","typeLabel":"null"},{"type":"array","items":{"type":"string","uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details.additionalProperties.oneOf.4.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details.additionalProperties.oneOf.4","typeLabel":"string[]"},{"type":"null","uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details.additionalProperties.oneOf.5","typeLabel":"null"}],"uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details.additionalProperties","typeLabel":"string · number · boolean · null · string[] · null"},"description":"Extra facts about the issue, such as variable names.","uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX].details","typeLabel":"object"}},"required":["code","message"],"uniqueKey":"data.recipients.items.[INDEX].issues.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].issues","typeLabel":"object[]"},"overrides":{"type":"array","items":{"type":"string","enum":["company_do_not_contact","duplicate_enrollment"],"uniqueKey":"data.recipients.items.[INDEX].overrides.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Blocks this person is enrolled despite.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].overrides","typeLabel":"enum\u003cstring>[]"},"override_reason":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].override_reason.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].override_reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].override_reason","typeLabel":"string | null"},"enrollment_id":{"oneOf":[{"type":"string","format":"uuid","description":"Set once enrolled.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].enrollment_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Set once enrolled.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].enrollment_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].enrollment_id","typeLabel":"string\u003cuuid> | null"},"first_email_estimated_at":{"oneOf":[{"type":"string","description":"Estimated time of this person's first email, following start_mode and moved to later days when the batch is more than the mailbox's daily limit can send. null when the person isn't ready, the first step isn't an email, or the mailbox's daily limit is 0.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].first_email_estimated_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Estimated time of this person's first email, following start_mode and moved to later days when the batch is more than the mailbox's daily limit can send. null when the person isn't ready, the first step isn't an email, or the mailbox's daily limit is 0.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].first_email_estimated_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].first_email_estimated_at","typeLabel":"string | null"},"steps":{"type":"array","items":{"type":"object","properties":{"step_id":{"type":"string","format":"uuid","description":"Campaign step ID.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].step_id","typeLabel":"string\u003cuuid>"},"order":{"type":"integer","description":"1-based position in the campaign.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].order","typeLabel":"integer"},"type":{"type":"string","enum":["email","manual","text","linkedin_message","linkedin_connection","call"],"isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"send_after_days":{"type":"integer","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].send_after_days","typeLabel":"integer"},"subject":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].subject.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].subject.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].subject","typeLabel":"string | null"},"body_html":{"type":"string","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].body_html","typeLabel":"string"},"edited":{"type":"boolean","description":"Edited for this person, so variable changes don't rewrite it.","isRequired":true,"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX].edited","typeLabel":"boolean"}},"required":["step_id","order","type","send_after_days","subject","body_html","edited"],"uniqueKey":"data.recipients.items.[INDEX].steps.items.[INDEX]","typeLabel":"object"},"description":"Only with include=content.","uniqueKey":"data.recipients.items.[INDEX].steps","typeLabel":"object[]"}},"required":["recipient_id","person_id","name","email","status","issues","overrides","override_reason","enrollment_id","first_email_estimated_at"],"uniqueKey":"data.recipients.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.recipients","typeLabel":"object[]"},"sample":{"oneOf":[{"type":"object","properties":{"recipient_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.sample.oneOf.0.recipient_id","typeLabel":"string\u003cuuid>"},"subject":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.sample.oneOf.0.subject.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.sample.oneOf.0.subject.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.sample.oneOf.0.subject","typeLabel":"string | null"},"body_text":{"type":"string","isRequired":true,"uniqueKey":"data.sample.oneOf.0.body_text","typeLabel":"string"}},"required":["recipient_id","subject","body_text"],"description":"The first ready person's first email, as plain text.","isRequired":true,"uniqueKey":"data.sample.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"recipient_id":{"type":"string","format":"uuid"},"subject":{"oneOf":[{"type":"string"},{"type":"null"}]},"body_text":{"type":"string"}},"required":["recipient_id","subject","body_text"],"description":"The first ready person's first email, as plain text.","isRequired":true,"uniqueKey":"data.sample.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.sample","typeLabel":"object | null"}},"required":["batch_id","status","version","source","campaign","sender","job","start","created_by","created_at","expires_at","started_at","progress","summary","warnings","recipients","sample"],"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["success","data"],"uniqueKey":"","typeLabel":"object"},"example":{"success":true,"data":{"batch_id":"eb8d2f41-3c7a-4e19-b5d2-7f0a1c9e6b34","status":"preparing","version":1,"source":"api","campaign":{"id":"3f9a1c27-8e4b-4d2a-b6f0-7c1e5a9d2b84","name":"Senior Backend Engineer, Monzo"},"sender":{"team_member_id":"7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20","name":"Riya Kapoor","from_email":"riya@acmetalent.com"},"job":{"id":"b21d7e4a-5c9f-4e3b-a1d6-8f2c4e7b9a13","title":"Senior Backend Engineer","pipeline_stage_id":"e4a0c3b7-1f5d-4a8e-9b2c-6d3f7a1e5c88","pipeline_stage":"Contacted"},"start":{"mode":"scheduled","at":"2026-10-19T08:00:00.000Z","timezone":"Europe/London"},"created_by":{"type":"api_key","id":"0d4b8f2e-6a1c-4e9b-b3d7-5f2a8c1e4b96","name":"Greenhouse sync"},"created_at":"2026-10-13T11:20:00.000Z","expires_at":"2026-10-14T11:20:00.000Z","started_at":null,"progress":{"done":1,"total":4},"summary":{"total":4,"preparing":3,"ready":0,"needs_input":0,"blocked":1,"excluded":0,"enrolled":0,"rejected_at_start":0},"warnings":[],"recipients":[{"recipient_id":"a1c3e5f7-2b4d-4f6a-8c0e-1d3f5b7a9c21","person_id":"2f6b9d1e-4a8c-4e3f-b7d2-1c5a9e3b7f40","name":"Sam Patel","email":"sam@gmail.com","status":"preparing","issues":[{"code":"enrolled_in_other_campaign","message":"Also in 'Q4 platform engineers' (running).","details":{"campaigns":["Q4 platform engineers"]}}],"overrides":[],"override_reason":null,"enrollment_id":null,"first_email_estimated_at":null},{"recipient_id":"b2d4f6a8-3c5e-4a7b-9d1f-2e4a6c8b0d32","person_id":"6a3e8c2f-9b1d-4f7a-a5c3-8e2b6d4f1a73","name":"Tom Reed","email":"tom@reed.dev","status":"preparing","issues":[],"overrides":[],"override_reason":null,"enrollment_id":null,"first_email_estimated_at":null},{"recipient_id":"c3e5a7b9-4d6f-4b8c-ae2a-3f5b7d9c1e43","person_id":"9c4f1a7e-2d8b-4e6c-b3a9-5f1d7c3e8b24","name":"Priya Shah","email":"priya@shah.io","status":"blocked","issues":[{"code":"unsubscribed","message":"Unsubscribed from your emails on 2 Sep 2026."}],"overrides":[],"override_reason":null,"enrollment_id":null,"first_email_estimated_at":null},{"recipient_id":"d4f6b8ca-5e7a-4c9d-bf3b-4a6c8e0d2f54","person_id":"4e8b2d6f-1a3c-4e9b-8f5d-7c2a6e1b3d95","name":"Mark Chen","email":"mark.chen@gmail.com","status":"preparing","issues":[{"code":"company_do_not_contact","message":"Works at Globex, which is marked do not contact. Override with a reason to include them.","details":{"companies":["Globex"]}},{"code":"likely_bounce","message":"This email looks risky and may bounce."}],"overrides":[],"override_reason":null,"enrollment_id":null,"first_email_estimated_at":null}],"sample":null}},"examples":{"Example":{"title":"Example","value":{"success":true,"data":{"batch_id":"eb8d2f41-3c7a-4e19-b5d2-7f0a1c9e6b34","status":"preparing","version":1,"source":"api","campaign":{"id":"3f9a1c27-8e4b-4d2a-b6f0-7c1e5a9d2b84","name":"Senior Backend Engineer, Monzo"},"sender":{"team_member_id":"7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20","name":"Riya Kapoor","from_email":"riya@acmetalent.com"},"job":{"id":"b21d7e4a-5c9f-4e3b-a1d6-8f2c4e7b9a13","title":"Senior Backend Engineer","pipeline_stage_id":"e4a0c3b7-1f5d-4a8e-9b2c-6d3f7a1e5c88","pipeline_stage":"Contacted"},"start":{"mode":"scheduled","at":"2026-10-19T08:00:00.000Z","timezone":"Europe/London"},"created_by":{"type":"api_key","id":"0d4b8f2e-6a1c-4e9b-b3d7-5f2a8c1e4b96","name":"Greenhouse sync"},"created_at":"2026-10-13T11:20:00.000Z","expires_at":"2026-10-14T11:20:00.000Z","started_at":null,"progress":{"done":1,"total":4},"summary":{"total":4,"preparing":3,"ready":0,"needs_input":0,"blocked":1,"excluded":0,"enrolled":0,"rejected_at_start":0},"warnings":[],"recipients":[{"recipient_id":"a1c3e5f7-2b4d-4f6a-8c0e-1d3f5b7a9c21","person_id":"2f6b9d1e-4a8c-4e3f-b7d2-1c5a9e3b7f40","name":"Sam Patel","email":"sam@gmail.com","status":"preparing","issues":[{"code":"enrolled_in_other_campaign","message":"Also in 'Q4 platform engineers' (running).","details":{"campaigns":["Q4 platform engineers"]}}],"overrides":[],"override_reason":null,"enrollment_id":null,"first_email_estimated_at":null},{"recipient_id":"b2d4f6a8-3c5e-4a7b-9d1f-2e4a6c8b0d32","person_id":"6a3e8c2f-9b1d-4f7a-a5c3-8e2b6d4f1a73","name":"Tom Reed","email":"tom@reed.dev","status":"preparing","issues":[],"overrides":[],"override_reason":null,"enrollment_id":null,"first_email_estimated_at":null},{"recipient_id":"c3e5a7b9-4d6f-4b8c-ae2a-3f5b7d9c1e43","person_id":"9c4f1a7e-2d8b-4e6c-b3a9-5f1d7c3e8b24","name":"Priya Shah","email":"priya@shah.io","status":"blocked","issues":[{"code":"unsubscribed","message":"Unsubscribed from your emails on 2 Sep 2026."}],"overrides":[],"override_reason":null,"enrollment_id":null,"first_email_estimated_at":null},{"recipient_id":"d4f6b8ca-5e7a-4c9d-bf3b-4a6c8e0d2f54","person_id":"4e8b2d6f-1a3c-4e9b-8f5d-7c2a6e1b3d95","name":"Mark Chen","email":"mark.chen@gmail.com","status":"preparing","issues":[{"code":"company_do_not_contact","message":"Works at Globex, which is marked do not contact. Override with a reason to include them.","details":{"companies":["Globex"]}},{"code":"likely_bounce","message":"This email looks risky and may bounce."}],"overrides":[],"override_reason":null,"enrollment_id":null,"first_email_estimated_at":null}],"sample":null}}}},"exampleType":"examples"}},"exampleType":"examples"},"01d2aa25-5a65-4ad7-8e30-d77d97759125":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"description":"Always false for error responses.","isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. \"VALIDATION_ERROR\", \"NOT_FOUND\").","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"description":"Extra facts about the error when they help you fix it, such as a limit and when it resets.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"88dbc8b8-1da7-4135-80c7-c994017d4c9d":{"description":"No access to campaigns, or the API key lacks the permission","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"description":"Always false for error responses.","isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. \"VALIDATION_ERROR\", \"NOT_FOUND\").","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"description":"Extra facts about the error when they help you fix it, such as a limit and when it resets.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"57954bb5-cbf1-4a4f-869f-525316b050ec":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"description":"Always false for error responses.","isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. \"VALIDATION_ERROR\", \"NOT_FOUND\").","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"description":"Extra facts about the error when they help you fix it, such as a limit and when it resets.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"f2115b4a-4d4e-47ff-af97-d466940524db":{"description":"The campaign is archived or has no steps, or the mailbox is disconnected (CAMPAIGN_ARCHIVED, CAMPAIGN_HAS_NO_STEPS, MAILBOX_DISCONNECTED)","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"description":"Always false for error responses.","isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. \"VALIDATION_ERROR\", \"NOT_FOUND\").","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"description":"Extra facts about the error when they help you fix it, such as a limit and when it resets.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"686c6367-a7fe-4e8f-9dd1-f520dec693bb":{"description":"Daily enrollment limit reached (DAILY_ENROLLMENT_LIMIT_REACHED), or rate limited (RATE_LIMIT_EXCEEDED)","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"description":"Always false for error responses.","isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. \"VALIDATION_ERROR\", \"NOT_FOUND\").","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"description":"Extra facts about the error when they help you fix it, such as a limit and when it resets.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"1a9eae59-5797-4dea-949d-5cd3a3ef8331":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"description":"Always false for error responses.","isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. \"VALIDATION_ERROR\", \"NOT_FOUND\").","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"description":"Extra facts about the error when they help you fix it, such as a limit and when it resets.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["success","error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"5625a650-543e-4dde-bdd4-529bc2359650":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Authenticate with a Bearer token: API key, OAuth token, or session token.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"20e81692-0e88-4037-93ca-f9780d101506":{"url":"https://api.stardex.ai","description":"Production API server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Authenticate with a Bearer token: API key, OAuth token, or session token.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Authenticate with a Bearer token: API key, OAuth token, or session token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi-v1.json"},"subdomain":"stardex","siteName":"Stardex Help Docs","title":"Prepare an enrollment - Stardex Help Docs","navMaps":{"firstHrefInVersion":{"v1":{"href":"/api-reference/campaigns/prepare-an-enrollment","matchLevel":0},"v0 (Deprecated)":{"href":"/api-reference/introduction","matchLevel":3}},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T21:56:34.383Z","originalFileLocation":"api-reference/campaigns/prepare-an-enrollment.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 draft enrollment batch: checks every person, fills their variables and writes each person\u0026#x27;s final emails. Nothing is enrolled or sent until you call start. Each person comes back ready, needs_input or blocked with the reasons in issues; fix people with PATCH .../recipients/{recipient_id}. When the campaign uses AI variables the batch is preparing while they are written; read it again until it is ready. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (429 DAILY_ENROLLMENT_LIMIT_REACHED). Needs campaigns:enroll. Signed-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Stardex Help Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stardex/joPRbrJhRInrO3yB/_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/stardex/joPRbrJhRInrO3yB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stardex/joPRbrJhRInrO3yB/_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/stardex/joPRbrJhRInrO3yB/_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/stardex/joPRbrJhRInrO3yB/_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/stardex/joPRbrJhRInrO3yB/_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/stardex/joPRbrJhRInrO3yB/_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/stardex/joPRbrJhRInrO3yB/_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/stardex/joPRbrJhRInrO3yB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Prepare an enrollment - Stardex Help Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a draft enrollment batch: checks every person, fills their variables and writes each person\u0026#x27;s final emails. Nothing is enrolled or sent until you call start. Each person comes back ready, needs_input or blocked with the reasons in issues; fix people with PATCH .../recipients/{recipient_id}. When the campaign uses AI variables the batch is preparing while they are written; read it again until it is ready. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (429 DAILY_ENROLLMENT_LIMIT_REACHED). Needs campaigns:enroll. Signed-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Stardex Help Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://stardex.mintlify.app/_mintlify/api/og/v2?division=Campaigns\u0026amp;title=Prepare+an+enrollment\u0026amp;description=Creates+a+draft+enrollment+batch%3A+checks+every+person%2C+fills+their+variables+and+writes+each+person%27s+final+emails.+Nothing+is+enrolled+or+sent+until+you+call+s\u0026amp;theme=2ff938ec1d7da32d63cb34ec\u0026amp;signature=3cd90bf93005c6a67e0bb82494179d90757e92162dbf6cd3382d1e7134d8ee35\">\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=\"Prepare an enrollment - Stardex Help Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a draft enrollment batch: checks every person, fills their variables and writes each person\u0026#x27;s final emails. Nothing is enrolled or sent until you call start. Each person comes back ready, needs_input or blocked with the reasons in issues; fix people with PATCH .../recipients/{recipient_id}. When the campaign uses AI variables the batch is preparing while they are written; read it again until it is ready. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (429 DAILY_ENROLLMENT_LIMIT_REACHED). Needs campaigns:enroll. Signed-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://stardex.mintlify.app/_mintlify/api/og/v2?division=Campaigns\u0026amp;title=Prepare+an+enrollment\u0026amp;description=Creates+a+draft+enrollment+batch%3A+checks+every+person%2C+fills+their+variables+and+writes+each+person%27s+final+emails.+Nothing+is+enrolled+or+sent+until+you+call+s\u0026amp;theme=2ff938ec1d7da32d63cb34ec\u0026amp;signature=3cd90bf93005c6a67e0bb82494179d90757e92162dbf6cd3382d1e7134d8ee35\">\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/stardex/joPRbrJhRInrO3yB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Stardex Help Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5853f7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/campaigns/prepare-an-enrollment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.stardex.com/#organization\",\"name\":\"Stardex Help Docs\",\"url\":\"https://docs.stardex.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/stardex/Unebva7RlCeyAgPy/logo/light.svg?fit=max\u0026auto=format\u0026n=Unebva7RlCeyAgPy\u0026q=85\u0026s=6a32bc87265a1562f0ee3793cb4c66e7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.stardex.com#website\",\"name\":\"Stardex Help Docs\",\"url\":\"https://docs.stardex.com\",\"publisher\":{\"@id\":\"https://docs.stardex.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment#webpage\",\"url\":\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment\",\"name\":\"Prepare an enrollment\",\"description\":\"Creates a draft enrollment batch: checks every person, fills their variables and writes each person's final emails. Nothing is enrolled or sent until you call start. Each person comes back ready, needs_input or blocked with the reasons in issues; fix people with PATCH .../recipients/{recipient_id}. When the campaign uses AI variables the batch is preparing while they are written; read it again until it is ready. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (429 DAILY_ENROLLMENT_LIMIT_REACHED). Needs campaigns:enroll. Signed-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.\",\"dateModified\":\"2026-10-25T21:56:34.383Z\",\"isPartOf\":{\"@id\":\"https://docs.stardex.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Campaigns\",\"item\":\"https://docs.stardex.com/api-reference/campaigns/search-campaigns\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prepare an enrollment\",\"item\":\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment#apireference\",\"headline\":\"Prepare an enrollment\",\"name\":\"Prepare an enrollment\",\"description\":\"Creates a draft enrollment batch: checks every person, fills their variables and writes each person's final emails. Nothing is enrolled or sent until you call start. Each person comes back ready, needs_input or blocked with the reasons in issues; fix people with PATCH .../recipients/{recipient_id}. When the campaign uses AI variables the batch is preparing while they are written; read it again until it is ready. A draft expires 24 hours after its last change. With API keys, MCP and Ask Dex together, a workspace can enroll up to 500 people in 24 hours by default (429 DAILY_ENROLLMENT_LIMIT_REACHED). Needs campaigns:enroll. Signed-in users need access to campaigns in their role. API keys need the campaigns permission named on each endpoint.\",\"url\":\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment\",\"mainEntityOfPage\":{\"@id\":\"https://docs.stardex.com/api-reference/campaigns/prepare-an-enrollment#webpage\"},\"dateModified\":\"2026-10-25T21:56:34.383Z\",\"publisher\":{\"@id\":\"https://docs.stardex.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.stardex.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Stardex Help Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Stardex Help Docs","nav":{"global":{"anchors":[{"anchor":"Home page","icon":"book-open-cover","href":"https://www.stardex.com"},{"anchor":"Blog","icon":"newspaper","href":"https://www.stardex.com/blog"}]},"tabs":[{"tab":"Guides","hidden":true,"pages":[{"title":"Guides","href":"/help-center/ai-activity-updates"}]},{"tab":"Help Center","pages":[{"title":"Help Center","href":"/help-center"}]},{"tab":"Changelog","hidden":true,"pages":[{"title":"Changelog","href":"/changelog-stardex"}]},{"tab":"API Reference","versions":[{"version":"v1","groups":[{"group":"API Documentation","pages":[{"title":"Introduction","href":"/api-reference/introduction-v1"},{"title":"Enrolling people in campaigns","href":"/api-reference/campaigns-guide"}]},{"group":"Activity Reports","pages":[{"title":"Generate an activity \u0026 stage-change report","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/activity-reports","href":"/api-reference/activity-reports/generate-an-activity-\u0026-stage-change-report"}]},{"group":"Automations","pages":[{"title":"Search automations","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/automations/search","href":"/api-reference/automations/search-automations"},{"title":"List automation trigger types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/automations/trigger-types","href":"/api-reference/automations/list-automation-trigger-types"},{"title":"List automation action types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/automations/action-types","href":"/api-reference/automations/list-automation-action-types"},{"title":"List automation run statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/automations/run-statuses","href":"/api-reference/automations/list-automation-run-statuses"},{"title":"Get automation by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/automations/{id}","href":"/api-reference/automations/get-automation-by-id"},{"title":"Archive automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/automations/{id}","href":"/api-reference/automations/archive-automation"},{"title":"Update automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/automations/{id}","href":"/api-reference/automations/update-automation"},{"title":"Create automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/automations","href":"/api-reference/automations/create-automation"},{"title":"Search automation runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/automations/{id}/runs/search","href":"/api-reference/automations/search-automation-runs"},{"title":"Get automation run by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/automations/runs/{runId}","href":"/api-reference/automations/get-automation-run-by-id"}]},{"group":"Calendar Meetings","pages":[{"title":"List calendar meetings","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/calendar-meetings","href":"/api-reference/calendar-meetings/list-calendar-meetings"},{"title":"Get calendar meeting by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/calendar-meetings/{id}","href":"/api-reference/calendar-meetings/get-calendar-meeting-by-id"}]},{"group":"Campaigns","pages":[{"title":"Search campaigns","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/search","href":"/api-reference/campaigns/search-campaigns"},{"title":"List campaign types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/campaigns/types","href":"/api-reference/campaigns/list-campaign-types"},{"title":"List campaign variables","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/campaigns/variables","href":"/api-reference/campaigns/list-campaign-variables"},{"title":"List sending mailboxes","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/campaigns/mailboxes","href":"/api-reference/campaigns/list-sending-mailboxes"},{"title":"Get campaign by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/campaigns/{id}","href":"/api-reference/campaigns/get-campaign-by-id"},{"title":"Update campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/campaigns/{id}","href":"/api-reference/campaigns/update-campaign"},{"title":"Create campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns","href":"/api-reference/campaigns/create-campaign"},{"title":"Add campaign step","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/steps","href":"/api-reference/campaigns/add-campaign-step"},{"title":"Delete campaign step","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/campaigns/{id}/steps/{step_id}","href":"/api-reference/campaigns/delete-campaign-step"},{"title":"Update campaign step","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/campaigns/{id}/steps/{step_id}","href":"/api-reference/campaigns/update-campaign-step"},{"title":"Reorder campaign steps","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/steps/reorder","href":"/api-reference/campaigns/reorder-campaign-steps"},{"title":"List enrollment status groups","description":"The status groups you can filter enrollees by in `POST /v1/campaigns/{id}/enrollments/search`. Needs `campaigns:read`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/campaigns/enrollment-statuses","href":"/api-reference/campaigns/list-enrollment-status-groups"},{"title":"Prepare an enrollment","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/enrollment-batches","href":"/api-reference/campaigns/prepare-an-enrollment"},{"title":"Get an enrollment batch","description":"The batch's people with their status and issues, warnings, one sample email, and the `version` and `summary.ready` to pass to start. Add `include=content` for every person's final steps. Needs `campaigns:read`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/campaigns/{id}/enrollment-batches/{batch_id}","href":"/api-reference/campaigns/get-an-enrollment-batch"},{"title":"Get one person in a batch","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/campaigns/{id}/enrollment-batches/{batch_id}/recipients/{recipient_id}","href":"/api-reference/campaigns/get-one-person-in-a-batch"},{"title":"Change one person in a batch","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/campaigns/{id}/enrollment-batches/{batch_id}/recipients/{recipient_id}","href":"/api-reference/campaigns/change-one-person-in-a-batch"},{"title":"Add people to a batch","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/enrollment-batches/{batch_id}/recipients","href":"/api-reference/campaigns/add-people-to-a-batch"},{"title":"Start an enrollment","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/enrollment-batches/{batch_id}/start","href":"/api-reference/campaigns/start-an-enrollment"},{"title":"Discard an enrollment batch","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/enrollment-batches/{batch_id}/discard","href":"/api-reference/campaigns/discard-an-enrollment-batch"},{"title":"Search enrollees","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/enrollments/search","href":"/api-reference/campaigns/search-enrollees"},{"title":"Get an enrollee","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/campaigns/{id}/enrollments/{enrollment_id}","href":"/api-reference/campaigns/get-an-enrollee"},{"title":"Edit an enrollee's upcoming step","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/campaigns/{id}/enrollments/{enrollment_id}/steps/{step_id}","href":"/api-reference/campaigns/edit-an-enrollees-upcoming-step"},{"title":"Stop enrollees","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/campaigns/{id}/enrollments/stop","href":"/api-reference/campaigns/stop-enrollees"}]},{"group":"Candidates","pages":[{"title":"Update candidate stage","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/candidates/update-stage","href":"/api-reference/candidates/update-candidate-stage"},{"title":"List rejection reasons","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/candidates/rejection-reasons","href":"/api-reference/candidates/list-rejection-reasons"},{"title":"Get candidate by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/candidates/{id}","href":"/api-reference/candidates/get-candidate-by-id"},{"title":"Remove candidate from job","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/candidates/{id}","href":"/api-reference/candidates/remove-candidate-from-job"}]},{"group":"Client Contacts","pages":[{"title":"List client contact statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/client-contacts/statuses","href":"/api-reference/client-contacts/list-client-contact-statuses"},{"title":"List client contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/client-contacts","href":"/api-reference/client-contacts/list-client-contacts"},{"title":"Create client contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/client-contacts","href":"/api-reference/client-contacts/create-client-contact"},{"title":"Get client contact by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/client-contacts/{id}","href":"/api-reference/client-contacts/get-client-contact-by-id"},{"title":"Update client contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/client-contacts/{id}","href":"/api-reference/client-contacts/update-client-contact"}]},{"group":"Companies","pages":[{"title":"List company client statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/companies/statuses","href":"/api-reference/companies/list-company-client-statuses"},{"title":"Search companies","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/companies/search","href":"/api-reference/companies/search-companies"},{"title":"Create or update company","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/companies","href":"/api-reference/companies/create-or-update-company"},{"title":"Get company by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/companies/{id}","href":"/api-reference/companies/get-company-by-id"},{"title":"Update company","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/companies/{id}","href":"/api-reference/companies/update-company"},{"title":"List company document types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/companies/document-types","href":"/api-reference/companies/list-company-document-types"},{"title":"Get company documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/companies/{id}/documents","href":"/api-reference/companies/get-company-documents"},{"title":"Upload company document","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/companies/{id}/documents","href":"/api-reference/companies/upload-company-document"}]},{"group":"Company Activities","pages":[{"title":"List company activity types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/company-activities/types","href":"/api-reference/company-activities/list-company-activity-types"},{"title":"List company activities","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/company-activities","href":"/api-reference/company-activities/list-company-activities"},{"title":"Create company activity (note)","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/company-activities","href":"/api-reference/company-activities/create-company-activity-note"},{"title":"Get company activity by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/company-activities/{id}","href":"/api-reference/company-activities/get-company-activity-by-id"},{"title":"Update company activity (note) by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/company-activities/{id}","href":"/api-reference/company-activities/update-company-activity-note-by-id"}]},{"group":"Company Insights","pages":[{"title":"List AI-extracted insights for a company","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/company-insights","href":"/api-reference/company-insights/list-ai-extracted-insights-for-a-company"},{"title":"Edit content or dismiss/restore an insight","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/company-insights/{id}","href":"/api-reference/company-insights/edit-content-or-dismissrestore-an-insight"},{"title":"Dismiss multiple insights at once","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/company-insights/bulk-dismiss","href":"/api-reference/company-insights/dismiss-multiple-insights-at-once"},{"title":"Manually extract insights from an activity","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/company-insights/trigger","href":"/api-reference/company-insights/manually-extract-insights-from-an-activity"}]},{"group":"Custom Fields","pages":[{"title":"Get person custom field definitions","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/custom-fields/persons","href":"/api-reference/custom-fields/get-person-custom-field-definitions"},{"title":"Get company custom field definitions","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/custom-fields/companies","href":"/api-reference/custom-fields/get-company-custom-field-definitions"},{"title":"Get job custom field definitions","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/custom-fields/jobs","href":"/api-reference/custom-fields/get-job-custom-field-definitions"},{"title":"Get deal custom field definitions","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/custom-fields/deals","href":"/api-reference/custom-fields/get-deal-custom-field-definitions"}]},{"group":"Deal Activities","pages":[{"title":"List deal activities","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/deal-activities","href":"/api-reference/deal-activities/list-deal-activities"},{"title":"Create deal activity (note)","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/deal-activities","href":"/api-reference/deal-activities/create-deal-activity-note"},{"title":"Get deal activity by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/deal-activities/{id}","href":"/api-reference/deal-activities/get-deal-activity-by-id"},{"title":"Update deal activity (note) by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/deal-activities/{id}","href":"/api-reference/deal-activities/update-deal-activity-note-by-id"}]},{"group":"Deals","pages":[{"title":"List deal statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/deals/statuses","href":"/api-reference/deals/list-deal-statuses"},{"title":"Search deals","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/deals/search","href":"/api-reference/deals/search-deals"},{"title":"Get deal by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/deals/{id}","href":"/api-reference/deals/get-deal-by-id"},{"title":"Archive deal","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/deals/{id}","href":"/api-reference/deals/archive-deal"},{"title":"Update deal","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/deals/{id}","href":"/api-reference/deals/update-deal"},{"title":"Create deal","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/deals","href":"/api-reference/deals/create-deal"}]},{"group":"Job Activities","pages":[{"title":"List job activities","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/job-activities","href":"/api-reference/job-activities/list-job-activities"},{"title":"Create job activity (note)","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/job-activities","href":"/api-reference/job-activities/create-job-activity-note"},{"title":"Get job activity by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/job-activities/{id}","href":"/api-reference/job-activities/get-job-activity-by-id"},{"title":"Update job activity (note) by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/job-activities/{id}","href":"/api-reference/job-activities/update-job-activity-note-by-id"}]},{"group":"Job Offers","pages":[{"title":"List job offer statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/job-offers/statuses","href":"/api-reference/job-offers/list-job-offer-statuses"},{"title":"List job offers","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/job-offers","href":"/api-reference/job-offers/list-job-offers"}]},{"group":"Jobs","pages":[{"title":"List jobs (deprecated)","deprecated":true,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs","href":"/api-reference/jobs/list-jobs-deprecated"},{"title":"Create job","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/jobs","href":"/api-reference/jobs/create-job"},{"title":"Search jobs","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/jobs/search","href":"/api-reference/jobs/search-jobs"},{"title":"Get job by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs/{id}","href":"/api-reference/jobs/get-job-by-id"},{"title":"Update job","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/jobs/{id}","href":"/api-reference/jobs/update-job"},{"title":"List job candidates","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs/{id}/candidates","href":"/api-reference/jobs/list-job-candidates"},{"title":"List job applicants","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs/{id}/applicants","href":"/api-reference/jobs/list-job-applicants"},{"title":"List job document types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs/document-types","href":"/api-reference/jobs/list-job-document-types"},{"title":"Get job documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs/{id}/documents","href":"/api-reference/jobs/get-job-documents"},{"title":"Upload job document","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/jobs/{id}/documents","href":"/api-reference/jobs/upload-job-document"},{"title":"Add job target companies","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/jobs/{id}/target-companies","href":"/api-reference/jobs/add-job-target-companies"},{"title":"Remove job target companies","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/jobs/{id}/target-companies","href":"/api-reference/jobs/remove-job-target-companies"},{"title":"List job team member roles","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs/team-member-roles","href":"/api-reference/jobs/list-job-team-member-roles"},{"title":"List job statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs/statuses","href":"/api-reference/jobs/list-job-statuses"},{"title":"List pipeline stages","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/jobs/pipeline-stages","href":"/api-reference/jobs/list-pipeline-stages"}]},{"group":"Lists","pages":[{"title":"Search lists","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/lists/search","href":"/api-reference/lists/search-lists"},{"title":"Get list by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/lists/{id}","href":"/api-reference/lists/get-list-by-id"},{"title":"Create list","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/lists","href":"/api-reference/lists/create-list"},{"title":"Add list items","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/lists/{id}/items","href":"/api-reference/lists/add-list-items"},{"title":"Remove list items","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/lists/{id}/items","href":"/api-reference/lists/remove-list-items"}]},{"group":"Meeting Recordings","pages":[{"title":"List meeting recordings","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/meeting-recordings","href":"/api-reference/meeting-recordings/list-meeting-recordings"},{"title":"Get meeting recording by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/meeting-recordings/{id}","href":"/api-reference/meeting-recordings/get-meeting-recording-by-id"}]},{"group":"Person Activities","pages":[{"title":"List person activity types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/person-activities/types","href":"/api-reference/person-activities/list-person-activity-types"},{"title":"Create person activity","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/person-activities","href":"/api-reference/person-activities/create-person-activity"},{"title":"Get person activity by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/person-activities/{id}","href":"/api-reference/person-activities/get-person-activity-by-id"},{"title":"Delete person activity by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/person-activities/{id}","href":"/api-reference/person-activities/delete-person-activity-by-id"},{"title":"Update person activity by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/person-activities/{id}","href":"/api-reference/person-activities/update-person-activity-by-id"}]},{"group":"Persons","pages":[{"title":"List person reference types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/persons/reference-types","href":"/api-reference/persons/list-person-reference-types"},{"title":"Create person reference","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/{id}/references","href":"/api-reference/persons/create-person-reference"},{"title":"Delete person reference","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/persons/{id}/references/{reference_id}","href":"/api-reference/persons/delete-person-reference"},{"title":"Update person reference","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/persons/{id}/references/{reference_id}","href":"/api-reference/persons/update-person-reference"},{"title":"List persons (deprecated)","deprecated":true,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/persons","href":"/api-reference/persons/list-persons-deprecated"},{"title":"Create person","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons","href":"/api-reference/persons/create-person"},{"title":"Advanced person search","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/search","href":"/api-reference/persons/advanced-person-search"},{"title":"Get person by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/persons/{id}","href":"/api-reference/persons/get-person-by-id"},{"title":"Update person","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/persons/{id}","href":"/api-reference/persons/update-person"},{"title":"Create person compensation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/{id}/compensations","href":"/api-reference/persons/create-person-compensation"},{"title":"Delete person compensation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/persons/{id}/compensations/{compensation_id}","href":"/api-reference/persons/delete-person-compensation"},{"title":"Update person compensation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/persons/{id}/compensations/{compensation_id}","href":"/api-reference/persons/update-person-compensation"},{"title":"Get unified person activities","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/persons/{id}/activities","href":"/api-reference/persons/get-unified-person-activities"},{"title":"Get person documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/persons/{id}/documents","href":"/api-reference/persons/get-person-documents"},{"title":"Upload person document","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/{id}/documents","href":"/api-reference/persons/upload-person-document"},{"title":"List person document types","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/persons/document-types","href":"/api-reference/persons/list-person-document-types"},{"title":"Set preferred email (bulk)","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/preferred-email","href":"/api-reference/persons/set-preferred-email-bulk"},{"title":"Set preferred phone (bulk)","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/preferred-phone","href":"/api-reference/persons/set-preferred-phone-bulk"},{"title":"Mark emails as bounced (bulk)","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/email-bounced","href":"/api-reference/persons/mark-emails-as-bounced-bulk"},{"title":"Remove emails (bulk)","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/emails/delete","href":"/api-reference/persons/remove-emails-bulk"},{"title":"Set preferred email","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/{id}/preferred-email","href":"/api-reference/persons/set-preferred-email"},{"title":"Set preferred phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/{id}/preferred-phone","href":"/api-reference/persons/set-preferred-phone"},{"title":"Enrich person contact details","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/persons/{id}/enrich","href":"/api-reference/persons/enrich-person-contact-details"}]},{"group":"Scorecards","pages":[{"title":"Search scorecard templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/scorecard-templates/search","href":"/api-reference/scorecards/search-scorecard-templates"},{"title":"Get scorecard template by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/scorecard-templates/{id}","href":"/api-reference/scorecards/get-scorecard-template-by-id"},{"title":"Archive scorecard template","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/scorecard-templates/{id}","href":"/api-reference/scorecards/archive-scorecard-template"},{"title":"Update scorecard template","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/scorecard-templates/{id}","href":"/api-reference/scorecards/update-scorecard-template"},{"title":"Create scorecard template","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/scorecard-templates","href":"/api-reference/scorecards/create-scorecard-template"},{"title":"Search scorecards","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/scorecards/search","href":"/api-reference/scorecards/search-scorecards"},{"title":"Get scorecard by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/scorecards/{id}","href":"/api-reference/scorecards/get-scorecard-by-id"},{"title":"Delete scorecard","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/scorecards/{id}","href":"/api-reference/scorecards/delete-scorecard"},{"title":"Update scorecard","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/scorecards/{id}","href":"/api-reference/scorecards/update-scorecard"},{"title":"Create scorecard","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/scorecards","href":"/api-reference/scorecards/create-scorecard"}]},{"group":"Tasks","pages":[{"title":"Search tasks","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/tasks/search","href":"/api-reference/tasks/search-tasks"},{"title":"Get task by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/tasks/{id}","href":"/api-reference/tasks/get-task-by-id"},{"title":"Delete task","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json delete /v1/tasks/{id}","href":"/api-reference/tasks/delete-task"},{"title":"Update task","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/tasks/{id}","href":"/api-reference/tasks/update-task"},{"title":"Create task","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json post /v1/tasks","href":"/api-reference/tasks/create-task"}]},{"group":"Team Capacity","pages":[{"title":"Get the Team Capacity report","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/team-capacity","href":"/api-reference/team-capacity/get-the-team-capacity-report"},{"title":"Update Team Capacity settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json patch /v1/team-capacity/settings","href":"/api-reference/team-capacity/update-team-capacity-settings"}]},{"group":"Team Members","pages":[{"title":"List team members","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/team-members","href":"/api-reference/team-members/list-team-members"},{"title":"Get team member by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/team-members/{id}","href":"/api-reference/team-members/get-team-member-by-id"}]},{"group":"Webhooks","pages":[{"title":"Get webhook management portal URL","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.json get /v1/webhooks/portal","href":"/api-reference/webhooks/get-webhook-management-portal-url"}]}]},{"version":"v0 (Deprecated)","pages":[{"title":"v0 (Deprecated)","href":"/api-reference/introduction"}]}]},{"tab":"Zapier API Reference","hidden":true,"pages":[{"title":"Zapier API Reference","href":"/api-reference/zapier-introduction"}]}]},"title":"Prepare an enrollment - Stardex Help Docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}