Passing a dictionnary will store the value in each row of the recorded dataset. The key is the name of the column, and the value is a list. If set to None, no additional metadata is saved.
Format to save the episode.
json is compatible with OpenVLA and stores videos as a series of npy.
lerobot_v2 is compatible with lerobot training..If None, defaults to the value set in Admin Configuration.
Record cartesian positions of the robots as well, this will make your dataset incompatible with lerobot and it only works for robots with simulators. Defaults to False.
Target video size for the recording, all videos in the dataset should have the same size. If set to None, defaults to the value set in Admin Configuration.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"phospho","colors":{"primary":"#00FF00","light":"#00FF00","dark":"#1E1E1E"},"favicon":"/favicon.svg","logo":null,"api":{"openapi":"openapi.yml"},"appearance":{"default":"dark","strict":true},"navbar":{"links":[{"label":"Contact us","href":"mailto:contact@phospho.ai"}],"primary":{"type":"button","label":"Get hardware","href":"https://robots.phospho.ai?utm_source=docs"}},"seo":{"metatags":{"og:site_name":"docs.phospho.ai","og:title":"phospho starter pack documentation","og:description":"The toolkit for AI robotics","og:url":"https://docs.phospho.ai","og:image":"/logo/light.svg","og:logo":"/logo/logo.svg","twitter:title":"phospho starter pack documentation","twitter:description":"The toolkit for AI robotics","twitter:url":"https://docs.phospho.ai","twitter:image":"/logo/light.svg","twitter:site":"@phospho_ai"},"indexing":"navigable"},"footer":{"socials":{"twitter":"https://twitter.com/phospho_ai","github":"https://github.com/phospho-app/phosphobot","youtube":"https://www.youtube.com/@phospho_ai","website":"https://robots.phospho.ai?utm_source=docs","linkedin":"https://www.linkedin.com/company/phospho-app/","discord":"https://discord.gg/cbkggY6NSK"}},"integrations":{"posthog":{"apiKey":"phc_EesFKS4CVoyc0URzJN0FOETpg7KipCBEpRvHEvv5mDF","apiHost":"https://app.posthog.com"}},"navigation":{"global":{"tabs":[{"tab":"phospho pro","href":"https://phospho.ai/pro?utm_source=docs"},{"tab":"Github","href":"https://github.com/phospho-app/phosphobot"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"phospho","hasAudioNarration":false,"actualSubdomain":"phospho","customDomains":["docs.phospho.ai"],"gitSource":{"type":"github","owner":"phospho-app","repo":"docs","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ae91e5ccd3faed8ded40533:success","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Documentation","count":51},{"language":"default","tag":"API Reference","count":25},{"language":"default","tag":"Control","count":15},{"language":"default","tag":"Learn about AI and robotics","count":9},{"language":"default","tag":"phosphobot Basic Usage","count":6},{"language":"default","tag":"AI model","count":4},{"language":"default","tag":"Examples","count":4},{"language":"default","tag":"Hardware","count":4},{"language":"default","tag":"Camera","count":3},{"language":"default","tag":"Recording","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"recording/start-recording-episode","slug":"/recording/start-recording-episode","pageMetadata":{"openapi":"post /recording/start","title":"Start Recording Episode","description":"Asynchronously start recording an episode in the background.\nOutput format is chosen when stopping the recording.","href":"/recording/start-recording-episode"},"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: \"Asynchronously start recording an episode in the background.\\nOutput format is chosen when stopping the recording.\"\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":{"openapi":"post /recording/start","title":"Start Recording Episode","description":"Asynchronously start recording an episode in the background.\nOutput format is chosen when stopping the recording.","href":"/recording/start-recording-episode"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Asynchronously start recording an episode in the background.\nOutput format is chosen when stopping the recording.","operationId":"start_recording_episode_recording_start_post","requestBody":"b9450480-4dfc-4868-8e9f-1543e024e7b4","responses":{"200":"85fd2396-ff57-4304-bde6-677360b3e80b","422":"e6df937f-8f66-45b3-8b59-b38a3c4d8ae0"},"summary":"Start Recording Episode","tags":["recording"],"method":"post","type":"path","servers":[],"security":[],"path":"/recording/start","baseUrlOptions":[],"title":"Start Recording Episode","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"description":"Request to start the recording of an episode.","properties":{"add_metadata":{"oneOf":[{"type":"object","title":"Add Metadata","description":"Passing a dictionnary will store the value in each row of the recorded dataset. The key is the name of the column, and the value is a list. If set to None, no additional metadata is saved.","example":{"bbox_position":[0.5,1,0,0.5]},"additionalProperties":{"items":{"oneOf":[{}],"uniqueKey":"add_metadata.oneOf.0.additionalProperties.items.[INDEX]","typeLabel":"any"},"type":"array","uniqueKey":"add_metadata.oneOf.0.additionalProperties","typeLabel":"any[]"},"uniqueKey":"add_metadata.oneOf.0","typeLabel":"Add Metadata · object"},{"type":"null","title":"Add Metadata","description":"Passing a dictionnary will store the value in each row of the recorded dataset. The key is the name of the column, and the value is a list. If set to None, no additional metadata is saved.","example":{"bbox_position":[0.5,1,0,0.5]},"uniqueKey":"add_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"add_metadata","typeLabel":"Add Metadata · object | null"},"branch_path":{"oneOf":[{"type":"string","title":"Branch Path","description":"Path to the branch to push the dataset to, in addition to the main branch. If set to None, only push to the main branch. Defaults to None.","uniqueKey":"branch_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Branch Path","description":"Path to the branch to push the dataset to, in addition to the main branch. If set to None, only push to the main branch. Defaults to None.","uniqueKey":"branch_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"branch_path","typeLabel":"string | null"},"cameras_ids_to_record":{"oneOf":[{"type":"array","items":{"type":"integer","uniqueKey":"cameras_ids_to_record.oneOf.0.items.[INDEX]","typeLabel":"integer"},"title":"Cameras Ids To Record","description":"List of camera ids to record. If set to None, records all available cameras.","example":[0,1],"uniqueKey":"cameras_ids_to_record.oneOf.0","typeLabel":"integer[]"},{"type":"null","title":"Cameras Ids To Record","description":"List of camera ids to record. If set to None, records all available cameras.","example":[0,1],"uniqueKey":"cameras_ids_to_record.oneOf.1","typeLabel":"null"}],"uniqueKey":"cameras_ids_to_record","typeLabel":"integer[] | null"},"dataset_name":{"oneOf":[{"type":"string","title":"Dataset Name","description":"Name of the dataset to save the episode in.If None, defaults to the value set in Admin Configuration.","example":"example_dataset","uniqueKey":"dataset_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Dataset Name","description":"Name of the dataset to save the episode in.If None, defaults to the value set in Admin Configuration.","example":"example_dataset","uniqueKey":"dataset_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"dataset_name","typeLabel":"string | null"},"enable_rerun_visualization":{"default":false,"description":"Enable rerun","title":"Enable Rerun Visualization","type":"boolean","uniqueKey":"enable_rerun_visualization","typeLabel":"boolean"},"episode_format":{"oneOf":[{"type":"string","title":"Episode Format","description":"Format to save the episode.\n`json` is compatible with OpenVLA and stores videos as a series of npy.\n`lerobot_v2` is compatible with [lerobot training.](https://docs.phospho.ai/learn/ai-models).If None, defaults to the value set in Admin Configuration.","enum":["json","lerobot_v2","lerobot_v2.1"],"example":"lerobot_v2.1","uniqueKey":"episode_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Episode Format","description":"Format to save the episode.\n`json` is compatible with OpenVLA and stores videos as a series of npy.\n`lerobot_v2` is compatible with [lerobot training.](https://docs.phospho.ai/learn/ai-models).If None, defaults to the value set in Admin Configuration.","example":"lerobot_v2.1","uniqueKey":"episode_format.oneOf.1","typeLabel":"null"}],"uniqueKey":"episode_format","typeLabel":"enum\u003cstring> | null"},"freq":{"oneOf":[{"type":"integer","title":"Freq","description":"Records steps of the robot at this frequency.If None, defaults to the value set in Admin Configuration.","example":30,"uniqueKey":"freq.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Freq","description":"Records steps of the robot at this frequency.If None, defaults to the value set in Admin Configuration.","example":30,"uniqueKey":"freq.oneOf.1","typeLabel":"null"}],"uniqueKey":"freq","typeLabel":"integer | null"},"instruction":{"oneOf":[{"type":"string","title":"Instruction","description":"A text describing the recorded task. If set to None, defaults to the value set in Admin Configuration.","example":"Pick up the orange brick and put it in the black box.","uniqueKey":"instruction.oneOf.0","typeLabel":"string"},{"type":"null","title":"Instruction","description":"A text describing the recorded task. If set to None, defaults to the value set in Admin Configuration.","example":"Pick up the orange brick and put it in the black box.","uniqueKey":"instruction.oneOf.1","typeLabel":"null"}],"uniqueKey":"instruction","typeLabel":"string | null"},"leader_arm_ids":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"leader_arm_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Leader Arm Ids","description":"Serial numbers of the leader arms used during the recording","example":["/dev/ttyUSB0"],"uniqueKey":"leader_arm_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Leader Arm Ids","description":"Serial numbers of the leader arms used during the recording","example":["/dev/ttyUSB0"],"uniqueKey":"leader_arm_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"leader_arm_ids","typeLabel":"string[] | null"},"robot_serials_to_ignore":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"robot_serials_to_ignore.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Robot Serials To Ignore","description":"List of robot serial ids to ignore. If set to None, records all available robots.","example":["/dev/ttyUSB0"],"uniqueKey":"robot_serials_to_ignore.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Robot Serials To Ignore","description":"List of robot serial ids to ignore. If set to None, records all available robots.","example":["/dev/ttyUSB0"],"uniqueKey":"robot_serials_to_ignore.oneOf.1","typeLabel":"null"}],"uniqueKey":"robot_serials_to_ignore","typeLabel":"string[] | null"},"save_cartesian":{"default":false,"description":"Record cartesian positions of the robots as well, this will make your dataset incompatible with lerobot and it only works for robots with simulators. Defaults to False.","title":"Save Cartesian","type":"boolean","uniqueKey":"save_cartesian","typeLabel":"boolean"},"target_video_size":{"oneOf":[{"type":"object","title":"Target Video Size","description":"Target video size for the recording, all videos in the dataset should have the same size. If set to None, defaults to the value set in Admin Configuration.","example":[320,240],"properties":{"[0]":{"type":"integer","uniqueKey":"target_video_size.oneOf.0.[0]","typeLabel":"integer"},"[1]":{"type":"integer","uniqueKey":"target_video_size.oneOf.0.[1]","typeLabel":"integer"}},"uniqueKey":"target_video_size.oneOf.0","typeLabel":"Target Video Size · object"},{"type":"null","title":"Target Video Size","description":"Target video size for the recording, all videos in the dataset should have the same size. If set to None, defaults to the value set in Admin Configuration.","example":[320,240],"uniqueKey":"target_video_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"target_video_size","typeLabel":"Target Video Size · object | null"},"video_codec":{"oneOf":[{"type":"string","title":"Video Codec","description":"Codec to use for the video saving.If None, defaults to the value set in Admin Configuration.","enum":["avc1","hev1","mp4v","hvc1","avc3","av01","vp09","av1"],"example":"avc1","uniqueKey":"video_codec.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Video Codec","description":"Codec to use for the video saving.If None, defaults to the value set in Admin Configuration.","example":"avc1","uniqueKey":"video_codec.oneOf.1","typeLabel":"null"}],"uniqueKey":"video_codec","typeLabel":"enum\u003cstring> | null"}},"title":"RecordingStartRequest","type":"object","uniqueKey":"","typeLabel":"RecordingStartRequest · object"},"examples":{"Example":{"title":"Example","value":{"add_metadata":{"bbox_position":[0.5,1,0,0.5]},"branch_path":"\u003cstring>","cameras_ids_to_record":[0,1],"dataset_name":"example_dataset","enable_rerun_visualization":false,"episode_format":"lerobot_v2.1","freq":30,"instruction":"Pick up the orange brick and put it in the black box.","leader_arm_ids":["/dev/ttyUSB0"],"robot_serials_to_ignore":["/dev/ttyUSB0"],"save_cartesian":false,"target_video_size":[320,240],"video_codec":"avc1"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"85fd2396-ff57-4304-bde6-677360b3e80b":{"content":{"application/json":{"schema":{"additionalProperties":true,"description":"Default response. May contain other fields.","properties":{"message":{"oneOf":[{"type":"string","title":"Message","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","title":"Message","uniqueKey":"message.oneOf.1","typeLabel":"null"}],"uniqueKey":"message","typeLabel":"string | null"},"status":{"default":"ok","enum":["ok","error"],"title":"Status","type":"string","uniqueKey":"status","typeLabel":"enum\u003cstring>"}},"title":"StatusResponse","type":"object","uniqueKey":"","typeLabel":"StatusResponse · object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":"ok"}}},"exampleType":"generated"}},"description":"Successful Response","exampleType":"generated"},"e6df937f-8f66-45b3-8b59-b38a3c4d8ae0":{"content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"title":"Location","type":"array","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"title":"Message","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"title":"Error Type","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"title":"Detail","type":"array","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"title":"HTTPValidationError","type":"object","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"description":"Validation Error","exampleType":"generated"}},"security":{},"servers":{}},"originalFileLocation":"openapi.yml"},"subdomain":"phospho","siteName":"phospho","title":"phospho starter pack documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-08-08T09:23:14.274Z","originalFileLocation":"recording/start-recording-episode.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"dark\"}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=\"Asynchronously start recording an episode in the background. Output format is chosen when stopping the recording.\">\u003cmeta data-mint-head name=\"application-name\" content=\"phospho\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_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/phospho/Dndv_TrG-FsEA7uE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_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/phospho/Dndv_TrG-FsEA7uE/_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/phospho/Dndv_TrG-FsEA7uE/_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/phospho/Dndv_TrG-FsEA7uE/_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/phospho/Dndv_TrG-FsEA7uE/_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/phospho/Dndv_TrG-FsEA7uE/_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/phospho/Dndv_TrG-FsEA7uE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"phospho starter pack documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"The toolkit for AI robotics\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"docs.phospho.ai\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.phospho.ai/recording/start-recording-episode\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://phospho.mintlify.site/logo/light.svg\">\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=\"phospho starter pack documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The toolkit for AI robotics\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://phospho.mintlify.site/logo/light.svg\">\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/phospho/Dndv_TrG-FsEA7uE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"phospho\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00FF00\">\u003cmeta data-mint-head name=\"og:logo\" content=\"/logo/logo.svg\">\u003cmeta data-mint-head name=\"twitter:url\" content=\"https://docs.phospho.ai\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.phospho.ai/recording/start-recording-episode\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/recording/start-recording-episode.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.phospho.ai/#organization\",\"name\":\"phospho\",\"url\":\"https://docs.phospho.ai\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.phospho.ai#website\",\"name\":\"phospho\",\"url\":\"https://docs.phospho.ai\",\"publisher\":{\"@id\":\"https://docs.phospho.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.phospho.ai/recording/start-recording-episode#webpage\",\"url\":\"https://docs.phospho.ai/recording/start-recording-episode\",\"name\":\"Start Recording Episode\",\"description\":\"Asynchronously start recording an episode in the background. Output format is chosen when stopping the recording.\",\"dateModified\":\"2025-08-08T09:23:14.274Z\",\"isPartOf\":{\"@id\":\"https://docs.phospho.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.phospho.ai/recording/start-recording-episode#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.phospho.ai/recording/start-recording-episode#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.phospho.ai/control/calibration-sequence\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start Recording Episode\",\"item\":\"https://docs.phospho.ai/recording/start-recording-episode\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.phospho.ai/recording/start-recording-episode#apireference\",\"headline\":\"Start Recording Episode\",\"name\":\"Start Recording Episode\",\"description\":\"Asynchronously start recording an episode in the background. Output format is chosen when stopping the recording.\",\"url\":\"https://docs.phospho.ai/recording/start-recording-episode\",\"mainEntityOfPage\":{\"@id\":\"https://docs.phospho.ai/recording/start-recording-episode#webpage\"},\"image\":\"https://docs.phospho.ai/logo/light.svg\",\"dateModified\":\"2025-08-08T09:23:14.274Z\",\"publisher\":{\"@id\":\"https://docs.phospho.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.phospho.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"phospho\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"phospho","nav":{"global":{"tabs":[{"tab":"phospho pro","href":"https://phospho.ai/pro?utm_source=docs"},{"tab":"Github","href":"https://github.com/phospho-app/phosphobot"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Welcome to phosphobot","href":"/welcome"},{"title":"Install phosphobot","href":"/installation"}]},{"group":"phosphobot Basic Usage","pages":[{"title":"Control your robot arm","href":"/basic-usage/teleop"},{"title":"Record a robotics dataset","href":"/basic-usage/dataset-recording"},{"title":"Manipulate LeRobot datasets","href":"/basic-usage/dataset-operations"},{"title":"Train a robotics AI model","href":"/basic-usage/training"},{"title":"Control robot with AI models","href":"/basic-usage/inference"},{"title":"VR Control with a Meta Quest","href":"/examples/teleop"}]},{"group":"Learn about AI and robotics","pages":[{"title":"Core Robotics Concepts","href":"/learn/overview"},{"title":"Kinematics","href":"/learn/kinematics"},{"title":"LeRobot Dataset Format","href":"/learn/lerobot-dataset"},{"title":"How to train a good AI model","href":"/learn/improve-robotics-ai-model"},{"title":"Train robotics AI models","href":"/learn/ai-models"},{"title":"Train SmolVLA","href":"/learn/train-smolvla"},{"title":"Policies in AI Robotics","href":"/learn/policies"},{"title":"Gravity Compensation","href":"/learn/gravity-compensation"},{"title":"Cameras","href":"/learn/cameras"}]},{"group":"Hardware","pages":[{"title":"Starter pack unboxing (DK2)","href":"/unboxings/dk2"},{"title":"SO-101 Quickstart Guide","href":"/so-101/quickstart"},{"title":"SO-100 quickstart guide","href":"/so-100/quickstart"},{"title":"Dev kit unboxing (DK1)","href":"/unboxings/dk1"}]},{"group":"API Reference","pages":[{"group":"Control","icon":"robot","pages":[{"openapi":"post /calibrate","title":"Calibrate Robot","href":"/control/calibration-sequence"},{"openapi":"post /move/init","title":"Initialize Robot","href":"/control/move-init"},{"openapi":"post /move/teleop","title":"Teleoperation Control","href":"/control/move-teleoperation"},{"icon":"socks","title":"Teleoperation Control (WebSocket)","href":"/control/move-teleoperation-ws"},{"openapi":"post /move/absolute","title":"Move to Absolute Position","href":"/control/move-absolute-position"},{"openapi":"post /move/relative","title":"Move to Relative Position","href":"/control/move-relative-position"},{"openapi":"post /move/leader/start","title":"Use the leader arm to control the follower arm","href":"/control/move-leader-start"},{"openapi":"post /move/leader/stop","title":"Stop the leader-follower control","href":"/control/move-leader-stop"},{"openapi":"post /end-effector/read","title":"Read End-Effector Position","href":"/control/end-effector-state"},{"openapi":"post /torque/read","title":"Read Torque","href":"/control/read-torques"},{"openapi":"post /torque/toggle","title":"Toggle Torque","href":"/control/turn-torque"},{"openapi":"post /joints/read","title":"Read Joint Positions","href":"/control/read-joints"},{"openapi":"post /joints/write","title":"Write Joint Positions","href":"/control/write-joints"},{"openapi":"post /temperature/read","title":"Read Temperature","href":"/control/read-temperature"},{"openapi":"post /temperature/write","title":"Write the Maximum Temperature for Joints","description":"Set the robot's maximum temperature for motors..","href":"/control/write-temperature"}]},{"group":"Recording","icon":"database","pages":[{"openapi":"post /recording/start","title":"Start Recording Episode","href":"/recording/start-recording-episode"},{"openapi":"post /recording/stop","title":"Stop Recording Episode","description":"Stop the recording of the episode. The data is saved to disk to the user home directory, in the `phosphobot` folder.","href":"/recording/stop-recording-episode"},{"openapi":"post /recording/play","title":"Play Recording","href":"/recording/play-recording"}]},{"group":"AI model","icon":"brain","pages":[{"openapi":"post /training/start","title":"Start training a model","href":"/ai-training/start-training"},{"openapi":"post /training/cancel","title":"Cancel Training","href":"/ai-training/cancel-training"},{"openapi":"post /ai-control/start","title":"Start the auto control by AI","href":"/ai-training/ai-control-start"},{"openapi":"post /ai-control/stop","title":"Stop the auto control by AI","href":"/ai-training/ai-control-stop"}]},{"group":"Camera","icon":"camera","pages":[{"openapi":"get /video/{camera_id}","title":"Video Feed For Camera","href":"/camera/video-feed-for-camera"},{"openapi":"get /frames","title":"Get All Camera Frames","href":"/camera/frames"},{"openapi":"post /cameras/refresh","title":"Refresh Camera List","href":"/camera/cameras-refresh"}]}]},{"group":"Examples","pages":[{"title":"Simple controls","href":"/examples/control"},{"title":"Computer vision","href":"/examples/vision"},{"title":"VR Control from anywhere in the world","href":"/examples/teleop-from-anywhere"},{"title":"MCP Robotics: Controlling Robots with LLMs using phosphobot MCP","href":"/examples/mcp-for-robotics"}]},{"group":"Other","pages":[{"title":"Frequently Asked Questions","href":"/faq"}]}]}]},"basePath":"","title":"phospho starter pack documentation","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}