Starts an asynchronous analysis pipeline. Returns immediately with a task_id
that can be used to track progress via SocketIO.
You can run visual analysis, speech transcription, face clustering, and
hierarchical Summary Analysis in a single call. The REST endpoint runs
directly and does not require an MCP client, agent, or approval step.
Summary Analysis requires a supported Apple silicon or Windows device and
a locally downloaded Summary model. Each summary path must already have
complete visual analysis or be included in visual_media_paths in the same
request.
For throughput, batch many files into one request instead of sending many
single-file requests. Jumper loads ML models per analysis request, so one
50-file request is much faster than 50 one-file requests on the same node.
Only one analysis task can run at a time per backend instance. A new analyze
request first asks the current task to stop. If the previous task is still
unwinding, Jumper returns 409.
Optional speaker-count hint for pyannote diarization. Use auto for unconstrained detection, 1-4 for num_speakers, or 5+ for min_speakers=5 and max_speakers=12.
Optional Qwen ASR preference for Qwen-supported languages. Use faster for the 0.6B model, more accurate for the 1.7B model, or auto/default to use Jumper's default.
Optional named reference images used as defaults for all face jobs. Requires a valid face_clustering_jobs entry. Applied after grouping and before Summary Analysis.
Use this ID to join a SocketIO room for progress events
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Jumper Docs","description":"Documentation for Jumper: local AI video tagging, footage search, video analysis, and agentic video editing for Premiere Pro, Resolve, Avid, and Final Cut Pro.","colors":{"primary":"#8987F4","light":"#a7a5ff","dark":"#7366de"},"logo":{"light":"https://mintcdn.com/jumper/HwBuRGSKkF9cuWvI/logo/Full-Logo-Black.png?fit=max\u0026auto=format\u0026n=HwBuRGSKkF9cuWvI\u0026q=85\u0026s=5dc6ae2de103de76f9bbb0c4913f61e0","dark":"https://mintcdn.com/jumper/HwBuRGSKkF9cuWvI/logo/Full-Logo-White.png?fit=max\u0026auto=format\u0026n=HwBuRGSKkF9cuWvI\u0026q=85\u0026s=009606e3869623ab26aeb116b2ec769a"},"favicon":"https://mintcdn.com/jumper/ue-U8-yof-QcETpv/favicon.png?fit=max\u0026auto=format\u0026n=ue-U8-yof-QcETpv\u0026q=85\u0026s=955f382a6791dab0f305d158c5c11ddd","appearance":{"default":"system"},"navbar":{"links":[{"href":"mailto:hello@getjumper.io","label":"Support"}],"primary":{"type":"button","label":"Jumper Website","href":"https://getjumper.io"}},"footer":{"socials":{"discord":"https://discord.getjumper.io","youtube":"https://www.youtube.com/channel/UCPaAO35CauOy3XOOUSZoSEw","linkedin":"https://www.linkedin.com/company/getjumper"},"links":[{"header":"About","items":[{"label":"Become an Affiliate","href":"/affiliate"},{"label":"Press","href":"/press"},{"label":"Credits","href":"/acknowledgements/acknowledgements"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"/legal/privacy"},{"label":"Data Sovereignty","href":"/core-concepts/data-sovereignty"},{"label":"Refund Policy","href":"/legal/refund"},{"label":"EULA","href":"/legal/eula"}]}]},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"thumbnails":{"appearance":"dark"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Buy Jumper","icon":"shop","href":"https://getjumper.io/#pricing"},{"anchor":"Discord Community","icon":"discord","href":"https://discord.getjumper.io/"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/channel/UCPaAO35CauOy3XOOUSZoSEw"},{"anchor":"Blog","icon":"newspaper","href":"https://getjumper.io/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"jumper","hasAudioNarration":false,"actualSubdomain":"jumper","customDomains":["docs.getjumper.io"],"gitSource":{"type":"github","owner":"getjumper","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6af2c0568c7bd0c916fd7306","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Documentation","count":67},{"language":"default","tag":"API Reference","count":48},{"language":"default","tag":"Endpoints","count":45},{"language":"default","tag":"Guides","count":17},{"language":"default","tag":"Platforms","count":12},{"language":"default","tag":"Core concepts","count":11},{"language":"default","tag":"Reference","count":10},{"language":"default","tag":"Get Started","count":8},{"language":"default","tag":"Watch Folders","count":7},{"language":"default","tag":"Enterprise","count":6}]},"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":"div[data-table-wrapper=\"true\"]{background:#f8f8f8;border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;padding-top:0px;padding-bottom:0px;margin-left:0px!important;margin-right:0px!important;width:100%}.dark div[data-table-wrapper=\"true\"]{background:#1a1a1a;border-color:#333}div[data-table-wrapper=\"true\"] table{width:100%;border-collapse:collapse;background:transparent}div[data-table-wrapper=\"true\"] thead{background:#f8f8f8}.dark div[data-table-wrapper=\"true\"] thead{background:#1a1a1a}div[data-table-wrapper=\"true\"] th{padding:10px 16px;text-align:left;font-weight:500;font-size:12px;color:#4a4a4a;border-bottom:1px solid #e0e0e0;vertical-align:middle}.dark div[data-table-wrapper=\"true\"] th{color:#d4d4d4;border-bottom-color:#333}div[data-table-wrapper=\"true\"] tbody tr{background:#fff;border-bottom:1px solid #e0e0e0}.dark div[data-table-wrapper=\"true\"] tbody tr{background:#1a1a1a;border-bottom-color:#333}div[data-table-wrapper=\"true\"] tbody tr:last-child{border-bottom:none}div[data-table-wrapper=\"true\"] td{padding:10px 16px;vertical-align:middle;color:#4a4a4a;font-size:14px}.dark div[data-table-wrapper=\"true\"] td{color:#d4d4d4}div[data-table-wrapper=\"true\"] td:not(:last-child){border-right:none}body h2:not(.card h2){font-weight:600!important;font-size:1.2rem!important;margin-top:3rem}h3{font-weight:500!important;font-size:1rem!important;margin-top:2rem}div[data-table-wrapper=\"true\"] td strong{font-weight:500;color:#333}.dark div[data-table-wrapper=\"true\"] td strong{color:#e4e4e4}div[data-table-wrapper=\"true\"] p{margin:0}div[class*=\"px-[var(--page-padding)]\"],div[class*=\"px-(--page-padding)\"]{padding-left:0px!important;padding-right:0px!important}details.accordion summary p.m-0,p.m-0[data-component-part=\"accordion-title\"]{font-size:14px}.chat-interface :not(pre)>code{background:transparent;border-radius:4px;padding:2px 6px;font-family:\"SF Mono\", Monaco, \"Inconsolata\", \"Roboto Mono\", \"Source Code Pro\",\n monospace;font-size:0.85em;color:#aa2200}.chat-interface ul{list-style-type:disc;padding-left:20px}.dark .chat-interface :not(pre)>code{border-color:rgba(255, 255, 255, 0.2);background:rgba(0, 0, 0, 0.4);color:#ff8f34}.chat-interface pre{margin:0.5em 0;border-radius:6px;overflow-x:auto}.chat-interface pre code{font-size:0.8em;padding:0.75em 1em}.horizontal-steps{counter-reset:horizontal-step}.horizontal-step{counter-increment:horizontal-step}.horizontal-step .step-number::before{content:counter(horizontal-step)}#pagination{gap:0.5rem;margin-bottom:1rem}#pagination>a{border:1px solid rgba(127, 127, 127, 0.2);flex-grow:1;padding:1rem 1rem;border-radius:0.5rem}#pagination>a:hover{background-color:rgba(127, 127, 127, 0.2)}#pagination>a:last-child{justify-content:flex-end}:root{--background-dark: 18 18 18}"}],"page":{"pagePath":"api-reference/analysis/start-media-analysis","slug":"/api-reference/analysis/start-media-analysis","pageMetadata":{"title":"Start media analysis","description":"Starts an asynchronous analysis pipeline. Returns immediately with a `task_id`\nthat can be used to track progress via SocketIO.\n\nYou can run visual analysis, speech transcription, face clustering, and\nhierarchical Summary Analysis in a single call. The REST endpoint runs\ndirectly and does not require an MCP client, agent, or approval step.\n\nSummary Analysis requires a supported Apple silicon or Windows device and\na locally downloaded Summary model. Each summary path must already have\ncomplete visual analysis or be included in `visual_media_paths` in the same\nrequest.\n\nFor throughput, batch many files into one request instead of sending many\nsingle-file requests. Jumper loads ML models per analysis request, so one\n50-file request is much faster than 50 one-file requests on the same node.\n\nOnly one analysis task can run at a time per backend instance. A new analyze\nrequest first asks the current task to stop. If the previous task is still\nunwinding, Jumper returns `409`.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /analyze","href":"/api-reference/analysis/start-media-analysis","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Starts an asynchronous analysis pipeline. Returns immediately with a \", _jsx(_components.code, {\n children: \"task_id\"\n }), \"\\nthat can be used to track progress via SocketIO.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"You can run visual analysis, speech transcription, face clustering, and\\nhierarchical Summary Analysis in a single call. The REST endpoint runs\\ndirectly and does not require an MCP client, agent, or approval step.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Summary Analysis requires a supported Apple silicon or Windows device and\\na locally downloaded Summary model. Each summary path must already have\\ncomplete visual analysis or be included in \", _jsx(_components.code, {\n children: \"visual_media_paths\"\n }), \" in the same\\nrequest.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"For throughput, batch many files into one request instead of sending many\\nsingle-file requests. Jumper loads ML models per analysis request, so one\\n50-file request is much faster than 50 one-file requests on the same node.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Only one analysis task can run at a time per backend instance. A new analyze\\nrequest first asks the current task to stop. If the previous task is still\\nunwinding, Jumper returns \", _jsx(_components.code, {\n children: \"409\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Start media analysis","description":"Starts an asynchronous analysis pipeline. Returns immediately with a `task_id`\nthat can be used to track progress via SocketIO.\n\nYou can run visual analysis, speech transcription, face clustering, and\nhierarchical Summary Analysis in a single call. The REST endpoint runs\ndirectly and does not require an MCP client, agent, or approval step.\n\nSummary Analysis requires a supported Apple silicon or Windows device and\na locally downloaded Summary model. Each summary path must already have\ncomplete visual analysis or be included in `visual_media_paths` in the same\nrequest.\n\nFor throughput, batch many files into one request instead of sending many\nsingle-file requests. Jumper loads ML models per analysis request, so one\n50-file request is much faster than 50 one-file requests on the same node.\n\nOnly one analysis task can run at a time per backend instance. A new analyze\nrequest first asks the current task to stop. If the previous task is still\nunwinding, Jumper returns `409`.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /analyze","href":"/api-reference/analysis/start-media-analysis","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Start media analysis","description":"Starts an asynchronous analysis pipeline. Returns immediately with a `task_id`\nthat can be used to track progress via SocketIO.\n\nYou can run visual analysis, speech transcription, face clustering, and\nhierarchical Summary Analysis in a single call. The REST endpoint runs\ndirectly and does not require an MCP client, agent, or approval step.\n\nSummary Analysis requires a supported Apple silicon or Windows device and\na locally downloaded Summary model. Each summary path must already have\ncomplete visual analysis or be included in `visual_media_paths` in the same\nrequest.\n\nFor throughput, batch many files into one request instead of sending many\nsingle-file requests. Jumper loads ML models per analysis request, so one\n50-file request is much faster than 50 one-file requests on the same node.\n\nOnly one analysis task can run at a time per backend instance. A new analyze\nrequest first asks the current task to stop. If the previous task is still\nunwinding, Jumper returns `409`.\n","tags":["Analysis"],"requestBody":"5cb64cd5-2d88-481e-b0f1-1661d8e965e6","responses":{"202":"d1348f6e-38a7-4cf5-a307-096e15ea0b66","400":"5149b919-6865-47ef-a3e5-b33a49d74b58","401":"b29b014f-fd1f-43f9-a244-66844d50636a","403":"353ca402-2d5e-4109-8457-3f3fa17def0c","409":"00b1b649-a812-4cf8-9f54-bffc0459cba9","503":"2f42019b-c1d6-4035-ba7a-b1cc5369fd4f"},"method":"post","type":"path","servers":["7ee8781a-703d-4410-b801-1112e383ade5"],"security":["23ad31ef-3480-42d9-afa7-c4cf36f4e160"],"path":"/analyze","baseUrlOptions":["http://localhost:6699/api/v1"],"title":"Start media analysis","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cache_dir"],"properties":{"cache_dir":{"type":"string","description":"Where to store analysis results","isRequired":true,"uniqueKey":"cache_dir","typeLabel":"string"},"detect_speakers":{"type":"boolean","default":true,"description":"Set to false to skip final speaker diarization for transcription jobs.","uniqueKey":"detect_speakers","typeLabel":"boolean"},"speaker_count":{"oneOf":[{"type":"string","description":"Optional speaker-count hint for pyannote diarization. Use auto for unconstrained detection, 1-4 for num_speakers, or 5+ for min_speakers=5 and max_speakers=12.","default":"auto","enum":["auto","auto-detect","5+"],"uniqueKey":"speaker_count.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"integer","description":"Optional speaker-count hint for pyannote diarization. Use auto for unconstrained detection, 1-4 for num_speakers, or 5+ for min_speakers=5 and max_speakers=12.","default":"auto","enum":[1,2,3,4],"uniqueKey":"speaker_count.oneOf.1","typeLabel":"enum\u003cinteger>"}],"uniqueKey":"speaker_count","typeLabel":"enum\u003cstring> | enum\u003cinteger>"},"preferred_qwen_model_key":{"type":"string","enum":["auto","faster","more accurate","qwen3-asr-0.6b","qwen3-asr-1.7b"],"default":"auto","description":"Optional Qwen ASR preference for Qwen-supported languages. Use faster for the 0.6B model, more accurate for the 1.7B model, or auto/default to use Jumper's default.","uniqueKey":"preferred_qwen_model_key","typeLabel":"enum\u003cstring>"},"visual_media_paths":{"type":"array","items":{"type":"string","uniqueKey":"visual_media_paths.items.[INDEX]","typeLabel":"string"},"description":"Files to run visual analysis on","uniqueKey":"visual_media_paths","typeLabel":"string[]"},"transcription_jobs":{"type":"array","items":{"type":"object","required":["path"],"properties":{"path":{"type":"string","isRequired":true,"uniqueKey":"transcription_jobs.items.[INDEX].path","typeLabel":"string"},"language":{"type":"string","default":"english","uniqueKey":"transcription_jobs.items.[INDEX].language","typeLabel":"string"},"detect_speakers":{"type":"boolean","description":"Optional per-job override for speaker diarization. Omit to inherit the top-level detect_speakers value.","uniqueKey":"transcription_jobs.items.[INDEX].detect_speakers","typeLabel":"boolean"},"speaker_count":{"oneOf":[{"type":"string","description":"Optional per-job speaker-count hint. Omit to inherit the top-level speaker_count value.","enum":["auto","auto-detect","5+"],"uniqueKey":"transcription_jobs.items.[INDEX].speaker_count.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"integer","description":"Optional per-job speaker-count hint. Omit to inherit the top-level speaker_count value.","enum":[1,2,3,4],"uniqueKey":"transcription_jobs.items.[INDEX].speaker_count.oneOf.1","typeLabel":"enum\u003cinteger>"}],"uniqueKey":"transcription_jobs.items.[INDEX].speaker_count","typeLabel":"enum\u003cstring> | enum\u003cinteger>"},"preferred_qwen_model_key":{"type":"string","enum":["auto","faster","more accurate","qwen3-asr-0.6b","qwen3-asr-1.7b"],"description":"Optional per-job Qwen ASR preference for Qwen-supported languages. Omit to inherit the top-level preferred_qwen_model_key value.","uniqueKey":"transcription_jobs.items.[INDEX].preferred_qwen_model_key","typeLabel":"enum\u003cstring>"},"channels":{"oneOf":[{"type":"array","items":{"type":"integer","minimum":1,"uniqueKey":"transcription_jobs.items.[INDEX].channels.oneOf.0.items.[INDEX]","typeLabel":"integer"},"default":null,"description":"Omit, set to null, or pass an empty array to use legacy downmix-to-mono extraction. Pass a non-empty array to explicitly transcribe 1-based audio channel/track numbers; [1] means only channel 1. Multiple selected channels are analyzed separately, then merged with conservative near-duplicate removal.","uniqueKey":"transcription_jobs.items.[INDEX].channels.oneOf.0","typeLabel":"integer[]"},{"type":"null","items":{"type":"integer","minimum":1},"default":null,"description":"Omit, set to null, or pass an empty array to use legacy downmix-to-mono extraction. Pass a non-empty array to explicitly transcribe 1-based audio channel/track numbers; [1] means only channel 1. Multiple selected channels are analyzed separately, then merged with conservative near-duplicate removal.","uniqueKey":"transcription_jobs.items.[INDEX].channels.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcription_jobs.items.[INDEX].channels","typeLabel":"integer[] | null"}},"uniqueKey":"transcription_jobs.items.[INDEX]","typeLabel":"object"},"description":"Files to transcribe, with optional language and channel hints","uniqueKey":"transcription_jobs","typeLabel":"object[]"},"face_clustering_jobs":{"type":"array","items":{"type":"object","required":["cluster_job_name","face_media_paths"],"properties":{"cluster_job_name":{"type":"string","description":"Name for this clustering job","isRequired":true,"uniqueKey":"face_clustering_jobs.items.[INDEX].cluster_job_name","typeLabel":"string"},"face_media_paths":{"type":"array","items":{"type":"string","uniqueKey":"face_clustering_jobs.items.[INDEX].face_media_paths.items.[INDEX]","typeLabel":"string"},"description":"Paths to media files for face detection","isRequired":true,"uniqueKey":"face_clustering_jobs.items.[INDEX].face_media_paths","typeLabel":"string[]"},"face_eps":{"type":"number","description":"Clustering sensitivity (default 0.48)","uniqueKey":"face_clustering_jobs.items.[INDEX].face_eps","typeLabel":"number"},"face_min_samples":{"type":"integer","description":"Minimum faces to form a cluster (default 5)","uniqueKey":"face_clustering_jobs.items.[INDEX].face_min_samples","typeLabel":"integer"},"sample_faces":{"type":"array","maxItems":100,"items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":200,"isRequired":true,"uniqueKey":"face_clustering_jobs.items.[INDEX].sample_faces.items.[INDEX].name","typeLabel":"string"},"face_images":{"type":"array","maxItems":3,"items":{"type":"string","uniqueKey":"face_clustering_jobs.items.[INDEX].sample_faces.items.[INDEX].face_images.items.[INDEX]","typeLabel":"string"},"description":"Base64 image bytes or data:image/...;base64,... values. Remote image URLs are unsupported.","uniqueKey":"face_clustering_jobs.items.[INDEX].sample_faces.items.[INDEX].face_images","typeLabel":"string[]"},"face_paths":{"type":"array","maxItems":3,"items":{"type":"string","uniqueKey":"face_clustering_jobs.items.[INDEX].sample_faces.items.[INDEX].face_paths.items.[INDEX]","typeLabel":"string"},"description":"Local image paths readable by Jumper.","uniqueKey":"face_clustering_jobs.items.[INDEX].sample_faces.items.[INDEX].face_paths","typeLabel":"string[]"}},"description":"One person with 1-3 reference images total across both arrays. Each image must show one face.","uniqueKey":"face_clustering_jobs.items.[INDEX].sample_faces.items.[INDEX]","typeLabel":"object"},"description":"Named references for this collection. Overrides top-level sample_faces; [] disables automatic naming for this job.","uniqueKey":"face_clustering_jobs.items.[INDEX].sample_faces","typeLabel":"object[]"}},"uniqueKey":"face_clustering_jobs.items.[INDEX]","typeLabel":"object"},"description":"Face detection and clustering job definitions","uniqueKey":"face_clustering_jobs","typeLabel":"object[]"},"sample_faces":{"type":"array","maxItems":100,"items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":200,"isRequired":true,"uniqueKey":"sample_faces.items.[INDEX].name","typeLabel":"string"},"face_images":{"type":"array","maxItems":3,"items":{"type":"string","uniqueKey":"sample_faces.items.[INDEX].face_images.items.[INDEX]","typeLabel":"string"},"description":"Base64 image bytes or data:image/...;base64,... values. Remote image URLs are unsupported.","uniqueKey":"sample_faces.items.[INDEX].face_images","typeLabel":"string[]"},"face_paths":{"type":"array","maxItems":3,"items":{"type":"string","uniqueKey":"sample_faces.items.[INDEX].face_paths.items.[INDEX]","typeLabel":"string"},"description":"Local image paths readable by Jumper.","uniqueKey":"sample_faces.items.[INDEX].face_paths","typeLabel":"string[]"}},"description":"One person with 1-3 reference images total across both arrays. Each image must show one face.","uniqueKey":"sample_faces.items.[INDEX]","typeLabel":"object"},"description":"Optional named reference images used as defaults for all face jobs. Requires a valid face_clustering_jobs entry. Applied after grouping and before Summary Analysis.","uniqueKey":"sample_faces","typeLabel":"object[]"},"summary_requests":{"type":"array","items":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":"Visual media path. Visual analysis must exist or be included in visual_media_paths.","isRequired":true,"uniqueKey":"summary_requests.items.[INDEX].path","typeLabel":"string"},"analysis_id":{"type":"string","description":"Optional stable ID when replacing a named analysis; otherwise Jumper creates one.","uniqueKey":"summary_requests.items.[INDEX].analysis_id","typeLabel":"string"},"analysis_name":{"type":"string","uniqueKey":"summary_requests.items.[INDEX].analysis_name","typeLabel":"string"},"collection":{"oneOf":[{"type":"object","description":"Optional organizational grouping for this independent per-file analysis.\nOmitting it creates a standalone analysis. Collection names reuse existing\nrecords case-insensitively; collections do not combine clips or alter artifacts.\n","required":["name"],"properties":{"name":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"summary_requests.items.[INDEX].collection.oneOf.0.name","typeLabel":"string"},"id":{"type":"string","uniqueKey":"summary_requests.items.[INDEX].collection.oneOf.0.id","typeLabel":"string"},"description":{"oneOf":[{"type":"string","uniqueKey":"summary_requests.items.[INDEX].collection.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"summary_requests.items.[INDEX].collection.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"summary_requests.items.[INDEX].collection.oneOf.0.description","typeLabel":"string | null"}},"uniqueKey":"summary_requests.items.[INDEX].collection.oneOf.0","typeLabel":"object"},{"type":"null","description":"Optional organizational grouping for this independent per-file analysis.\nOmitting it creates a standalone analysis. Collection names reuse existing\nrecords case-insensitively; collections do not combine clips or alter artifacts.\n","required":["name"],"properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1},"description":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"summary_requests.items.[INDEX].collection.oneOf.1","typeLabel":"null"}],"uniqueKey":"summary_requests.items.[INDEX].collection","typeLabel":"object | null"},"footage_context":{"oneOf":[{"type":"string","description":"Factual operator context about what the footage is; prompt guidance, not source evidence.","uniqueKey":"summary_requests.items.[INDEX].footage_context.oneOf.0","typeLabel":"string"},{"type":"null","description":"Factual operator context about what the footage is; prompt guidance, not source evidence.","uniqueKey":"summary_requests.items.[INDEX].footage_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"summary_requests.items.[INDEX].footage_context","typeLabel":"string | null"},"summary_objective":{"type":"object","properties":{"preset":{"type":"string","default":"general_understanding","enum":["general_understanding","trailer_teaser","action_trailer","visual_showcase","highlight_reel","event_recap","documentary_research","unscripted_story","interview_selects","archive_discovery","season_theme_analysis","b_roll_selects","social_cutdown","character_storyline_tracking","continuity_review","custom"],"description":"Editorial task the hierarchy should optimize for.","uniqueKey":"summary_requests.items.[INDEX].summary_objective.preset","typeLabel":"enum\u003cstring>"},"description":{"oneOf":[{"type":"string","uniqueKey":"summary_requests.items.[INDEX].summary_objective.description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"summary_requests.items.[INDEX].summary_objective.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"summary_requests.items.[INDEX].summary_objective.description","typeLabel":"string | null"},"priority_hints":{"type":"array","items":{"type":"string","enum":["beauty_scale","action_danger_violence","conflict","reactions","humor","reveals_reversals","strong_dialogue","people_relationships","claims_evidence","themes_contradictions","rare_material","clean_coverage","processes_demos","crowd_energy","locations_atmosphere","resolutions_open_questions"],"uniqueKey":"summary_requests.items.[INDEX].summary_objective.priority_hints.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"summary_requests.items.[INDEX].summary_objective.priority_hints","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"summary_requests.items.[INDEX].summary_objective","typeLabel":"object"},"use_transcript":{"type":"boolean","default":true,"uniqueKey":"summary_requests.items.[INDEX].use_transcript","typeLabel":"boolean"},"output_language":{"type":"string","default":"auto","pattern":"^(auto|[a-z]{2,3}(?:-[a-z0-9]{2,8})*)$","description":"`auto` or a lowercase ISO language code such as `en` or `sv`.","uniqueKey":"summary_requests.items.[INDEX].output_language","typeLabel":"string"},"face_collection":{"oneOf":[{"type":"string","description":"Optional existing face-clustering job name used to resolve named people.","uniqueKey":"summary_requests.items.[INDEX].face_collection.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional existing face-clustering job name used to resolve named people.","uniqueKey":"summary_requests.items.[INDEX].face_collection.oneOf.1","typeLabel":"null"}],"uniqueKey":"summary_requests.items.[INDEX].face_collection","typeLabel":"string | null"},"summary_model_key":{"type":"string","enum":["qwen3-vl-2b-instruct","qwen3-vl-4b-instruct","qwen3-vl-8b-instruct","qwen3-vl-4b-instruct-8bit","qwen3-vl-8b-instruct-8bit","qwen3-vl-32b-instruct-8bit"],"description":"Optional platform-compatible Summary model. Omit to use the recommended model for this machine; it must already be downloaded.","uniqueKey":"summary_requests.items.[INDEX].summary_model_key","typeLabel":"enum\u003cstring>"}},"uniqueKey":"summary_requests.items.[INDEX]","typeLabel":"object"},"description":"Named per-media hierarchical summaries. Requires a downloaded Summary model on a supported Apple silicon or Windows device.","uniqueKey":"summary_requests","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"cache_dir":"\u003cstring>","detect_speakers":true,"speaker_count":"auto","preferred_qwen_model_key":"auto","visual_media_paths":["\u003cstring>"],"transcription_jobs":[{"path":"\u003cstring>","language":"english","detect_speakers":true,"channels":null}],"face_clustering_jobs":[{"cluster_job_name":"\u003cstring>","face_media_paths":["\u003cstring>"],"face_eps":123,"face_min_samples":123,"sample_faces":[{"name":"\u003cstring>","face_images":["\u003cstring>"],"face_paths":["\u003cstring>"]}]}],"sample_faces":[{"name":"\u003cstring>","face_images":["\u003cstring>"],"face_paths":["\u003cstring>"]}],"summary_requests":[{"path":"\u003cstring>","analysis_id":"\u003cstring>","analysis_name":"\u003cstring>","collection":{"name":"\u003cstring>","id":"\u003cstring>","description":"\u003cstring>"},"footage_context":"\u003cstring>","summary_objective":{"preset":"general_understanding","description":"\u003cstring>","priority_hints":[]},"use_transcript":true,"output_language":"auto","face_collection":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"d1348f6e-38a7-4cf5-a307-096e15ea0b66":{"description":"Analysis started","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Analysis started","uniqueKey":"message","typeLabel":"string"},"task_id":{"type":"string","description":"Use this ID to join a SocketIO room for progress events","uniqueKey":"task_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Analysis started","task_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"5149b919-6865-47ef-a3e5-b33a49d74b58":{"description":"Invalid request, no valid media supplied, or Summary Analysis is unsupported on this platform","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Additional validation detail. Authentication failures include this field.","uniqueKey":"message","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"b29b014f-fd1f-43f9-a244-66844d50636a":{"description":"No license key was supplied in X-License-Key or the JSON license_key field.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Additional validation detail. Authentication failures include this field.","uniqueKey":"message","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":"Authentication required","message":"Provide license_key in request body or X-License-Key header"},"examples":{"Example":{"title":"Example","value":{"error":"Authentication required","message":"Provide license_key in request body or X-License-Key header"}}},"exampleType":"examples"}},"exampleType":"examples"},"353ca402-2d5e-4109-8457-3f3fa17def0c":{"description":"The supplied key could not be validated, lacks Pro entitlements, or an Enterprise policy denied the action. Inspect message or policy_error for the reason.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"string"},"message":{"type":"string","description":"Additional validation detail. Authentication failures include this field.","uniqueKey":"oneOf.0.message","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["policy_error"],"properties":{"policy_error":{"type":"string","description":"Enterprise policy restriction that denied the request.","isRequired":true,"uniqueKey":"oneOf.1.policy_error","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"invalidKey":{"title":"invalidKey","value":{"error":"Jumper Pro license required","message":"License invalid and activation not required: license does not exist"}},"nonProKey":{"title":"nonProKey","value":{"error":"Jumper Pro license required","message":"OK"}},"policyDenied":{"title":"policyDenied","value":{"policy_error":"This action is not available under your organization's Jumper policy"}}},"exampleType":"examples"}},"exampleType":"examples"},"00b1b649-a812-4cf8-9f54-bffc0459cba9":{"description":"Another analysis task is still stopping, the selected Summary model is not downloaded, or the Analysis folder is unavailable, for example on a disconnected drive","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Additional validation detail. Authentication failures include this field.","uniqueKey":"message","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"2f42019b-c1d6-4035-ba7a-b1cc5369fd4f":{"description":"Models still loading","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Additional validation detail. Authentication failures include this field.","uniqueKey":"message","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"23ad31ef-3480-42d9-afa7-c4cf36f4e160":{"HeaderAuth":{"type":"apiKey","in":"header","name":"X-License-Key","description":"Raw Jumper Pro license key on every authenticated request, without a Bearer prefix","scopes":[],"schemeName":"HeaderAuth"}}},"servers":{"7ee8781a-703d-4410-b801-1112e383ade5":{"url":"http://localhost:6699/api/v1","description":"Local Jumper backend"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-License-Key","description":"Raw Jumper Pro license key on every authenticated request, without a Bearer prefix","scopes":[],"schemeName":"HeaderAuth"},"schema":{"title":"X-License-Key","type":"string","description":"Raw Jumper Pro license key on every authenticated request, without a Bearer prefix","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"HeaderAuth","name":"X-License-Key"}],"title":"HeaderAuth"}]},"originalFileLocation":"api-reference/openapi-v1.yaml"},"subdomain":"jumper","siteName":"Jumper Docs","title":"Start media analysis - Jumper Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"api-reference/analysis/start-media-analysis.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=\"Starts an asynchronous analysis pipeline. Returns immediately with a task_id that can be used to track progress via SocketIO. You can run visual analysis, speech transcription, face clustering, and hierarchical Summary Analysis in a single call. The REST endpoint runs directly and does not require an MCP client, agent, or approval step. Summary Analysis requires a supported Apple silicon or Windows device and a locally downloaded Summary model. Each summary path must already have complete visual analysis or be included in visual_media_paths in the same request. For throughput, batch many files into one request instead of sending many single-file requests. Jumper loads ML models per analysis request, so one 50-file request is much faster than 50 one-file requests on the same node. Only one analysis task can run at a time per backend instance. A new analyze request first asks the current task to stop. If the previous task is still unwinding, Jumper returns 409.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Jumper Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jumper/SV_sF978W66AZ35_/_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/jumper/SV_sF978W66AZ35_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jumper/SV_sF978W66AZ35_/_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/jumper/SV_sF978W66AZ35_/_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/jumper/SV_sF978W66AZ35_/_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/jumper/SV_sF978W66AZ35_/_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/jumper/SV_sF978W66AZ35_/_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/jumper/SV_sF978W66AZ35_/_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/jumper/SV_sF978W66AZ35_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Start media analysis - Jumper Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts an asynchronous analysis pipeline. Returns immediately with a task_id that can be used to track progress via SocketIO. You can run visual analysis, speech transcription, face clustering, and hierarchical Summary Analysis in a single call. The REST endpoint runs directly and does not require an MCP client, agent, or approval step. Summary Analysis requires a supported Apple silicon or Windows device and a locally downloaded Summary model. Each summary path must already have complete visual analysis or be included in visual_media_paths in the same request. For throughput, batch many files into one request instead of sending many single-file requests. Jumper loads ML models per analysis request, so one 50-file request is much faster than 50 one-file requests on the same node. Only one analysis task can run at a time per backend instance. A new analyze request first asks the current task to stop. If the previous task is still unwinding, Jumper returns 409.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Jumper Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://jumper.mintlify.site/_mintlify/api/og/v2?division=Analysis\u0026amp;title=Start+media+analysis\u0026amp;description=Starts+an+asynchronous+analysis+pipeline.+Returns+immediately+with+a+%60task_id%60%0Athat+can+be+used+to+track+progress+via+SocketIO.%0A%0AYou+can+run+visual+analysis%2C+sp\u0026amp;theme=12e3e8c56c1e7e94d56880ce\u0026amp;signature=6608e4faf1c42433dd626400d52c8055d858008040a364f99ddb0059c75c71b6\">\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=\"Start media analysis - Jumper Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts an asynchronous analysis pipeline. Returns immediately with a task_id that can be used to track progress via SocketIO. You can run visual analysis, speech transcription, face clustering, and hierarchical Summary Analysis in a single call. The REST endpoint runs directly and does not require an MCP client, agent, or approval step. Summary Analysis requires a supported Apple silicon or Windows device and a locally downloaded Summary model. Each summary path must already have complete visual analysis or be included in visual_media_paths in the same request. For throughput, batch many files into one request instead of sending many single-file requests. Jumper loads ML models per analysis request, so one 50-file request is much faster than 50 one-file requests on the same node. Only one analysis task can run at a time per backend instance. A new analyze request first asks the current task to stop. If the previous task is still unwinding, Jumper returns 409.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://jumper.mintlify.site/_mintlify/api/og/v2?division=Analysis\u0026amp;title=Start+media+analysis\u0026amp;description=Starts+an+asynchronous+analysis+pipeline.+Returns+immediately+with+a+%60task_id%60%0Athat+can+be+used+to+track+progress+via+SocketIO.%0A%0AYou+can+run+visual+analysis%2C+sp\u0026amp;theme=12e3e8c56c1e7e94d56880ce\u0026amp;signature=6608e4faf1c42433dd626400d52c8055d858008040a364f99ddb0059c75c71b6\">\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/jumper/SV_sF978W66AZ35_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Jumper Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#8987F4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/analysis/start-media-analysis.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getjumper.io/#organization\",\"name\":\"Jumper Docs\",\"url\":\"https://docs.getjumper.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/jumper/HwBuRGSKkF9cuWvI/logo/Full-Logo-Black.png?fit=max\u0026auto=format\u0026n=HwBuRGSKkF9cuWvI\u0026q=85\u0026s=5dc6ae2de103de76f9bbb0c4913f61e0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getjumper.io#website\",\"name\":\"Jumper Docs\",\"url\":\"https://docs.getjumper.io\",\"publisher\":{\"@id\":\"https://docs.getjumper.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis#webpage\",\"url\":\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis\",\"name\":\"Start media analysis\",\"description\":\"Starts an asynchronous analysis pipeline. Returns immediately with a task_id that can be used to track progress via SocketIO. You can run visual analysis, speech transcription, face clustering, and hierarchical Summary Analysis in a single call. The REST endpoint runs directly and does not require an MCP client, agent, or approval step. Summary Analysis requires a supported Apple silicon or Windows device and a locally downloaded Summary model. Each summary path must already have complete visual analysis or be included in visual_media_paths in the same request. For throughput, batch many files into one request instead of sending many single-file requests. Jumper loads ML models per analysis request, so one 50-file request is much faster than 50 one-file requests on the same node. Only one analysis task can run at a time per backend instance. A new analyze request first asks the current task to stop. If the previous task is still unwinding, Jumper returns 409.\",\"isPartOf\":{\"@id\":\"https://docs.getjumper.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.getjumper.io/api-reference/health/health-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start media analysis\",\"item\":\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis#apireference\",\"headline\":\"Start media analysis\",\"name\":\"Start media analysis\",\"description\":\"Starts an asynchronous analysis pipeline. Returns immediately with a task_id that can be used to track progress via SocketIO. You can run visual analysis, speech transcription, face clustering, and hierarchical Summary Analysis in a single call. The REST endpoint runs directly and does not require an MCP client, agent, or approval step. Summary Analysis requires a supported Apple silicon or Windows device and a locally downloaded Summary model. Each summary path must already have complete visual analysis or be included in visual_media_paths in the same request. For throughput, batch many files into one request instead of sending many single-file requests. Jumper loads ML models per analysis request, so one 50-file request is much faster than 50 one-file requests on the same node. Only one analysis task can run at a time per backend instance. A new analyze request first asks the current task to stop. If the previous task is still unwinding, Jumper returns 409.\",\"url\":\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getjumper.io/api-reference/analysis/start-media-analysis#webpage\"},\"publisher\":{\"@id\":\"https://docs.getjumper.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getjumper.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Jumper Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Jumper Docs","nav":{"global":{"anchors":[{"anchor":"Buy Jumper","icon":"shop","href":"https://getjumper.io/#pricing"},{"anchor":"Discord Community","icon":"discord","href":"https://discord.getjumper.io/"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/channel/UCPaAO35CauOy3XOOUSZoSEw"},{"anchor":"Blog","icon":"newspaper","href":"https://getjumper.io/blog"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/macos"}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/developers"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Jumper Public API","icon":"braces","href":"/api-reference/introduction"},{"title":"API Spec Files","icon":"file-code","href":"/api-reference/spec-files"},{"title":null,"href":"/api-reference/public-api-v1"}]},{"group":"Endpoints","pages":[{"group":"Health","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml get /health","href":"/api-reference/health/health-check"}]},{"group":"Models","pages":[{"title":"Get currently loaded models","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml get /models/loaded","href":"/api-reference/models/get-currently-loaded-models"},{"title":"List available models","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml get /models/available","href":"/api-reference/models/list-available-models"},{"title":"Switch the active visual model","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /models/load","href":"/api-reference/models/switch-the-active-visual-model"}]},{"group":"Media","pages":[{"title":"Get metadata for media files","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /media/metadata","href":"/api-reference/media/get-metadata-for-media-files"},{"title":"Get full technical metadata for media files","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /media/metadata/full","href":"/api-reference/media/get-full-technical-metadata-for-media-files"},{"title":"Get detected scenes for videos","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /media/scenes","href":"/api-reference/media/get-detected-scenes-for-videos"},{"title":"Count audio channels","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /media/audio-channels","href":"/api-reference/media/count-audio-channels"},{"title":"Get analysis status for media files","description":"Reports which visual, speech, face, and Summary Analysis exist in an Analysis folder\nfor each file, with coverage counts across all files. `cache_dir` must be an\nexisting folder; it doesn't have to be the active Analysis folder.\n\n- Per-file details come only for 100 files or fewer. For more,\n `media_details_included` is false and `media` is left out. Jumper then doesn't\n hash or probe the files: files it hasn't hashed before count in\n `unresolved_media_count`, and visual and speech counts only check whether the\n file's analysis folder exists, not which model made it or whether it's complete.\n- `media[].path` is the absolute path, not the string you sent. A file whose hash\n can't be resolved appears as `{path, error: \"Could not resolve media hash\"}`.\n- Visual, face, and Summary Analysis apply to video and image files; speech to video\n and audio files. `eligible_media_count` counts the files each type applies to.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /media/analysis-status","href":"/api-reference/media/get-analysis-status-for-media-files"}]},{"group":"Analysis","pages":[{"title":"Start media analysis","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /analyze","href":"/api-reference/analysis/start-media-analysis"},{"title":"Cancel running analysis","description":"Requests cancellation of any currently running analysis task.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /analyze/cancel","href":"/api-reference/analysis/cancel-running-analysis"}]},{"group":"Summaries","pages":[{"title":"List hierarchical summary collections","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /summaries/collections","href":"/api-reference/summaries/list-hierarchical-summary-collections"},{"title":"List named summary analyses for media","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /summaries/list","href":"/api-reference/summaries/list-named-summary-analyses-for-media"},{"title":"Read a compact whole-media summary","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /summaries/overview","href":"/api-reference/summaries/read-a-compact-whole-media-summary"},{"title":"Drill into one hierarchical summary node","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /summaries/node","href":"/api-reference/summaries/drill-into-one-hierarchical-summary-node"}]},{"group":"Analysis Data","pages":[{"title":"Load all analysis data into memory","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /analysis-data/load","href":"/api-reference/analysis-data/load-all-analysis-data-into-memory"},{"title":"Load analysis data for specific media files","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /analysis-data/load-for-media","href":"/api-reference/analysis-data/load-analysis-data-for-specific-media-files"},{"title":"Load transcription data into memory","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /analysis-data/load-transcriptions","href":"/api-reference/analysis-data/load-transcription-data-into-memory"}]},{"group":"Metadata Filters","pages":[{"title":"Get metadata filter facets","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /metadata/facets","href":"/api-reference/metadata-filters/get-metadata-filter-facets"}]},{"group":"Search","pages":[{"title":"Search by text query","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /search/text","href":"/api-reference/search/search-by-text-query"},{"title":"Search by reference image","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /search/image","href":"/api-reference/search/search-by-reference-image"},{"title":"Search by video frame","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /search/frame","href":"/api-reference/search/search-by-video-frame"},{"title":"Search transcriptions by text","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /search/transcript","href":"/api-reference/search/search-transcriptions-by-text"}]},{"group":"Transcriptions","pages":[{"title":"Get transcriptions","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /transcriptions","href":"/api-reference/transcriptions/get-transcriptions"},{"title":"Get a bounded transcript range","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /transcriptions/range","href":"/api-reference/transcriptions/get-a-bounded-transcript-range"}]},{"group":"Thumbnails","pages":[{"title":"Get thumbnails at specific timestamps","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /thumbnails","href":"/api-reference/thumbnails/get-thumbnails-at-specific-timestamps"},{"title":"Get thumbnails for a time range","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /thumbnails/scene","href":"/api-reference/thumbnails/get-thumbnails-for-a-time-range"}]},{"group":"Face Clustering","pages":[{"title":"List face clustering jobs","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml get /faces/clusters","href":"/api-reference/face-clustering/list-face-clustering-jobs"},{"title":"Get sample face images per cluster","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /faces/clusters/samples","href":"/api-reference/face-clustering/get-sample-face-images-per-cluster"},{"title":"Get paginated cluster faces","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /faces/clusters/faces","href":"/api-reference/face-clustering/get-paginated-cluster-faces"},{"title":"Rename clusters","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml put /faces/clusters/names","href":"/api-reference/face-clustering/rename-clusters"},{"title":"Re-run face clustering","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /faces/recluster","href":"/api-reference/face-clustering/re-run-face-clustering"},{"title":"Merge or move faces between clusters","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /faces/clusters/modify","href":"/api-reference/face-clustering/merge-or-move-faces-between-clusters"}]},{"group":"Watch Folders","pages":[{"title":"List watch folders","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml get /watch-folders","href":"/api-reference/watch-folders/list-watch-folders"},{"title":"Create a watch folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /watch-folders","href":"/api-reference/watch-folders/create-a-watch-folder"},{"title":"Update a watch folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml put /watch-folders/{watch_folder_id}","href":"/api-reference/watch-folders/update-a-watch-folder"},{"title":"Delete a watch folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml delete /watch-folders/{watch_folder_id}","href":"/api-reference/watch-folders/delete-a-watch-folder"},{"title":"Start the watch folder service","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /watch-folders/service/start","href":"/api-reference/watch-folders/start-the-watch-folder-service"},{"title":"Stop the watch folder service","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /watch-folders/service/stop","href":"/api-reference/watch-folders/stop-the-watch-folder-service"},{"title":"Get watch folder service status","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml get /watch-folders/service/status","href":"/api-reference/watch-folders/get-watch-folder-service-status"}]},{"group":"Utilities","pages":[{"title":"Get cache folder paths for a media file","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /cache-paths","href":"/api-reference/utilities/get-cache-folder-paths-for-a-media-file"}]},{"group":"Export","pages":[{"title":"Export trimmed video clips","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /export/clips","href":"/api-reference/export/export-trimmed-video-clips"},{"title":"Generate Premiere Pro XML sequence","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /export/premiere-xml","href":"/api-reference/export/generate-premiere-pro-xml-sequence"},{"title":"Read an XMEML or FCPXML timeline","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /timeline/parse-xml","href":"/api-reference/export/read-an-xmeml-or-fcpxml-timeline"},{"title":"Export transcript to file","deprecated":null,"version":null,"openapi":"/api-reference/openapi-v1.yaml post /export/transcript","href":"/api-reference/export/export-transcript-to-file"}]}]}]}]},"basePath":"","title":"Start media analysis - Jumper Docs","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}