{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid"
}
}
Intakes
Get the intake form for products
Vita Clinic only. Requires the intakes:read scope. Returns the intake form a patient fills in for the
products you name, so your site can show the same questions our own link does. Nothing about a patient is read
or stored.
Every product has its own form. Products that use different forms get one combined form: its sections
run form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears
once, so the patient never answers it twice. The same set of products always gives the same form_key. The
form is the same for a test key and a live key.
Use stage=followup for the follow-up form a patient answers before a refill. Products that do not need an
intake are listed with needs_intake: false. When no product form applies (the standard intake is used, a
product has no confirmed form yet, or forms are not switched on for your account) form is null, reason
says why, and note points to the standard intake (POST /intakes).
Every question lists its attributes (kind, options, required, answer_format, conditional, pii). The
full list for every form, including when each question is asked, is in the
Intake forms reference.
Draw the questions from sections, then send the answers to
Evaluate an intake form after each step to learn which
questions show next and what is still missing.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"VitaRelay","colors":{"primary":"#2266E6","light":"#4DA6FF","dark":"#071B3A"},"logo":{"light":"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026auto=format\u0026n=WXEmFrJi4K7tSXcf\u0026q=85\u0026s=dad2bdd7a33cbbcf4acf3c514efe4047","dark":"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo-light.png?fit=max\u0026auto=format\u0026n=WXEmFrJi4K7tSXcf\u0026q=85\u0026s=840ddd8ffac0c531b6eeff031de0f833"},"favicon":"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026auto=format\u0026n=WXEmFrJi4K7tSXcf\u0026q=85\u0026s=dad2bdd7a33cbbcf4acf3c514efe4047","api":{"openapi":"openapi.yaml","playground":{"display":"interactive"},"mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":"https://vitarelay.com/api/public/v1"}},"navbar":{"links":[],"primary":{"type":"button","label":"Book a Call","href":"https://vitarelay.com/contact"}},"footer":{"socials":{"website":"https://vitarelay.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vitarelay","hasAudioNarration":false,"actualSubdomain":"vitarelay","customDomains":["api.vitarelay.com"],"gitSource":{"type":"github","owner":"pet3r96","repo":"vr-main","deployBranch":"main","contentDirectory":"docs/vitarelay-docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af62992fc4ef25324e97a40","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"Documentation","count":127},{"language":"default","tag":"API Reference","count":97},{"language":"default","tag":"VitaClinic API","count":77},{"language":"default","tag":"Pharmacy API","count":25},{"language":"default","tag":"Partner API","count":20},{"language":"default","tag":"Getting Started","count":17},{"language":"default","tag":"Patients","count":13},{"language":"default","tag":"Customers API Reference","count":10},{"language":"default","tag":"Inventory API Reference","count":10},{"language":"default","tag":"Orders","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/intakes/get-the-intake-form-for-products","slug":"/api-reference/intakes/get-the-intake-form-for-products","pageMetadata":{"title":"Get the intake form for products","description":"**Vita Clinic only.** Requires the `intakes:read` scope. Returns the intake form a patient fills in for the\nproducts you name, so your site can show the same questions our own link does. Nothing about a patient is read\nor stored.\n\nEvery product has its own form. Products that use **different** forms get **one combined form**: its sections\nrun form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears\nonce, so the patient never answers it twice. The same set of products always gives the same `form_key`. The\nform is the same for a test key and a live key.\n\nUse `stage=followup` for the follow-up form a patient answers before a refill. Products that do not need an\nintake are listed with `needs_intake: false`. When no product form applies (the standard intake is used, a\nproduct has no confirmed form yet, or forms are not switched on for your account) `form` is `null`, `reason`\nsays why, and `note` points to the standard intake (`POST /intakes`).\n\nEvery question lists its attributes (`kind`, `options`, `required`, `answer_format`, `conditional`, `pii`). The\nfull list for every form, including when each question is asked, is in the\n[Intake forms reference](/getting-started/intake-forms-reference).\n\nDraw the questions from `sections`, then send the answers to\n[Evaluate an intake form](/api-reference/intakes/evaluate-an-intake-form) after each step to learn which\nquestions show next and what is still missing.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /intake-forms","href":"/api-reference/intakes/get-the-intake-form-for-products","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 a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Vita Clinic only.\"\n }), \" Requires the \", _jsx(_components.code, {\n children: \"intakes:read\"\n }), \" scope. Returns the intake form a patient fills in for the\\nproducts you name, so your site can show the same questions our own link does. Nothing about a patient is read\\nor stored.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Every product has its own form. Products that use \", _jsx(_components.strong, {\n children: \"different\"\n }), \" forms get \", _jsx(_components.strong, {\n children: \"one combined form\"\n }), \": its sections\\nrun form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears\\nonce, so the patient never answers it twice. The same set of products always gives the same \", _jsx(_components.code, {\n children: \"form_key\"\n }), \". The\\nform is the same for a test key and a live key.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Use \", _jsx(_components.code, {\n children: \"stage=followup\"\n }), \" for the follow-up form a patient answers before a refill. Products that do not need an\\nintake are listed with \", _jsx(_components.code, {\n children: \"needs_intake: false\"\n }), \". When no product form applies (the standard intake is used, a\\nproduct has no confirmed form yet, or forms are not switched on for your account) \", _jsx(_components.code, {\n children: \"form\"\n }), \" is \", _jsx(_components.code, {\n children: \"null\"\n }), \", \", _jsx(_components.code, {\n children: \"reason\"\n }), \"\\nsays why, and \", _jsx(_components.code, {\n children: \"note\"\n }), \" points to the standard intake (\", _jsx(_components.code, {\n children: \"POST /intakes\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Every question lists its attributes (\", _jsx(_components.code, {\n children: \"kind\"\n }), \", \", _jsx(_components.code, {\n children: \"options\"\n }), \", \", _jsx(_components.code, {\n children: \"required\"\n }), \", \", _jsx(_components.code, {\n children: \"answer_format\"\n }), \", \", _jsx(_components.code, {\n children: \"conditional\"\n }), \", \", _jsx(_components.code, {\n children: \"pii\"\n }), \"). The\\nfull list for every form, including when each question is asked, is in the\\n\", _jsx(_components.a, {\n href: \"/getting-started/intake-forms-reference\",\n children: \"Intake forms reference\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Draw the questions from \", _jsx(_components.code, {\n children: \"sections\"\n }), \", then send the answers to\\n\", _jsx(_components.a, {\n href: \"/api-reference/intakes/evaluate-an-intake-form\",\n children: \"Evaluate an intake form\"\n }), \" after each step to learn which\\nquestions show next and what is still missing.\"]\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":"Get the intake form for products","description":"**Vita Clinic only.** Requires the `intakes:read` scope. Returns the intake form a patient fills in for the\nproducts you name, so your site can show the same questions our own link does. Nothing about a patient is read\nor stored.\n\nEvery product has its own form. Products that use **different** forms get **one combined form**: its sections\nrun form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears\nonce, so the patient never answers it twice. The same set of products always gives the same `form_key`. The\nform is the same for a test key and a live key.\n\nUse `stage=followup` for the follow-up form a patient answers before a refill. Products that do not need an\nintake are listed with `needs_intake: false`. When no product form applies (the standard intake is used, a\nproduct has no confirmed form yet, or forms are not switched on for your account) `form` is `null`, `reason`\nsays why, and `note` points to the standard intake (`POST /intakes`).\n\nEvery question lists its attributes (`kind`, `options`, `required`, `answer_format`, `conditional`, `pii`). The\nfull list for every form, including when each question is asked, is in the\n[Intake forms reference](/getting-started/intake-forms-reference).\n\nDraw the questions from `sections`, then send the answers to\n[Evaluate an intake form](/api-reference/intakes/evaluate-an-intake-form) after each step to learn which\nquestions show next and what is still missing.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /intake-forms","href":"/api-reference/intakes/get-the-intake-form-for-products","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Intakes"],"summary":"Get the intake form for products","description":"**Vita Clinic only.** Requires the `intakes:read` scope. Returns the intake form a patient fills in for the\nproducts you name, so your site can show the same questions our own link does. Nothing about a patient is read\nor stored.\n\nEvery product has its own form. Products that use **different** forms get **one combined form**: its sections\nrun form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears\nonce, so the patient never answers it twice. The same set of products always gives the same `form_key`. The\nform is the same for a test key and a live key.\n\nUse `stage=followup` for the follow-up form a patient answers before a refill. Products that do not need an\nintake are listed with `needs_intake: false`. When no product form applies (the standard intake is used, a\nproduct has no confirmed form yet, or forms are not switched on for your account) `form` is `null`, `reason`\nsays why, and `note` points to the standard intake (`POST /intakes`).\n\nEvery question lists its attributes (`kind`, `options`, `required`, `answer_format`, `conditional`, `pii`). The\nfull list for every form, including when each question is asked, is in the\n[Intake forms reference](/getting-started/intake-forms-reference).\n\nDraw the questions from `sections`, then send the answers to\n[Evaluate an intake form](/api-reference/intakes/evaluate-an-intake-form) after each step to learn which\nquestions show next and what is still missing.\n","operationId":"getIntakeForms","parameters":["76c827e2-9dd3-49e9-a0c3-cb0123f8fb12","d28f415a-c487-4b11-a3cc-aafc43e64386"],"responses":{"200":"29622f92-6dfd-4948-b52b-8094a6719c12","401":"b0fa0d48-df57-4877-957d-8b7abe8035e0","404":"fa2c60da-bf89-4139-8270-600d8ae4a806","422":"5652661a-d69c-4ca1-b1f7-cea8a74a3d7c"},"method":"get","type":"path","servers":["99e3b59c-dc63-47bf-bffb-070f0be07326"],"security":["dcc604bc-462f-440f-88d7-39631ae87d5c"],"path":"/intake-forms","baseUrlOptions":["https://vitarelay.com/api/public/v1"],"title":"Get the intake form for products","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"76c827e2-9dd3-49e9-a0c3-cb0123f8fb12":{"name":"product_ids","in":"query","required":true,"description":"Catalog product ids, comma separated (at most 25).","schema":{"type":"string","isRequired":true,"description":"Catalog product ids, comma separated (at most 25).","uniqueKey":"","typeLabel":"string"}},"d28f415a-c487-4b11-a3cc-aafc43e64386":{"name":"stage","in":"query","required":false,"schema":{"type":"string","enum":["initial","followup"],"default":"initial","isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"responses":{"29622f92-6dfd-4948-b52b-8094a6719c12":{"description":"The form for these products, or null with the reason.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"stage":{"type":"string","enum":["initial","followup"],"uniqueKey":"data.stage","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","enum":["single_form","combined","no_products","unconfirmed","standard","mixed","not_enabled"],"uniqueKey":"data.reason","typeLabel":"enum\u003cstring>"},"note":{"oneOf":[{"type":"string","uniqueKey":"data.note.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.note","typeLabel":"string | null"},"products":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"string","format":"uuid","uniqueKey":"data.products.items.[INDEX].product_id","typeLabel":"string\u003cuuid>"},"needs_intake":{"type":"boolean","uniqueKey":"data.products.items.[INDEX].needs_intake","typeLabel":"boolean"},"form_key":{"oneOf":[{"type":"string","uniqueKey":"data.products.items.[INDEX].form_key.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.products.items.[INDEX].form_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.products.items.[INDEX].form_key","typeLabel":"string | null"},"schedule":{"oneOf":[{"type":"object","description":"How to time this product's intakes and refills, from the fulfillment matrix. `null` when the product needs no intake or has no mapping yet.","properties":{"intake_valid_days":{"type":"integer","description":"Days an initial intake keeps counting for new orders of this product.","uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.intake_valid_days","typeLabel":"integer"},"followup":{"type":"object","properties":{"form_key":{"oneOf":[{"type":"string","uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.followup.form_key.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.followup.form_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.followup.form_key","typeLabel":"string | null"},"ask_days_before_ship":{"type":"integer","description":"The follow-up is asked this many days before the next fill can ship.","uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.followup.ask_days_before_ship","typeLabel":"integer"},"needed_only_when_refills_used_up":{"type":"boolean","description":"No follow-up is asked while the prescription still has refills.","uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.followup.needed_only_when_refills_used_up","typeLabel":"boolean"}},"uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.followup","typeLabel":"object"},"cadences":{"type":"object","description":"One entry per refill cadence (`monthly`, `quarterly`, `semi_annual`, `annual`): whether the product supports it and the first day, counted from the last shipment, the next fill can ship.","additionalProperties":{"type":"object","properties":{"supported":{"type":"boolean","uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.cadences.additionalProperties.supported","typeLabel":"boolean"},"ship_available_day":{"oneOf":[{"type":"integer","uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.cadences.additionalProperties.ship_available_day.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.cadences.additionalProperties.ship_available_day.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.cadences.additionalProperties.ship_available_day","typeLabel":"integer | null"}},"uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.cadences.additionalProperties","typeLabel":"object"},"uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0.cadences","typeLabel":"object"}},"uniqueKey":"data.products.items.[INDEX].schedule.oneOf.0","typeLabel":"object"},{"type":"null","description":"How to time this product's intakes and refills, from the fulfillment matrix. `null` when the product needs no intake or has no mapping yet.","properties":{"intake_valid_days":{"type":"integer","description":"Days an initial intake keeps counting for new orders of this product."},"followup":{"type":"object","properties":{"form_key":{"oneOf":[{"type":"string"},{"type":"null"}]},"ask_days_before_ship":{"type":"integer","description":"The follow-up is asked this many days before the next fill can ship."},"needed_only_when_refills_used_up":{"type":"boolean","description":"No follow-up is asked while the prescription still has refills."}}},"cadences":{"type":"object","description":"One entry per refill cadence (`monthly`, `quarterly`, `semi_annual`, `annual`): whether the product supports it and the first day, counted from the last shipment, the next fill can ship.","additionalProperties":{"type":"object","properties":{"supported":{"type":"boolean"},"ship_available_day":{"oneOf":[{"type":"integer"},{"type":"null"}]}}}}},"uniqueKey":"data.products.items.[INDEX].schedule.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.products.items.[INDEX].schedule","typeLabel":"object | null"}},"uniqueKey":"data.products.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.products","typeLabel":"object[]"},"form":{"oneOf":[{"type":"object","description":"The form to show. Send its `form_key` to the evaluate call.","properties":{"form_key":{"type":"string","example":"combined:wizlo.glp.initial+wizlo.hair.initial","uniqueKey":"data.form.oneOf.0.form_key","typeLabel":"string"},"version":{"type":"integer","uniqueKey":"data.form.oneOf.0.version","typeLabel":"integer"},"title":{"type":"string","uniqueKey":"data.form.oneOf.0.title","typeLabel":"string"},"stage":{"type":"string","uniqueKey":"data.form.oneOf.0.stage","typeLabel":"string"},"combined_from":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.form.oneOf.0.combined_from.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.form.oneOf.0.combined_from.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"uniqueKey":"data.form.oneOf.0.combined_from.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.form.oneOf.0.combined_from","typeLabel":"string[] | null"},"sections":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].title","typeLabel":"string"},"description":{"type":"string","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].description","typeLabel":"string"},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The key to answer under.","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].id","typeLabel":"string"},"question":{"type":"string","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].question","typeLabel":"string"},"subquestion":{"oneOf":[{"type":"string","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].subquestion.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].subquestion.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].subquestion","typeLabel":"string | null"},"kind":{"type":"string","description":"The answer type (text, radio, checkbox_multi, date, height_weight, file, consent and so on).","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].kind","typeLabel":"string"},"options":{"type":"array","items":{"type":"string","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].options.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].options","typeLabel":"string[]"},"placeholder":{"oneOf":[{"type":"string","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].placeholder.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].placeholder.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].placeholder","typeLabel":"string | null"},"required":{"type":"boolean","description":"Required when the question is shown.","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].required","typeLabel":"boolean"},"answer_format":{"type":"string","description":"The JSON to send as the answer (a string, an array of strings, or an object for height and weight).","example":"array of strings (the chosen options)","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].answer_format","typeLabel":"string"},"conditional":{"type":"boolean","description":"Shown only for some answers. Use the evaluate call to learn which.","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].conditional","typeLabel":"boolean"},"pii":{"type":"boolean","description":"The answer may carry personal information.","uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX].pii","typeLabel":"boolean"}},"uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.form.oneOf.0.sections.items.[INDEX].questions","typeLabel":"object[]"}},"uniqueKey":"data.form.oneOf.0.sections.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.form.oneOf.0.sections","typeLabel":"object[]"}},"uniqueKey":"data.form.oneOf.0","typeLabel":"object"},{"type":"null","description":"The form to show. Send its `form_key` to the evaluate call.","properties":{"form_key":{"type":"string","example":"combined:wizlo.glp.initial+wizlo.hair.initial"},"version":{"type":"integer"},"title":{"type":"string"},"stage":{"type":"string"},"combined_from":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"null","items":{"type":"string"}}]},"sections":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The key to answer under."},"question":{"type":"string"},"subquestion":{"oneOf":[{"type":"string"},{"type":"null"}]},"kind":{"type":"string","description":"The answer type (text, radio, checkbox_multi, date, height_weight, file, consent and so on)."},"options":{"type":"array","items":{"type":"string"}},"placeholder":{"oneOf":[{"type":"string"},{"type":"null"}]},"required":{"type":"boolean","description":"Required when the question is shown."},"answer_format":{"type":"string","description":"The JSON to send as the answer (a string, an array of strings, or an object for height and weight).","example":"array of strings (the chosen options)"},"conditional":{"type":"boolean","description":"Shown only for some answers. Use the evaluate call to learn which."},"pii":{"type":"boolean","description":"The answer may carry personal information."}}}}}}}},"uniqueKey":"data.form.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.form","typeLabel":"object | null"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"stage":"initial","reason":"single_form","note":"\u003cstring>","products":[{"product_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","needs_intake":true,"form_key":"\u003cstring>","schedule":{"intake_valid_days":123,"followup":{"form_key":"\u003cstring>","ask_days_before_ship":123,"needed_only_when_refills_used_up":true},"cadences":{}}}],"form":{"form_key":"combined:wizlo.glp.initial+wizlo.hair.initial","version":123,"title":"\u003cstring>","stage":"\u003cstring>","combined_from":["\u003cstring>"],"sections":[{"title":"\u003cstring>","description":"\u003cstring>","questions":[{"id":"\u003cstring>","question":"\u003cstring>","subquestion":"\u003cstring>","kind":"\u003cstring>","options":["\u003cstring>"],"placeholder":"\u003cstring>","required":true,"answer_format":"array of strings (the chosen options)","conditional":true,"pii":true}]}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"b0fa0d48-df57-4877-957d-8b7abe8035e0":{"description":"Missing, invalid or revoked API key (`unauthorized`).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"One of `invalid_body`, `validation_failed`, `unauthorized`,\n`insufficient_scope`, `not_vita_clinic`, `patient_not_found`,\n`product_not_found`, `product_not_allowed`, `duplicate_request`,\n`rate_limited`, `card_required`, `payment_declined`,\n`internal_error`, `not_found`.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"validation_failed","message":"One or more fields are invalid"}}}},"exampleType":"generated"}},"exampleType":"generated"},"fa2c60da-bf89-4139-8270-600d8ae4a806":{"description":"A product id does not exist (`not_found`).","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"5652661a-d69c-4ca1-b1f7-cea8a74a3d7c":{"description":"product_ids missing, not UUIDs, over 25, or an unknown stage (`validation_failed`).","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"dcc604bc-462f-440f-88d7-39631ae87d5c":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key issued by VitaRelay. Send as `Authorization: Bearer vr_live_…`\n(production) or `Authorization: Bearer vr_test_…` (sandbox).\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"99e3b59c-dc63-47bf-bffb-070f0be07326":{"url":"https://vitarelay.com/api/public/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key issued by VitaRelay. Send as `Authorization: Bearer vr_live_…`\n(production) or `Authorization: Bearer vr_test_…` (sandbox).\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key issued by VitaRelay. Send as `Authorization: Bearer vr_live_…`\n(production) or `Authorization: Bearer vr_test_…` (sandbox).\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"vitarelay","siteName":"VitaRelay","title":"Get the intake form for products - VitaRelay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T21:03:22.859Z","originalFileLocation":"api-reference/intakes/get-the-intake-form-for-products.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=\"Vita Clinic only. Requires the intakes:read scope. Returns the intake form a patient fills in for the products you name, so your site can show the same questions our own link does. Nothing about a patient is read or stored. Every product has its own form. Products that use different forms get one combined form: its sections run form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears once, so the patient never answers it twice. The same set of products always gives the same form_key. The form is the same for a test key and a live key. Use stage=followup for the follow-up form a patient answers before a refill. Products that do not need an intake are listed with needs_intake: false. When no product form applies (the standard intake is used, a product has no confirmed form yet, or forms are not switched on for your account) form is null, reason says why, and note points to the standard intake (POST /intakes). Every question lists its attributes (kind, options, required, answer_format, conditional, pii). The full list for every form, including when each question is asked, is in the Intake forms reference. Draw the questions from sections, then send the answers to Evaluate an intake form after each step to learn which questions show next and what is still missing.\">\u003cmeta data-mint-head name=\"application-name\" content=\"VitaRelay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026amp;auto=format\u0026amp;n=WXEmFrJi4K7tSXcf\u0026amp;q=85\u0026amp;s=dad2bdd7a33cbbcf4acf3c514efe4047\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026amp;auto=format\u0026amp;n=WXEmFrJi4K7tSXcf\u0026amp;q=85\u0026amp;s=dad2bdd7a33cbbcf4acf3c514efe4047\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026amp;auto=format\u0026amp;n=WXEmFrJi4K7tSXcf\u0026amp;q=85\u0026amp;s=dad2bdd7a33cbbcf4acf3c514efe4047\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026amp;auto=format\u0026amp;n=WXEmFrJi4K7tSXcf\u0026amp;q=85\u0026amp;s=dad2bdd7a33cbbcf4acf3c514efe4047\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get the intake form for products - VitaRelay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Vita Clinic only. Requires the intakes:read scope. Returns the intake form a patient fills in for the products you name, so your site can show the same questions our own link does. Nothing about a patient is read or stored. Every product has its own form. Products that use different forms get one combined form: its sections run form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears once, so the patient never answers it twice. The same set of products always gives the same form_key. The form is the same for a test key and a live key. Use stage=followup for the follow-up form a patient answers before a refill. Products that do not need an intake are listed with needs_intake: false. When no product form applies (the standard intake is used, a product has no confirmed form yet, or forms are not switched on for your account) form is null, reason says why, and note points to the standard intake (POST /intakes). Every question lists its attributes (kind, options, required, answer_format, conditional, pii). The full list for every form, including when each question is asked, is in the Intake forms reference. Draw the questions from sections, then send the answers to Evaluate an intake form after each step to learn which questions show next and what is still missing.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"VitaRelay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vitarelay.mintlify.site/_mintlify/api/og/v2?division=Intakes\u0026amp;title=Get+the+intake+form+for+products\u0026amp;description=**Vita+Clinic+only.**+Requires+the+%60intakes%3Aread%60+scope.+Returns+the+intake+form+a+patient+fills+in+for+the%0Aproducts+you+name%2C+so+your+site+can+show+the+same+qu\u0026amp;theme=8c0b6cf4340b31a0a73d3428\u0026amp;signature=0f45e41c1d7dbbdf00cc4d49dc3fd2d1acc9e177c5524003e3ede16d8c8bbd3b\">\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=\"Get the intake form for products - VitaRelay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Vita Clinic only. Requires the intakes:read scope. Returns the intake form a patient fills in for the products you name, so your site can show the same questions our own link does. Nothing about a patient is read or stored. Every product has its own form. Products that use different forms get one combined form: its sections run form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears once, so the patient never answers it twice. The same set of products always gives the same form_key. The form is the same for a test key and a live key. Use stage=followup for the follow-up form a patient answers before a refill. Products that do not need an intake are listed with needs_intake: false. When no product form applies (the standard intake is used, a product has no confirmed form yet, or forms are not switched on for your account) form is null, reason says why, and note points to the standard intake (POST /intakes). Every question lists its attributes (kind, options, required, answer_format, conditional, pii). The full list for every form, including when each question is asked, is in the Intake forms reference. Draw the questions from sections, then send the answers to Evaluate an intake form after each step to learn which questions show next and what is still missing.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vitarelay.mintlify.site/_mintlify/api/og/v2?division=Intakes\u0026amp;title=Get+the+intake+form+for+products\u0026amp;description=**Vita+Clinic+only.**+Requires+the+%60intakes%3Aread%60+scope.+Returns+the+intake+form+a+patient+fills+in+for+the%0Aproducts+you+name%2C+so+your+site+can+show+the+same+qu\u0026amp;theme=8c0b6cf4340b31a0a73d3428\u0026amp;signature=0f45e41c1d7dbbdf00cc4d49dc3fd2d1acc9e177c5524003e3ede16d8c8bbd3b\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/vitarelay/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"VitaRelay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2266E6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/intakes/get-the-intake-form-for-products.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://api.vitarelay.com/#organization\",\"name\":\"VitaRelay\",\"url\":\"https://api.vitarelay.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vitarelay/WXEmFrJi4K7tSXcf/logo/vitarelay-logo.png?fit=max\u0026auto=format\u0026n=WXEmFrJi4K7tSXcf\u0026q=85\u0026s=dad2bdd7a33cbbcf4acf3c514efe4047\"}},{\"@type\":\"WebSite\",\"@id\":\"https://api.vitarelay.com#website\",\"name\":\"VitaRelay\",\"url\":\"https://api.vitarelay.com\",\"publisher\":{\"@id\":\"https://api.vitarelay.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products#webpage\",\"url\":\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products\",\"name\":\"Get the intake form for products\",\"description\":\"Vita Clinic only. Requires the intakes:read scope. Returns the intake form a patient fills in for the products you name, so your site can show the same questions our own link does. Nothing about a patient is read or stored. Every product has its own form. Products that use different forms get one combined form: its sections run form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears once, so the patient never answers it twice. The same set of products always gives the same form_key. The form is the same for a test key and a live key. Use stage=followup for the follow-up form a patient answers before a refill. Products that do not need an intake are listed with needs_intake: false. When no product form applies (the standard intake is used, a product has no confirmed form yet, or forms are not switched on for your account) form is null, reason says why, and note points to the standard intake (POST /intakes). Every question lists its attributes (kind, options, required, answer_format, conditional, pii). The full list for every form, including when each question is asked, is in the Intake forms reference. Draw the questions from sections, then send the answers to Evaluate an intake form after each step to learn which questions show next and what is still missing.\",\"dateModified\":\"2026-11-12T21:03:22.859Z\",\"isPartOf\":{\"@id\":\"https://api.vitarelay.com#website\"},\"breadcrumb\":{\"@id\":\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://api.vitarelay.com/api-reference/patients/list-patients\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Intakes\",\"item\":\"https://api.vitarelay.com/api-reference/intakes/submit-intake-answers-you-collect-them\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get the intake form for products\",\"item\":\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products#apireference\",\"headline\":\"Get the intake form for products\",\"name\":\"Get the intake form for products\",\"description\":\"Vita Clinic only. Requires the intakes:read scope. Returns the intake form a patient fills in for the products you name, so your site can show the same questions our own link does. Nothing about a patient is read or stored. Every product has its own form. Products that use different forms get one combined form: its sections run form by form, and a question two forms ask in the same way (name, email, date of birth, consents) appears once, so the patient never answers it twice. The same set of products always gives the same form_key. The form is the same for a test key and a live key. Use stage=followup for the follow-up form a patient answers before a refill. Products that do not need an intake are listed with needs_intake: false. When no product form applies (the standard intake is used, a product has no confirmed form yet, or forms are not switched on for your account) form is null, reason says why, and note points to the standard intake (POST /intakes). Every question lists its attributes (kind, options, required, answer_format, conditional, pii). The full list for every form, including when each question is asked, is in the Intake forms reference. Draw the questions from sections, then send the answers to Evaluate an intake form after each step to learn which questions show next and what is still missing.\",\"url\":\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products\",\"mainEntityOfPage\":{\"@id\":\"https://api.vitarelay.com/api-reference/intakes/get-the-intake-form-for-products#webpage\"},\"dateModified\":\"2026-11-12T21:03:22.859Z\",\"publisher\":{\"@id\":\"https://api.vitarelay.com/#organization\"},\"isPartOf\":{\"@id\":\"https://api.vitarelay.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"VitaRelay\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"VitaRelay\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/intakes/get-the-intake-form-for-products.md","siteName":"VitaRelay","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","tabs":[{"tab":"VitaClinic API","icon":"hospital","groups":[{"group":"Getting Started","pages":[{"title":"VitaClinic API Overview","href":"/getting-started/overview"},{"title":"Quickstart","href":"/getting-started/quickstart"},{"title":"Authentication","href":"/getting-started/authentication"},{"title":"API Keys","href":"/getting-started/api-keys"},{"title":"Environments","href":"/getting-started/environments"},{"title":"Sandbox","href":"/getting-started/sandbox"},{"title":"REST API (v1)","href":"/getting-started/rest-api"},{"title":"Packages, pricing and checkout","href":"/getting-started/packages-and-pricing"},{"title":"Intakes and prescriber review","href":"/getting-started/intakes-and-prescriptions"},{"title":"Intake answers reference","href":"/getting-started/intake-responses"},{"title":"Intake forms reference","href":"/getting-started/intake-forms-reference"},{"title":"Emails your patients receive","href":"/getting-started/patient-emails"},{"title":"Integration checklist","href":"/getting-started/integration-checklist"},{"title":"Errors","href":"/getting-started/errors"},{"title":"Rate Limits","href":"/getting-started/rate-limits"}]},{"group":"API Reference","pages":[{"group":"Patients","pages":[{"title":"List patients","deprecated":null,"version":null,"openapi":"/openapi.yaml get /patients","href":"/api-reference/patients/list-patients"},{"title":"Create a patient","deprecated":null,"version":null,"openapi":"/openapi.yaml post /patients","href":"/api-reference/patients/create-a-patient"},{"title":"Retrieve a patient","deprecated":null,"version":null,"openapi":"/openapi.yaml get /patients/{id}","href":"/api-reference/patients/retrieve-a-patient"},{"title":"Get the Accept.js keys (no order needed)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payment-methods/config","href":"/api-reference/patients/get-the-acceptjs-keys-no-order-needed"},{"title":"List a patient's saved cards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /patients/{id}/payment-methods","href":"/api-reference/patients/list-a-patients-saved-cards"},{"title":"Save a patient's card (no charge)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /patients/{id}/payment-methods","href":"/api-reference/patients/save-a-patients-card-no-charge"},{"title":"Push to IDN prescriber","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/patients/{patientId}/push","href":"/api-reference/patients/push-to-idn-prescriber"},{"title":"Auto-refer from intake","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/patients/{patientId}/auto-push","href":"/api-reference/patients/auto-refer-from-intake"},{"title":"List Rx requests","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rx/patients/{patientId}/requests","href":"/api-reference/patients/list-rx-requests"},{"title":"Cancel a request","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/requests/{requestId}/cancel","href":"/api-reference/patients/cancel-a-request"},{"title":"IDN membership status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rx/idn-status","href":"/api-reference/patients/idn-membership-status"},{"title":"Own prescribers and doctor-network access","deprecated":null,"version":null,"openapi":"/openapi.yaml get /prescribers","href":"/api-reference/patients/own-prescribers-and-doctor-network-access"},{"title":"Who would prescribe for a patient or state","deprecated":null,"version":null,"openapi":"/openapi.yaml get /prescriber-route","href":"/api-reference/patients/who-would-prescribe-for-a-patient-or-state"}]},{"group":"Intakes","pages":[{"title":"Submit intake answers (you collect them)","description":"**Vita Clinic only.** Requires the `intakes:write` scope. Use this when you collect the\nquestionnaire yourself; to have the patient fill it in on our page, use\n[Send a hosted intake link](/api-reference/intakes/send-a-hosted-intake-link) instead.\nReferral partners use [Submit referral intake answers](/api-reference/intakes/submit-referral-intake-answers-you-collect-them).\n\n**Required:** `category` (`async` or `hormone`), `responses` (the six required answers\nbelow, plus the rest of the questionnaire) and the patient, as `patient_id` **or**\n`external_patient_id`. `external_intake_id` is optional but recommended.\n\n**Every intake** must answer **every required question** that applies to the patient (the general set,\nplus the hormone set for `category: hormone` or a `treatment_need` that includes `hormone_hrt`), or the\ncall returns `422 validation_failed` and creates nothing. The message lists the missing keys and any\nkeys you sent that are not question ids. For `recent_labs`, `\"yes\"` or `\"no\"` is enough: the lab date\nand values are optional. A successful call returns `warnings` for unknown keys and invalid values. An\nintake that is not tied to one order still pushes the patient's open API orders to the doctor network.\n\nIdentify the patient with either `patient_id` (UUID, or a\n`sandbox_pat_…` id when using a test key) or `external_patient_id`.\nA patient belonging to another organization resolves as\n`404 patient_not_found`. Supplying `external_intake_id` makes the call\nidempotent.\n\nIf the patient has an order that is waiting on a health intake, these answers\n**complete that order's intake** (the response `id` is that intake and it includes the\n`order_id`): the order moves to prescriber review and the request is sent to the doctor\nnetwork. Otherwise a standalone intake is created. A request that fails creates nothing,\nand its `external_intake_id` can be sent again straight away.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /intakes","href":"/api-reference/intakes/submit-intake-answers-you-collect-them"},{"title":"Get the intake form for products","deprecated":null,"version":null,"openapi":"/openapi.yaml get /intake-forms","href":"/api-reference/intakes/get-the-intake-form-for-products"},{"title":"Evaluate an intake form","description":"**Vita Clinic only.** Requires the `intakes:read` scope. Runs a form's rules on the answers so far and tells you\nwhich questions to show, what is still unanswered, and whether anything stops the form. Nothing is stored; call\nit as often as you like while the patient answers.\n\nAnswer under the question `id` from [Get the intake form for products](/api-reference/intakes/get-the-intake-form-for-products):\na string for a text or single choice, an array of strings for several choices, and\n`{ \"height_in\": 70, \"weight_lb\": 180 }` for height and weight. Answers to questions the form does not have are\nignored.\n\n`visible` lists the questions to show, in order. `missing` lists the visible required questions with no answer.\n`stops` are answers that end the form (the patient is not eligible), each with the message to show.\n`corrections` are answers the patient must fix (for example \"None\" chosen with another option).\n`complete` is true when nothing is missing and nothing stops or needs correcting.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /intake-forms/evaluate","href":"/api-reference/intakes/evaluate-an-intake-form"},{"title":"Send a hosted intake link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /patients/{patientId}/intake/send-link","href":"/api-reference/intakes/send-a-hosted-intake-link"},{"title":"Get intake status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /patients/{patientId}/intake/status","href":"/api-reference/intakes/get-intake-status"},{"title":"Send a referral intake link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/patients/{patientId}/intake","href":"/api-reference/intakes/send-a-referral-intake-link"},{"title":"Submit referral intake answers (you collect them)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /rx/patients/{patientId}/intake/submit","href":"/api-reference/intakes/submit-referral-intake-answers-you-collect-them"}]},{"group":"Orders","pages":[{"title":"List orders","deprecated":null,"version":null,"openapi":"/openapi.yaml get /orders","href":"/api-reference/orders/list-orders"},{"title":"Create an order","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders","href":"/api-reference/orders/create-an-order"},{"title":"Retrieve an order","deprecated":null,"version":null,"openapi":"/openapi.yaml get /orders/{id}","href":"/api-reference/orders/retrieve-an-order"},{"title":"Pay an order (embedded Accept.js)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /orders/{id}/pay","href":"/api-reference/orders/pay-an-order-embedded-acceptjs"},{"title":"List consult-first requests","deprecated":null,"version":null,"openapi":"/openapi.yaml get /consult-requests","href":"/api-reference/orders/list-consult-first-requests"},{"title":"Create a consult-first request","deprecated":null,"version":null,"openapi":"/openapi.yaml post /consult-requests","href":"/api-reference/orders/create-a-consult-first-request"},{"title":"Get a consult-first request","deprecated":null,"version":null,"openapi":"/openapi.yaml get /consult-requests/{id}","href":"/api-reference/orders/get-a-consult-first-request"},{"title":"Approve the medication order","deprecated":null,"version":null,"openapi":"/openapi.yaml post /consult-requests/{id}/approve","href":"/api-reference/orders/approve-the-medication-order"}]},{"group":"Prescriptions","pages":[{"title":"List prescriptions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /prescriptions","href":"/api-reference/prescriptions/list-prescriptions"},{"title":"Retrieve a prescription","deprecated":null,"version":null,"openapi":"/openapi.yaml get /prescriptions/{id}","href":"/api-reference/prescriptions/retrieve-a-prescription"}]},{"group":"Products","pages":[{"title":"List your pharmacy inventory","deprecated":null,"version":null,"openapi":"/openapi.yaml get /products","href":"/api-reference/products/list-your-pharmacy-inventory"},{"title":"List RUO catalog products","deprecated":null,"version":null,"openapi":"/openapi.yaml get /catalog","href":"/api-reference/products/list-ruo-catalog-products"},{"title":"Get an RUO catalog product","deprecated":null,"version":null,"openapi":"/openapi.yaml get /catalog/{id}","href":"/api-reference/products/get-an-ruo-catalog-product"},{"title":"List lab kits","deprecated":null,"version":null,"openapi":"/openapi.yaml get /labs/catalog","href":"/api-reference/products/list-lab-kits"},{"title":"Get a lab kit","deprecated":null,"version":null,"openapi":"/openapi.yaml get /labs/catalog/{id}","href":"/api-reference/products/get-a-lab-kit"},{"title":"List 503A products","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rx/catalog","href":"/api-reference/products/list-503a-products"},{"title":"Get a 503A product","deprecated":null,"version":null,"openapi":"/openapi.yaml get /rx/catalog/{id}","href":"/api-reference/products/get-a-503a-product"}]},{"group":"Storefront","pages":[{"title":"Retrieve the patient storefront","deprecated":null,"version":null,"openapi":"/openapi.yaml get /shop","href":"/api-reference/storefront/retrieve-the-patient-storefront"},{"title":"Update storefront settings","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /shop","href":"/api-reference/storefront/update-storefront-settings"},{"title":"Add or update a product listing","deprecated":null,"version":null,"openapi":"/openapi.yaml put /shop/products","href":"/api-reference/storefront/add-or-update-a-product-listing"},{"title":"Remove a product listing","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /shop/products/{listingId}","href":"/api-reference/storefront/remove-a-product-listing"},{"title":"Create or update a bundle","deprecated":null,"version":null,"openapi":"/openapi.yaml put /shop/bundles","href":"/api-reference/storefront/create-or-update-a-bundle"},{"title":"Delete a bundle","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /shop/bundles/{bundleId}","href":"/api-reference/storefront/delete-a-bundle"},{"title":"Create or update a clinic-owned item","deprecated":null,"version":null,"openapi":"/openapi.yaml put /shop/custom-products","href":"/api-reference/storefront/create-or-update-a-clinic-owned-item"},{"title":"Remove a clinic-owned item","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /shop/custom-products/{customProductId}","href":"/api-reference/storefront/remove-a-clinic-owned-item"}]},{"group":"Subscriptions","pages":[{"title":"List patient subscriptions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /subscriptions","href":"/api-reference/subscriptions/list-patient-subscriptions"},{"title":"Create a patient subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions","href":"/api-reference/subscriptions/create-a-patient-subscription"},{"title":"Retrieve a subscription and recent cycles","deprecated":null,"version":null,"openapi":"/openapi.yaml get /subscriptions/{id}","href":"/api-reference/subscriptions/retrieve-a-subscription-and-recent-cycles"},{"title":"Update cadence, quantity, card, or shipping address","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /subscriptions/{id}","href":"/api-reference/subscriptions/update-cadence-quantity-card-or-shipping-address"},{"title":"Pause a subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions/{id}/pause","href":"/api-reference/subscriptions/pause-a-subscription"},{"title":"Resume a subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions/{id}/resume","href":"/api-reference/subscriptions/resume-a-subscription"},{"title":"Cancel a subscription","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions/{id}/cancel","href":"/api-reference/subscriptions/cancel-a-subscription"},{"title":"Skip the next cycle","deprecated":null,"version":null,"openapi":"/openapi.yaml post /subscriptions/{id}/skip-next","href":"/api-reference/subscriptions/skip-the-next-cycle"}]}]},{"group":"Webhooks","pages":[{"title":"Webhooks Overview","href":"/webhooks/overview"},{"title":"Event Types","href":"/webhooks/events"},{"title":"Receiving Deliveries","href":"/webhooks/inbound"},{"title":"Webhook Security","href":"/webhooks/security"},{"title":"Retries \u0026 Delivery","href":"/webhooks/retries"}]},{"group":"Guides","pages":[{"title":"EHR Integration Guide","href":"/guides/ehr-integration"},{"title":"Order Flow","href":"/guides/order-flow"},{"title":"Display-only catalog access","href":"/guides/catalog-display"},{"title":"Patient Shop Subscriptions","href":"/guides/subscriptions"},{"title":"Referring patients to the IDN","href":"/rx/overview"}]}]},{"tab":"Pharmacy API","icon":"prescription-bottle-medical","pages":[{"title":"Pharmacy API","href":"/pharmacy-api/overview"}]},{"tab":"Practice API","icon":"hospital-user","pages":[{"title":"Practice API","href":"/practice-api/overview"}]},{"tab":"Partner API","icon":"user-plus","pages":[{"title":"Partner API","href":"/partner-api/overview"}]}]},{"anchor":"Status","icon":"circle-check","hidden":true,"href":"https://status.vitarelay.com"},{"anchor":"Support","icon":"envelope","href":"mailto:info@vitarelay.com"}]},"basePath":"","title":"Get the intake form for products - VitaRelay","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}