Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.
Capture creation is an Enterprise feature. Upload video directly through the API to run it through Uplift’s movement analysis pipeline. Contact Sales to enable it for your organization.
UUID of an athlete that belongs to the same organization as the API key. Returns 400 with athlete_id not found when the athlete is missing or not in your organization.
Activity and movement labels plus optional movement dimension keys for that pair. Validated against the published catalog. See Movement dimensions for the per activity/movement field catalog.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Uplift","colors":{"primary":"#cc0000","light":"#f05050","dark":"#cc0000"},"logo":{"light":"https://mintcdn.com/upliftlabs/2HQ-3ZfO0xHhGpxM/images/logo-light.svg?fit=max\u0026auto=format\u0026n=2HQ-3ZfO0xHhGpxM\u0026q=85\u0026s=0fe44b3eed4e573463a85ad1e423173d","dark":"https://mintcdn.com/upliftlabs/2HQ-3ZfO0xHhGpxM/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=2HQ-3ZfO0xHhGpxM\u0026q=85\u0026s=8f9cd45b54d1c5e9686632c5a410de12"},"favicon":"https://mintcdn.com/upliftlabs/iYgjDIzM_IZXat_9/favicon.svg?fit=max\u0026auto=format\u0026n=iYgjDIzM_IZXat_9\u0026q=85\u0026s=967c7cc181c16df8f4ba6f544941f20e","api":{"mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":"https://api.uplift.ai/v1"}},"background":{"color":{"light":"#ffffff","dark":"#232426"}},"navbar":{"links":[{"href":"https://www.uplift.ai/validation","label":"Research"},{"href":"https://www.uplift.ai/blog","label":"Blog"},{"href":"https://www.uplift.ai/articles","label":"News"}],"primary":{"type":"button","label":"Sign In","href":"https://platform.uplift.ai"}},"footer":{"socials":{"twitter":"https://twitter.com/upliftlabs","github":"https://github.com/upliftlabs","linkedin":"https://www.linkedin.com/company/upliftlabs"}},"seo":{"indexing":"all"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"upliftlabs","hasAudioNarration":false,"actualSubdomain":"upliftlabs","customDomains":["docs.uplift.ai"],"gitSource":{"type":"github","owner":"upliftlabs","repo":"uplift-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6af20f5e67139b84a7c4cb8e","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Guides","count":43},{"language":"default","tag":"Using Uplift","count":39},{"language":"default","tag":"API Reference","count":19},{"language":"default","tag":"Performing an Assessment","count":15},{"language":"default","tag":"Biomechanics","count":13},{"language":"default","tag":"API Documentation","count":8},{"language":"default","tag":"Platform Configuration","count":6},{"language":"default","tag":"Reviewing Assessment Results","count":6},{"language":"default","tag":"Athletes","count":5},{"language":"default","tag":"Prerequisites","count":5}]},"assistantConfig":{},"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":"llms-txt-v2","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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"[data-as=\"p\"]{display:block;margin:0 0 1rem}li>[data-as=\"p\"]{display:inline;margin:0}table{table-layout:auto}th,td:first-child,td:last-child{white-space:nowrap}"}],"page":{"pagePath":"api-reference/captures/create","slug":"/api-reference/captures/create","pageMetadata":{"title":"Create Capture","openapi":"POST /captures","description":"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.","href":"/api-reference/captures/create"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Capture creation is an Enterprise feature.`}),` Upload video directly through the API to run it through Uplift’s movement analysis pipeline. `,_jsx(_components.a,{href:`mailto:sales@uplift.ai`,children:`Contact Sales`}),` to enable it for your organization.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`example-request-body`,children:`Example Request Body`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"athlete_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"session_group_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"11111111-2222-3333-4444-555555555555\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"file_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"swing-001.mov\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"capture_time\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-05-13T12:00:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"camera_configuration\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"camera_setup_selection\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"single.down_the_line\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"camera_orientation\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"landscape\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"movement_attributes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"activity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"golf\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"movement\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"full_swing\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`4`,id:`movement-dimensions`,children:`Movement dimensions`}),`\n`,_jsxs(_components.p,{children:[`Optional movement dimension keys for each `,_jsx(_components.code,{children:`activity`}),` / `,_jsx(_components.code,{children:`movement`}),` pair can be included in `,_jsx(_components.code,{children:`movement_attributes`}),`. Valid values are validated by the API.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Activity`}),_jsx(_components.th,{children:`Movement`}),_jsx(_components.th,{children:`Dimensions`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`agility`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cutting`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`direction`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`baseball`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`hitting`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`bat_length`}),`, `,_jsx(_components.code,{children:`handedness`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`baseball`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`pitching`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`basketball`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`free_throw`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`basketball`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`jump_shot`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`basketball`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`layup`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`golf`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`swing`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`jump`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`broad`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`arm_position`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`jump`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`countermovement`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`arm_position`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`jump`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`drop_vertical`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`arm_position`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`jump`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`single_leg`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`arm_position`}),`, `,_jsx(_components.code,{children:`footedness`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`jump`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`single_leg_broad`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`arm_position`}),`, `,_jsx(_components.code,{children:`footedness`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`jump`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`squat`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`arm_position`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lunge`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`forward`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`footedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lunge`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`side`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`footedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`range_of_motion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ankle_flexion`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`body_position`}),`, `,_jsx(_components.code,{children:`footedness`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`range_of_motion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`cervical_rotation`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`direction`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`range_of_motion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`sfma_shoulder_extension`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`range_of_motion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`sfma_shoulder_flexion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`range_of_motion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`shoulder_9090`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`range_of_motion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`shoulder_flexion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`range_of_motion`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`t_spine_rotation`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`softball`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`hitting`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`bat_length`}),`, `,_jsx(_components.code,{children:`handedness`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`softball`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`pitching`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`squat`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`single_leg`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`footedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stability`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`plank`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`plank_orientation`}),`, `,_jsx(_components.code,{children:`plank_position`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stability`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`rotary`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stability`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`single_leg_stance`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`eyes`}),`, `,_jsx(_components.code,{children:`footedness`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stability`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`y_balance_lower_quarter`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`footedness`}),`, `,_jsx(_components.code,{children:`y_balance_lower_quarter_direction`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stability`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`y_balance_upper_quarter`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`handedness`}),`, `,_jsx(_components.code,{children:`y_balance_upper_quarter_direction`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`tennis`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`backhand`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`tennis`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`forehand`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`tennis`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`overhand_serve`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`handedness`}),`, `,_jsx(_components.code,{children:`overhand_serve_type`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`tennis`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`underhand_serve`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`track_and_field`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`discus`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`track_and_field`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`shot_put`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`handedness`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Pairs with `,_jsx(_components.strong,{children:`no`}),` published movement dimensions (for example `,_jsx(_components.code,{children:`gait/walking`}),`, `,_jsx(_components.code,{children:`squat/body_weight`}),`) accept only `,_jsx(_components.code,{children:`activity`}),` and `,_jsx(_components.code,{children:`movement`}),` in `,_jsx(_components.code,{children:`movement_attributes`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Capture","openapi":"POST /captures","description":"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.","href":"/api-reference/captures/create"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Example Request Body","slug":"example-request-body","depth":3,"children":[]},{"title":"Movement dimensions","slug":"movement-dimensions","depth":4,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Create Capture in Organization","description":"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.","tags":["Captures"],"requestBody":"61a0695f-1517-48c1-836f-2836d52a330f","responses":{"200":"90c8f369-413d-47c3-918b-59bed0bb023a","400":"1e9ce888-d720-4019-8bf0-b7738b79d69a","401":"36ea00cb-bdd5-4345-8e23-d2a818651021","403":"128a72a5-f174-4766-96e2-19a49c96e4f3","404":"c976a8e7-2d91-44f0-872f-6b6ccc11c038","429":"b8b9a36d-0409-4539-aa23-a6ac2ee83b90","500":"ab85696e-4048-49a0-8ef8-89841f39cb43","503":"2831b321-3a8f-4a44-b920-717828ea7baa"},"security":["b5953a69-073b-44b2-b814-96087e3cff76"],"method":"post","type":"path","servers":["0cd9ad4a-23eb-47b4-92fb-1035511279fc"],"path":"/captures","baseUrlOptions":["https://api.uplift.ai/v1"],"title":"Create Capture in Organization","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["athlete_id","session_group_id","camera_configuration","movement_attributes","file_name"],"properties":{"athlete_id":{"type":"string","format":"uuid","description":"UUID of an athlete that belongs to the same organization as the API key. Returns 400 with `athlete_id not found` when the athlete is missing or not in your organization.","isRequired":true,"uniqueKey":"athlete_id","typeLabel":"string\u003cuuid>"},"session_group_id":{"type":"string","format":"uuid","description":"Identifies the capture group. If the group already exists, it must belong to the same organization and athlete.","isRequired":true,"uniqueKey":"session_group_id","typeLabel":"string\u003cuuid>"},"camera_configuration":{"type":"object","required":["camera_setup_selection"],"properties":{"camera_setup_selection":{"type":"string","enum":["single.front_on","single.down_the_line"],"description":"Camera setup preset for the capture.","isRequired":true,"uniqueKey":"camera_configuration.camera_setup_selection","typeLabel":"enum\u003cstring>"},"camera_orientation":{"type":"string","enum":["portrait","landscape"],"description":"Optional device orientation.","uniqueKey":"camera_configuration.camera_orientation","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"description":"Additional keys are allowed and stored with the capture configuration.","isRequired":true,"uniqueKey":"camera_configuration","typeLabel":"object"},"movement_attributes":{"type":"object","required":["activity","movement"],"properties":{"activity":{"type":"string","maxLength":128,"description":"Activity label; combined with `movement` for dimension validation.","isRequired":true,"uniqueKey":"movement_attributes.activity","typeLabel":"string"},"movement":{"type":"string","maxLength":128,"description":"Movement label; combined with `activity` for dimension validation.","isRequired":true,"uniqueKey":"movement_attributes.movement","typeLabel":"string"}},"additionalProperties":{"type":"string","uniqueKey":"movement_attributes.additionalProperties","typeLabel":"string"},"description":"Activity and movement labels plus optional movement dimension keys for that pair. Validated against the published catalog. See [Movement dimensions](#movement-dimensions) for the per activity/movement field catalog.","isRequired":true,"uniqueKey":"movement_attributes","typeLabel":"object"},"file_name":{"type":"string","maxLength":255,"description":"Video file name; must not contain `/` or `\\\\`. Must use a `.mov` or `.mp4` extension (case-insensitive). If omitted or blank, the request fails with 400.","isRequired":true,"uniqueKey":"file_name","typeLabel":"string"},"capture_time":{"type":"string","format":"date-time","description":"ISO 8601 capture time; must not be in the future. Defaults to current server time if omitted.","uniqueKey":"capture_time","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"athlete_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","session_group_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","camera_configuration":{},"movement_attributes":{"activity":"\u003cstring>","movement":"\u003cstring>"},"file_name":"\u003cstring>","capture_time":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"90c8f369-413d-47c3-918b-59bed0bb023a":{"description":"Reservation succeeded. POST the file to `upload_url` with all `upload_fields` before `upload_expires_at`.","content":{"application/json":{"schema":{"type":"object","properties":{"session_id":{"type":"string","description":"Capture identifier assigned for this reservation.","uniqueKey":"session_id","typeLabel":"string"},"session_group_id":{"type":"string","description":"Echo of the request `session_group_id`.","uniqueKey":"session_group_id","typeLabel":"string"},"upload_url":{"type":"string","description":"S3 endpoint URL for `multipart/form-data` POST.","uniqueKey":"upload_url","typeLabel":"string"},"upload_fields":{"type":"object","additionalProperties":true,"description":"Form fields that must be included in the POST body exactly as returned (policy, signature, `key`, `Content-Type`, etc.).","uniqueKey":"upload_fields","typeLabel":"object"},"upload_expires_at":{"type":"string","format":"date-time","description":"When the pre-signed POST is no longer valid (30 minutes after issuance).","uniqueKey":"upload_expires_at","typeLabel":"string\u003cdate-time>"},"status":{"type":"string","enum":["NEW"],"description":"Literal `NEW` while the capture awaits upload.","uniqueKey":"status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"session_id":"\u003cstring>","session_group_id":"\u003cstring>","upload_url":"\u003cstring>","upload_fields":{},"upload_expires_at":"2023-11-07T05:31:56Z","status":"NEW"}}},"exampleType":"generated"}},"exampleType":"generated"},"1e9ce888-d720-4019-8bf0-b7738b79d69a":{"description":"Invalid request body, or `athlete_id` does not exist in the organization.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A short error code representing the type of error.","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"A detailed message explaining the error.","uniqueKey":"message","typeLabel":"string"},"messages":{"type":"string","description":"Create Capture only: validation detail. Multiple issues are joined with `; `.","uniqueKey":"messages","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"validationError":{"title":"validationError","value":{"error":"BadRequest","messages":"\"file_name\" is required"}},"athleteNotFound":{"title":"athleteNotFound","value":{"error":"BadRequest","message":"athlete_id not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"36ea00cb-bdd5-4345-8e23-d2a818651021":{"description":"Unauthorized. Bearer token is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A short error code representing the type of error.","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"A detailed message explaining the error.","uniqueKey":"message","typeLabel":"string"},"messages":{"type":"string","description":"Create Capture only: validation detail. Multiple issues are joined with `; `.","uniqueKey":"messages","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Unauthorized","message":"Bearer token is missing or invalid."},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized","message":"Bearer token is missing or invalid."}}},"exampleType":"examples"}},"exampleType":"examples"},"128a72a5-f174-4766-96e2-19a49c96e4f3":{"description":"Forbidden. You do not have permission to access this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A short error code representing the type of error.","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"A detailed message explaining the error.","uniqueKey":"message","typeLabel":"string"},"messages":{"type":"string","description":"Create Capture only: validation detail. Multiple issues are joined with `; `.","uniqueKey":"messages","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Forbidden","message":"You do not have permission to access this resource."},"examples":{"Example":{"title":"Example","value":{"error":"Forbidden","message":"You do not have permission to access this resource."}}},"exampleType":"examples"}},"exampleType":"examples"},"c976a8e7-2d91-44f0-872f-6b6ccc11c038":{"description":"Required capture configuration is missing for the organization.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A short error code representing the type of error.","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"A detailed message explaining the error.","uniqueKey":"message","typeLabel":"string"},"messages":{"type":"string","description":"Create Capture only: validation detail. Multiple issues are joined with `; `.","uniqueKey":"messages","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"NotFound","message":"Capture is not available for this organization."},"examples":{"Example":{"title":"Example","value":{"error":"NotFound","message":"Capture is not available for this organization."}}},"exampleType":"examples"}},"exampleType":"examples"},"b8b9a36d-0409-4539-aa23-a6ac2ee83b90":{"description":"Too Many Requests. The rate limit has been exceeded.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A short error code representing the type of error.","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"A detailed message explaining the error.","uniqueKey":"message","typeLabel":"string"},"messages":{"type":"string","description":"Create Capture only: validation detail. Multiple issues are joined with `; `.","uniqueKey":"messages","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"TooManyRequests","message":"The rate limit has been exceeded. Please wait and try again later."},"examples":{"Example":{"title":"Example","value":{"error":"TooManyRequests","message":"The rate limit has been exceeded. Please wait and try again later."}}},"exampleType":"examples"}},"exampleType":"examples"},"ab85696e-4048-49a0-8ef8-89841f39cb43":{"description":"Internal Server Error. Something went wrong on the server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A short error code representing the type of error.","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"A detailed message explaining the error.","uniqueKey":"message","typeLabel":"string"},"messages":{"type":"string","description":"Create Capture only: validation detail. Multiple issues are joined with `; `.","uniqueKey":"messages","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"InternalServerError","message":"An unexpected error occurred on the server. Please try again later."},"examples":{"Example":{"title":"Example","value":{"error":"InternalServerError","message":"An unexpected error occurred on the server. Please try again later."}}},"exampleType":"examples"}},"exampleType":"examples"},"2831b321-3a8f-4a44-b920-717828ea7baa":{"description":"Temporary upstream failure; retry shortly.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A short error code representing the type of error.","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"A detailed message explaining the error.","uniqueKey":"message","typeLabel":"string"},"messages":{"type":"string","description":"Create Capture only: validation detail. Multiple issues are joined with `; `.","uniqueKey":"messages","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"ServiceUnavailable","message":"Temporary upstream video reservation issue. Please retry shortly."},"examples":{"Example":{"title":"Example","value":{"error":"ServiceUnavailable","message":"Temporary upstream video reservation issue. Please retry shortly."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"b5953a69-073b-44b2-b814-96087e3cff76":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[]}}},"servers":{"0cd9ad4a-23eb-47b4-92fb-1035511279fc":{"url":"https://api.uplift.ai/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"upliftlabs","siteName":"Uplift","title":"Create Capture - Uplift","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-01T23:25:36.698Z","originalFileLocation":"api-reference/captures/create.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=\"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Uplift\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/upliftlabs/jReZgUPj-tVlx28s/_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/upliftlabs/jReZgUPj-tVlx28s/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/upliftlabs/jReZgUPj-tVlx28s/_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/upliftlabs/jReZgUPj-tVlx28s/_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/upliftlabs/jReZgUPj-tVlx28s/_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/upliftlabs/jReZgUPj-tVlx28s/_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/upliftlabs/jReZgUPj-tVlx28s/_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/upliftlabs/jReZgUPj-tVlx28s/_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/upliftlabs/jReZgUPj-tVlx28s/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Capture - Uplift\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Uplift\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.uplift.ai/api-reference/captures/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://upliftlabs.mintlify.site/_mintlify/api/og/v2?division=Captures\u0026amp;title=Create+Capture\u0026amp;description=Reserves+server-side+resources+for+a+video+and+returns+a+pre-signed+Amazon+S3+POST+upload+target.+The+video+is+not+stored+until+the+client+completes+the+S3+POST\u0026amp;theme=f962ae2bb792429d76cb74bf\u0026amp;signature=7139b0e853ce2dc0d96d180a96303ad2d8f6629273e3dd7571122142808235d7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create Capture - Uplift\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://upliftlabs.mintlify.site/_mintlify/api/og/v2?division=Captures\u0026amp;title=Create+Capture\u0026amp;description=Reserves+server-side+resources+for+a+video+and+returns+a+pre-signed+Amazon+S3+POST+upload+target.+The+video+is+not+stored+until+the+client+completes+the+S3+POST\u0026amp;theme=f962ae2bb792429d76cb74bf\u0026amp;signature=7139b0e853ce2dc0d96d180a96303ad2d8f6629273e3dd7571122142808235d7\">\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/upliftlabs/jReZgUPj-tVlx28s/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Uplift\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#cc0000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.uplift.ai/api-reference/captures/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/captures/create.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.uplift.ai/#organization\",\"name\":\"Uplift\",\"url\":\"https://docs.uplift.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/upliftlabs/2HQ-3ZfO0xHhGpxM/images/logo-light.svg?fit=max\u0026auto=format\u0026n=2HQ-3ZfO0xHhGpxM\u0026q=85\u0026s=0fe44b3eed4e573463a85ad1e423173d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.uplift.ai#website\",\"name\":\"Uplift\",\"url\":\"https://docs.uplift.ai\",\"publisher\":{\"@id\":\"https://docs.uplift.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.uplift.ai/api-reference/captures/create#webpage\",\"url\":\"https://docs.uplift.ai/api-reference/captures/create\",\"name\":\"Create Capture\",\"description\":\"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.\",\"dateModified\":\"2026-07-01T23:25:36.698Z\",\"isPartOf\":{\"@id\":\"https://docs.uplift.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.uplift.ai/api-reference/captures/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.uplift.ai/api-reference/captures/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Uplift\",\"item\":\"https://docs.uplift.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Capture\",\"item\":\"https://docs.uplift.ai/api-reference/captures/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.uplift.ai/api-reference/captures/create#apireference\",\"headline\":\"Create Capture\",\"name\":\"Create Capture\",\"description\":\"Reserves server-side resources for a video and returns a pre-signed Amazon S3 POST upload target. The video is not stored until the client completes the S3 POST upload within the expiry window.\",\"url\":\"https://docs.uplift.ai/api-reference/captures/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.uplift.ai/api-reference/captures/create#webpage\"},\"dateModified\":\"2026-07-01T23:25:36.698Z\",\"publisher\":{\"@id\":\"https://docs.uplift.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.uplift.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Uplift\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Uplift\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/captures/create.md","siteName":"Uplift","nav":{"global":null,"anchors":[{"anchor":"Guides","icon":"compass","pages":[{"title":"Guides","href":"/guides/quick-start-guide"}]},{"anchor":"Biomechanics","icon":"angle","pages":[{"title":"Biomechanics","href":"/biomechanics/instructions"}]},{"anchor":"API Reference","icon":"rectangle-terminal","groups":[{"group":"API Documentation","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Rate Limits","href":"/api-reference/rate-limits"},{"title":"Retrieving Data in Batches","href":"/api-reference/retrieving-data-batches"},{"title":"Filtering Athletes","href":"/api-reference/filtering-athletes"},{"title":"Filtering Metrics","href":"/api-reference/filtering-metrics"},{"title":"Errors","href":"/api-reference/errors"},{"title":"Sample Apps","href":"/samples/apps"}]},{"group":"Data Export","pages":[{"title":"Create Export Job","openapi":"POST /data/export","href":"/api-reference/data/export/create"},{"title":"Get Job Status","openapi":"GET /data/export/job/{jobId}","href":"/api-reference/data/export/job/get"},{"title":"Get Job Results","openapi":"GET /data/export/job/{jobId}/results","description":"Retrieves the results of a completed job using the job ID.","href":"/api-reference/data/export/job/results/get"}]},{"group":"Captures","pages":[{"title":"Create Capture","openapi":"POST /captures","href":"/api-reference/captures/create"},{"title":"List Captures","openapi":"GET /captures","description":"Returns a paginated list of captures for the organization with optional filters. Results are sorted newest first. All organization captures are included unless filtered; use `source=api` to restrict to captures with `source` equal to `api`. A capture linked to multiple athletes may appear more than once in `captures[]`; `total_count` is the distinct capture count.","href":"/api-reference/captures/list"},{"title":"Get Capture","openapi":"GET /captures/{captureId}","href":"/api-reference/captures/get"}]},{"group":"Athletes","pages":[{"title":"Create Athlete","openapi":"POST /athletes","href":"/api-reference/athletes/create"},{"title":"Update Athlete","openapi":"POST /athletes/{athleteId}","href":"/api-reference/athletes/update"},{"title":"List Athletes","openapi":"GET /athletes","href":"/api-reference/athletes/list"},{"title":"Get Athlete Details","openapi":"GET /athletes/{athleteId}","href":"/api-reference/athletes/get"},{"title":"Delete Athlete","openapi":"DELETE /athletes/{athleteId}","href":"/api-reference/athletes/delete"}]}]},{"anchor":"Contact Support","icon":"envelope","href":"mailto:support@uplift.ai"}]},"basePath":"","title":"Create Capture - Uplift","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}