{
"error": {
"code": "invalid_config",
"message": "`resolution` must be one of: 768P, 2K."
}
}
{
"error": {
"code": "unauthorized",
"message": "The API key is invalid or has been revoked."
}
}
{
"error": {
"code": "insufficient_gems",
"message": "This generation costs 40 gems and the account balance is too low.",
"request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff",
"gems_required": 40
}
}
{
"error": {
"code": "content_blocked",
"message": "The request was blocked by Mage's content policy.",
"request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"
}
}
{
"error": {
"code": "architecture_retired",
"message": "This architecture has been retired.",
"request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"
}
}
{
"error": {
"code": "too_many_requests",
"message": "At most 20 generations may be in flight at once for this account; 20 are running now."
}
}
{
"error": {
"code": "content_blocked",
"message": "The request was blocked by an external content restriction.",
"request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"
}
}
{
"error": {
"code": "internal_error",
"message": "Something went wrong on our side. Retry, and contact support if it persists."
}
}
Video models
Grok Video
Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.
POST
/
v1
/
grok_video
/
generate
cURL
curl --request POST \ --url https://api.mage.space/v1/grok_video/generate \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "prompt": "A slow push-in on a lighthouse at dusk, waves breaking below", "aspect_ratio": "16:9", "duration": "5"}'
import Mage from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
const request = await mage.run('grok_video', {
prompt: 'A slow push-in on a lighthouse at dusk, waves breaking below',
aspect_ratio: '16:9',
duration: '5',
});
console.log(request.result.url);
from mage_space import Mage
mage = Mage() # reads MAGE_API_KEY
request = mage.run("grok_video", {
"prompt": "A slow push-in on a lighthouse at dusk, waves breaking below",
"aspect_ratio": "16:9",
"duration": "5",
})
print(request["result"]["url"])
{
"error": {
"code": "invalid_config",
"message": "`resolution` must be one of: 768P, 2K."
}
}
{
"error": {
"code": "unauthorized",
"message": "The API key is invalid or has been revoked."
}
}
{
"error": {
"code": "insufficient_gems",
"message": "This generation costs 40 gems and the account balance is too low.",
"request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff",
"gems_required": 40
}
}
{
"error": {
"code": "content_blocked",
"message": "The request was blocked by Mage's content policy.",
"request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"
}
}
{
"error": {
"code": "architecture_retired",
"message": "This architecture has been retired.",
"request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"
}
}
{
"error": {
"code": "too_many_requests",
"message": "At most 20 generations may be in flight at once for this account; 20 are running now."
}
}
{
"error": {
"code": "content_blocked",
"message": "The request was blocked by an external content restriction.",
"request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"
}
}
{
"error": {
"code": "internal_error",
"message": "Something went wrong on our side. Retry, and contact support if it persists."
}
}
xAI’s Grok Imagine for video, from text, reference images, or a source video to edit. xAI’s safety filter applies.
Write @handle in prompt to attach one of your saved entities, exactly as in the app. Each mention counts against the budget below; a mention that does not resolve, or that the chosen model does not support, is refused with 400 invalid_config before any gems are charged. See Characters and references.
Mention
Models
Budget
Characters
All models
5 images, characters, and references per request
References
All models
5 images, characters, and references per request
{ "prompt": "@ana walking through a night market, wearing @red-coat"}
A request that breaks one of these is refused with 400 invalid_config before any gems are charged.
A source video must be at most 8.7 seconds and cannot be combined with reference images.
Up to 5 reference images, which cap the clip at 10 seconds.
Every field below that you leave out keeps its default. Option values are the tokens listed per field; a numeric token may be sent as a number. Fields the schema does not list pass through to the model unchanged. The exact charge for other settings is in the response’s billing.gems_charged, and the balance at GET /v1/account.
Create a key in API → API Keys: select Create API key, name it in the popup, then select Create key. Copy the one-time key and send it as Authorization: Bearer mage_sk_…. Keys are for server-side code only.
A key of your choosing, 1 to 255 characters, scoped to your API key. A retried submit with the same key returns the original request with 200 instead of charging again. The key identifies the first submission made with it; later bodies are not compared. A refusal recorded under the key (its envelope carries request_id) replays the same way, so a new attempt needs a new key.
The request was accepted; poll status_url for the result. A retried submit whose Idempotency-Key was used before answers 200 with the same shape, the original request, and charges nothing.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mage","description":"Documentation for Mage, the AI image, video, and audio generation platform: models, apps, membership plans, Gems, and content rules.","colors":{"primary":"#fd7e14","light":"#fd7e14","dark":"#fd7e14"},"logo":{"light":"https://mintcdn.com/mage-space/YzEDodIOcFhjY5Nm/logo/light.png?fit=max\u0026auto=format\u0026n=YzEDodIOcFhjY5Nm\u0026q=85\u0026s=64222af9a7e55b8fd0c6f477679de40d","dark":"https://mintcdn.com/mage-space/YzEDodIOcFhjY5Nm/logo/dark.png?fit=max\u0026auto=format\u0026n=YzEDodIOcFhjY5Nm\u0026q=85\u0026s=6ac3e3aa905a6f399b43761d4f315a98","href":"https://www.mage.space"},"favicon":"https://mintcdn.com/mage-space/js7ICkpl6EjyCpqj/favicon.png?fit=max\u0026auto=format\u0026n=js7ICkpl6EjyCpqj\u0026q=85\u0026s=ac1b3dcc728d70f5f6e1f83e64131497","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","typescript","python","javascript"]}},"appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://github.com/mage-space","label":"GitHub"},{"href":"https://www.mage.space/blog","label":"Blog"},{"href":"https://discord.gg/GT9bPgxyFP","label":"Community"}],"primary":{"type":"button","label":"Open Mage","href":"https://www.mage.space"}},"footer":{"socials":{"website":"https://www.mage.space","x":"https://x.com/MageSpace_","instagram":"https://www.instagram.com/magespace_","discord":"https://discord.gg/GT9bPgxyFP"}},"search":{"prompt":"Search Mage docs"},"seo":{"metatags":{"og:site_name":"Mage Docs","canonical":"https://docs.mage.space","msvalidate.01":"5EDBC0AF9865EE5A2B8FF37EA278E2FF"},"organization":{"name":"Mage","legalName":"Ollano, Inc.","url":"https://www.mage.space","sameAs":["https://x.com/MageSpace_","https://www.youtube.com/@MageSpace","https://www.instagram.com/magespace_","https://www.tiktok.com/@magespace_","https://www.linkedin.com/company/magespace","https://github.com/mage-space","https://discord.gg/GT9bPgxyFP"]},"indexing":"navigable"},"fonts":{"family":"Inter"},"integrations":{"posthog":{"apiKey":"phc_lBVvvz084lS4XFbPqGf38TGEa6HnGhmgVHcf4f0NNuX","apiHost":"https://ph.mage.space","sessionRecording":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mage-space","hasAudioNarration":false,"actualSubdomain":"mage-space","customDomains":["docs.mage.space"],"gitSource":{"type":"github","owner":"ollanoinc","repo":"mage","deployBranch":"master","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae6177a3aae848cfc96f715","collectionId":"7cce8119-0f0e-476e-8d96-988ff894b41b","liveDeploymentHistoryId":"6ae6177a3aae848cfc96f715","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ae6177a3aae848cfc96f715","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API","count":59},{"language":"default","tag":"Models","count":39},{"language":"default","tag":"Guides","count":27},{"language":"default","tag":"Apps","count":21},{"language":"default","tag":"Image models","count":16},{"language":"default","tag":"Video models","count":13},{"language":"default","tag":"Open-weights models","count":13},{"language":"default","tag":"Endpoints","count":12},{"language":"default","tag":"Features","count":12},{"language":"default","tag":"Mage models","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"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":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api/models/grok_video","slug":"/api/models/grok_video","pageMetadata":{"title":"Grok Video","sidebarTitle":"Grok Video","description":"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.","openapi":"api/openapi.json POST /v1/grok_video/generate","href":"/api/models/grok_video"},"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: \"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`xAI’s Grok Imagine for video, from text, reference images, or a source video to edit. xAI’s safety filter applies.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Detail`}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Type`}),_jsx(_components.td,{children:`Video`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Models`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`grok-imagine-video`}),` (Grok Video, default)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Image inputs`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`image`}),` (reference image), `,_jsx(_components.code,{children:`additional_images`}),` (additional reference images)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Video inputs`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`video`}),` (source video)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Gems`}),_jsx(_components.td,{children:`375 at the default settings`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Model page`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/models/grok`,children:`Grok`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`mentions`,children:`Mentions`}),`\n`,_jsxs(_components.p,{children:[`Write `,_jsx(_components.code,{children:`@handle`}),` in `,_jsx(_components.code,{children:`prompt`}),` to attach one of your saved entities, exactly as in the app. Each mention counts against the budget below; a mention that does not resolve, or that the chosen model does not support, is refused with `,_jsx(_components.code,{children:`400 invalid_config`}),` before any gems are charged. See `,_jsx(_components.a,{href:`/api/inputs#characters-and-references`,children:`Characters and references`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Mention`}),_jsx(_components.th,{children:`Models`}),_jsx(_components.th,{children:`Budget`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Characters`}),_jsx(_components.td,{children:`All models`}),_jsx(_components.td,{children:`5 images, characters, and references per request`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`References`}),_jsx(_components.td,{children:`All models`}),_jsx(_components.td,{children:`5 images, characters, and references per request`})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"prompt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@ana walking through a night market, wearing @red-coat\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`rules`,children:`Rules`}),`\n`,_jsxs(_components.p,{children:[`A request that breaks one of these is refused with `,_jsx(_components.code,{children:`400 invalid_config`}),` before any gems are charged.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A source video must be at most 8.7 seconds and cannot be combined with reference images.`}),`\n`,_jsx(_components.li,{children:`Up to 5 reference images, which cap the clip at 10 seconds.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Every field below that you leave out keeps its default. Option values are the tokens listed per field; a numeric token may be sent as a number. Fields the schema does not list pass through to the model unchanged. The exact charge for other settings is in the response’s `,_jsx(_components.code,{children:`billing.gems_charged`}),`, and the balance at `,_jsx(_components.a,{href:`/api/endpoints/get-account`,children:_jsx(_components.code,{children:`GET /v1/account`})}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Grok Video","sidebarTitle":"Grok Video","description":"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.","openapi":"api/openapi.json POST /v1/grok_video/generate","href":"/api/models/grok_video"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Mentions","slug":"mentions","depth":2,"children":[]},{"title":"Rules","slug":"rules","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"generate_grok_video","summary":"Grok Video","description":"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.","tags":["Video models"],"parameters":["b909a34d-1658-4ef2-a256-742e4722c814"],"requestBody":"85388eda-1b0b-4d87-9c48-517741977ebe","responses":{"202":"be11be7c-ac76-46f1-ab9c-65d76874fa15","400":"3d40a10b-0c76-4e21-986d-782361ca7c76","401":"42de3e68-5d78-44dc-9a43-a230a76311ad","402":"e5bb71b5-d841-42ff-a12c-4e9d96bdea56","403":"e27c9c45-86d1-4249-8f5d-25f980655e6d","410":"8ee7391f-43c5-483d-8a4d-029636c2d0dd","429":"65d55c83-d4d7-42c8-a1eb-64ae9b7c6625","451":"be67b39a-3b2e-483c-83cf-afa1d64a37a6","500":"d591c4dd-f1fe-4e84-a586-1bb0cd58276a"},"x-codeSamples":[{"lang":"typescript","label":"TypeScript SDK","source":"import Mage from '@mage-space/sdk';\n\nconst mage = new Mage(); // reads MAGE_API_KEY\n\nconst request = await mage.run('grok_video', {\n prompt: 'A slow push-in on a lighthouse at dusk, waves breaking below',\n aspect_ratio: '16:9',\n duration: '5',\n});\n\nconsole.log(request.result.url);"},{"lang":"python","label":"Python SDK","source":"from mage_space import Mage\n\nmage = Mage() # reads MAGE_API_KEY\n\nrequest = mage.run(\"grok_video\", {\n \"prompt\": \"A slow push-in on a lighthouse at dusk, waves breaking below\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": \"5\",\n})\n\nprint(request[\"result\"][\"url\"])"}],"method":"post","type":"path","servers":["e5ff5bd1-5582-414a-ae5b-03de4e310ca9"],"security":["a5188668-a3c5-4df7-ac0e-0b1363dda753"],"path":"/v1/grok_video/generate","baseUrlOptions":["https://api.mage.space"],"title":"Grok Video","codeSamples":[{"label":"TypeScript SDK","lang":"typescript","source":"import Mage from '@mage-space/sdk';\n\nconst mage = new Mage(); // reads MAGE_API_KEY\n\nconst request = await mage.run('grok_video', {\n prompt: 'A slow push-in on a lighthouse at dusk, waves breaking below',\n aspect_ratio: '16:9',\n duration: '5',\n});\n\nconsole.log(request.result.url);"},{"label":"Python SDK","lang":"python","source":"from mage_space import Mage\n\nmage = Mage() # reads MAGE_API_KEY\n\nrequest = mage.run(\"grok_video\", {\n \"prompt\": \"A slow push-in on a lighthouse at dusk, waves breaking below\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": \"5\",\n})\n\nprint(request[\"result\"][\"url\"])"}],"requestExampleLanguages":["bash","typescript","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"b909a34d-1658-4ef2-a256-742e4722c814":{"name":"Idempotency-Key","in":"header","required":false,"description":"A key of your choosing, 1 to 255 characters, scoped to your API key. A retried submit with the same key returns the original request with `200` instead of charging again. The key identifies the first submission made with it; later bodies are not compared. A refusal recorded under the key (its envelope carries `request_id`) replays the same way, so a new attempt needs a new key.","schema":{"type":"string","minLength":1,"maxLength":255,"isRequired":false,"description":"A key of your choosing, 1 to 255 characters, scoped to your API key. A retried submit with the same key returns the original request with `200` instead of charging again. The key identifies the first submission made with it; later bodies are not compared. A refusal recorded under the key (its envelope carries `request_id`) replays the same way, so a new attempt needs a new key.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"description":"A partial config for Grok Video.","content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"description":"The text prompt.","isRequired":true,"uniqueKey":"prompt","typeLabel":"string"},"seed":{"oneOf":[{"type":"integer","description":"Integer seed for reproducible output; omit or send null for a random seed.","uniqueKey":"seed.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Integer seed for reproducible output; omit or send null for a random seed.","uniqueKey":"seed.oneOf.1","typeLabel":"null"}],"uniqueKey":"seed","typeLabel":"integer | null"},"model_id":{"type":"string","enum":["grok-imagine-video"],"description":"The model variant to generate with.","default":"grok-imagine-video","uniqueKey":"model_id","typeLabel":"enum\u003cstring>"},"aspect_ratio":{"type":"string","enum":["1:1","16:9","9:16","4:3","3:4","3:2","2:3"],"description":"Aspect ratio as `W:H`.","default":"16:9","uniqueKey":"aspect_ratio","typeLabel":"enum\u003cstring>"},"resolution":{"type":"string","enum":["480p","720p"],"description":"Output resolution token.","default":"480p","uniqueKey":"resolution","typeLabel":"enum\u003cstring>"},"duration":{"type":"string","enum":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"description":"Clip length in seconds, as a token.","default":"5","uniqueKey":"duration","typeLabel":"enum\u003cstring>"},"image":{"oneOf":[{"type":"string","description":"The reference image. An https URL or a data URL.","format":"uri","uniqueKey":"image.oneOf.0","typeLabel":"string\u003curi>"},{"type":"string","description":"The reference image. An https URL or a data URL.","pattern":"^data:[^;,]+(?:;[^;,]+)*;base64,","uniqueKey":"image.oneOf.1","typeLabel":"string"}],"uniqueKey":"image","typeLabel":"string\u003curi> | string"},"additional_images":{"type":"array","items":{"oneOf":[{"type":"string","format":"uri","uniqueKey":"additional_images.items.[INDEX].oneOf.0","typeLabel":"string\u003curi>"},{"type":"string","pattern":"^data:[^;,]+(?:;[^;,]+)*;base64,","uniqueKey":"additional_images.items.[INDEX].oneOf.1","typeLabel":"string"}],"uniqueKey":"additional_images.items.[INDEX]","typeLabel":"string\u003curi> | string"},"description":"Additional reference images. Each an https URL or a data URL.","uniqueKey":"additional_images","typeLabel":"(string\u003curi> | string)[]"},"video":{"oneOf":[{"type":"string","description":"The source video. An https URL or a data URL.","format":"uri","uniqueKey":"video.oneOf.0","typeLabel":"string\u003curi>"},{"type":"string","description":"The source video. An https URL or a data URL.","pattern":"^data:[^;,]+(?:;[^;,]+)*;base64,","uniqueKey":"video.oneOf.1","typeLabel":"string"}],"uniqueKey":"video","typeLabel":"string\u003curi> | string"}},"required":["prompt"],"additionalProperties":true,"uniqueKey":"","typeLabel":"object"},"example":{"prompt":"A slow push-in on a lighthouse at dusk, waves breaking below","aspect_ratio":"16:9","duration":"5"},"examples":{"Example":{"title":"Example","value":{"prompt":"A slow push-in on a lighthouse at dusk, waves breaking below","aspect_ratio":"16:9","duration":"5"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"be11be7c-ac76-46f1-ab9c-65d76874fa15":{"description":"The request was accepted; poll `status_url` for the result. A retried submit whose `Idempotency-Key` was used before answers `200` with the same shape, the original request, and charges nothing.","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","description":"The request id, also the id in `status_url` and `cancel_url`.","isRequired":true,"uniqueKey":"request_id","typeLabel":"string\u003cuuid>"},"status":{"type":"string","enum":["queued","in_progress","completed","failed","cancelled"],"description":"`queued` and `in_progress` are live; `completed`, `failed`, and `cancelled` are final.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"architecture":{"type":"string","description":"The architecture the request generates with.","isRequired":true,"uniqueKey":"architecture","typeLabel":"string"},"model_id":{"oneOf":[{"type":"string","description":"The model variant, when the architecture has variants.","isRequired":true,"uniqueKey":"model_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The model variant, when the architecture has variants.","isRequired":true,"uniqueKey":"model_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"model_id","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","description":"When the request was accepted.","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the request last changed.","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"billing":{"type":"object","properties":{"mode":{"type":"string","const":"gems","description":"Every API request is paid in gems.","isRequired":true,"uniqueKey":"billing.mode","typeLabel":"string"},"gems_charged":{"type":"number","description":"Gems debited for the request.","isRequired":true,"uniqueKey":"billing.gems_charged","typeLabel":"number"},"gems_refunded":{"description":"Gems returned to the account; present on failed requests.","type":"number","uniqueKey":"billing.gems_refunded","typeLabel":"number"}},"required":["mode","gems_charged"],"additionalProperties":false,"isRequired":true,"uniqueKey":"billing","typeLabel":"object"},"result":{"oneOf":[{"type":"object","description":"The output once `status` is `completed`, else null.","required":["type","url","width","height","seed","expires_at","moderation"],"properties":{"type":{"type":"string","enum":["image","video","audio"],"description":"The media type of the output.","isRequired":true,"uniqueKey":"result.oneOf.0.type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"Where to download the output.","isRequired":true,"uniqueKey":"result.oneOf.0.url","typeLabel":"string\u003curi>"},"width":{"type":"integer","description":"Output width in pixels; 0 for audio.","isRequired":true,"uniqueKey":"result.oneOf.0.width","typeLabel":"integer"},"height":{"type":"integer","description":"Output height in pixels; 0 for audio.","isRequired":true,"uniqueKey":"result.oneOf.0.height","typeLabel":"integer"},"seed":{"type":"integer","description":"The seed the generation ran with.","isRequired":true,"uniqueKey":"result.oneOf.0.seed","typeLabel":"integer"},"expires_at":{"oneOf":[{"type":"string","description":"When `url` stops working: 30 days after the request for temporary media, or null for permanent media.","format":"date-time","isRequired":true,"uniqueKey":"result.oneOf.0.expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When `url` stops working: 30 days after the request for temporary media, or null for permanent media.","isRequired":true,"uniqueKey":"result.oneOf.0.expires_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"result.oneOf.0.expires_at","typeLabel":"string\u003cdate-time> | null"},"moderation":{"type":"object","properties":{"nsfw":{"type":"boolean","description":"Whether moderation flagged the output as NSFW.","isRequired":true,"uniqueKey":"result.oneOf.0.moderation.nsfw","typeLabel":"boolean"}},"required":["nsfw"],"additionalProperties":false,"description":"Moderation flags on the output.","isRequired":true,"uniqueKey":"result.oneOf.0.moderation","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"result.oneOf.0","typeLabel":"object"},{"type":"null","description":"The output once `status` is `completed`, else null.","isRequired":true,"uniqueKey":"result.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"result","typeLabel":"object | null"},"error":{"oneOf":[{"type":"object","description":"Why the request failed once `status` is `failed`, else null.","required":["code","message"],"properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code.","isRequired":true,"uniqueKey":"error.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.oneOf.0.message","typeLabel":"string"},"reason":{"description":"Present on `content_blocked` when the model's external provider refused the content, not Mage: `likeness` (a real person or celebrity), `ip` (copyrighted or trademarked material), `nsfw` (content past the model's own limit: sexual, violent, or otherwise sensitive), `minors` (may involve a minor), `audio` (the audio, usually copyrighted music or a real voice), or `unspecified` (the provider gave no reason). An open set: treat an unknown value as `unspecified`.","type":"string","enum":["likeness","ip","nsfw","minors","audio","unspecified"],"uniqueKey":"error.oneOf.0.reason","typeLabel":"enum\u003cstring>"},"stage":{"oneOf":[{"type":"string","description":"With `reason`: `input` when the provider refused the prompt or input media, `output` when it refused the generated media, or null when it did not say.","enum":["input","output"],"uniqueKey":"error.oneOf.0.stage.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"With `reason`: `input` when the provider refused the prompt or input media, `output` when it refused the generated media, or null when it did not say.","uniqueKey":"error.oneOf.0.stage.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.oneOf.0.stage","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.0","typeLabel":"object"},{"type":"null","description":"Why the request failed once `status` is `failed`, else null.","isRequired":true,"uniqueKey":"error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error","typeLabel":"object | null"},"status_url":{"type":"string","format":"uri","description":"Poll this URL for the request.","isRequired":true,"uniqueKey":"status_url","typeLabel":"string\u003curi>"},"cancel_url":{"type":"string","format":"uri","description":"POST to this URL to stop the request.","isRequired":true,"uniqueKey":"cancel_url","typeLabel":"string\u003curi>"}},"required":["request_id","status","architecture","model_id","created_at","updated_at","billing","result","error","status_url","cancel_url"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff","status":"in_progress","architecture":"grok_video","model_id":"grok-imagine-video","created_at":"2026-09-17T14:52:48.000Z","updated_at":"2026-09-17T14:52:49.000Z","billing":{"mode":"gems","gems_charged":375},"result":null,"error":null,"status_url":"https://api.mage.space/v1/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/status","cancel_url":"https://api.mage.space/v1/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/cancel"},"examples":{"Example":{"title":"Example","value":{"request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff","status":"in_progress","architecture":"grok_video","model_id":"grok-imagine-video","created_at":"2026-09-17T14:52:48.000Z","updated_at":"2026-09-17T14:52:49.000Z","billing":{"mode":"gems","gems_charged":375},"result":null,"error":null,"status_url":"https://api.mage.space/v1/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/status","cancel_url":"https://api.mage.space/v1/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/cancel"}}},"exampleType":"examples"}},"exampleType":"examples"},"3d40a10b-0c76-4e21-986d-782361ca7c76":{"description":"The body is not a JSON object, sets a server-owned field, contradicts the architecture, breaks a field's type or token list, mentions an `@handle` that does not resolve or that the model does not support, exceeds the image or audio budget, or breaks a model rule; or the `Idempotency-Key` is malformed. `invalid_config` names the field, the handle, or the rule.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"description":"The request the refusal belongs to, when one was recorded before the refusal.","type":"string","format":"uuid","uniqueKey":"error.request_id","typeLabel":"string\u003cuuid>"},"gems_required":{"description":"The price of the refused generation, on `insufficient_gems`.","type":"number","uniqueKey":"error.gems_required","typeLabel":"number"},"docs_url":{"description":"Where to read the API reference, on `not_found`.","type":"string","format":"uri","uniqueKey":"error.docs_url","typeLabel":"string\u003curi>"},"handle":{"description":"The handle that is taken, on `handle_taken`.","type":"string","uniqueKey":"error.handle","typeLabel":"string"}},"required":["code","message"],"additionalProperties":true,"description":"Further fields depend on the code.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"invalid_config","message":"`resolution` must be one of: 768P, 2K."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_config","message":"`resolution` must be one of: 768P, 2K."}}}},"exampleType":"examples"}},"exampleType":"examples"},"42de3e68-5d78-44dc-9a43-a230a76311ad":{"description":"The key is missing, malformed, unknown, or revoked.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"description":"The request the refusal belongs to, when one was recorded before the refusal.","type":"string","format":"uuid","uniqueKey":"error.request_id","typeLabel":"string\u003cuuid>"},"gems_required":{"description":"The price of the refused generation, on `insufficient_gems`.","type":"number","uniqueKey":"error.gems_required","typeLabel":"number"},"docs_url":{"description":"Where to read the API reference, on `not_found`.","type":"string","format":"uri","uniqueKey":"error.docs_url","typeLabel":"string\u003curi>"},"handle":{"description":"The handle that is taken, on `handle_taken`.","type":"string","uniqueKey":"error.handle","typeLabel":"string"}},"required":["code","message"],"additionalProperties":true,"description":"Further fields depend on the code.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unauthorized","message":"The API key is invalid or has been revoked."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"The API key is invalid or has been revoked."}}}},"exampleType":"examples"}},"exampleType":"examples"},"e5bb71b5-d841-42ff-a12c-4e9d96bdea56":{"description":"The gems balance is below the price (`insufficient_gems`; `gems_required` is the price), or the account has never paid (`payment_required`).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"description":"The request the refusal belongs to, when one was recorded before the refusal.","type":"string","format":"uuid","uniqueKey":"error.request_id","typeLabel":"string\u003cuuid>"},"gems_required":{"description":"The price of the refused generation, on `insufficient_gems`.","type":"number","uniqueKey":"error.gems_required","typeLabel":"number"},"docs_url":{"description":"Where to read the API reference, on `not_found`.","type":"string","format":"uri","uniqueKey":"error.docs_url","typeLabel":"string\u003curi>"},"handle":{"description":"The handle that is taken, on `handle_taken`.","type":"string","uniqueKey":"error.handle","typeLabel":"string"}},"required":["code","message"],"additionalProperties":true,"description":"Further fields depend on the code.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"insufficient_gems","message":"This generation costs 40 gems and the account balance is too low.","request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff","gems_required":40}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"insufficient_gems","message":"This generation costs 40 gems and the account balance is too low.","request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff","gems_required":40}}}},"exampleType":"examples"}},"exampleType":"examples"},"e27c9c45-86d1-4249-8f5d-25f980655e6d":{"description":"The account cannot generate (`forbidden`), or the request was blocked by the content policy before it ran (`content_blocked`).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"description":"The request the refusal belongs to, when one was recorded before the refusal.","type":"string","format":"uuid","uniqueKey":"error.request_id","typeLabel":"string\u003cuuid>"},"gems_required":{"description":"The price of the refused generation, on `insufficient_gems`.","type":"number","uniqueKey":"error.gems_required","typeLabel":"number"},"docs_url":{"description":"Where to read the API reference, on `not_found`.","type":"string","format":"uri","uniqueKey":"error.docs_url","typeLabel":"string\u003curi>"},"handle":{"description":"The handle that is taken, on `handle_taken`.","type":"string","uniqueKey":"error.handle","typeLabel":"string"}},"required":["code","message"],"additionalProperties":true,"description":"Further fields depend on the code.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"content_blocked","message":"The request was blocked by Mage's content policy.","request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"content_blocked","message":"The request was blocked by Mage's content policy.","request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"}}}},"exampleType":"examples"}},"exampleType":"examples"},"8ee7391f-43c5-483d-8a4d-029636c2d0dd":{"description":"The architecture has been retired.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"description":"The request the refusal belongs to, when one was recorded before the refusal.","type":"string","format":"uuid","uniqueKey":"error.request_id","typeLabel":"string\u003cuuid>"},"gems_required":{"description":"The price of the refused generation, on `insufficient_gems`.","type":"number","uniqueKey":"error.gems_required","typeLabel":"number"},"docs_url":{"description":"Where to read the API reference, on `not_found`.","type":"string","format":"uri","uniqueKey":"error.docs_url","typeLabel":"string\u003curi>"},"handle":{"description":"The handle that is taken, on `handle_taken`.","type":"string","uniqueKey":"error.handle","typeLabel":"string"}},"required":["code","message"],"additionalProperties":true,"description":"Further fields depend on the code.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"architecture_retired","message":"This architecture has been retired.","request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"architecture_retired","message":"This architecture has been retired.","request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"}}}},"exampleType":"examples"}},"exampleType":"examples"},"65d55c83-d4d7-42c8-a1eb-64ae9b7c6625":{"description":"The account already has its cap of generations in flight (20 unless set otherwise for the account), web and API together. Wait for some to finish.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"description":"The request the refusal belongs to, when one was recorded before the refusal.","type":"string","format":"uuid","uniqueKey":"error.request_id","typeLabel":"string\u003cuuid>"},"gems_required":{"description":"The price of the refused generation, on `insufficient_gems`.","type":"number","uniqueKey":"error.gems_required","typeLabel":"number"},"docs_url":{"description":"Where to read the API reference, on `not_found`.","type":"string","format":"uri","uniqueKey":"error.docs_url","typeLabel":"string\u003curi>"},"handle":{"description":"The handle that is taken, on `handle_taken`.","type":"string","uniqueKey":"error.handle","typeLabel":"string"}},"required":["code","message"],"additionalProperties":true,"description":"Further fields depend on the code.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"too_many_requests","message":"At most 20 generations may be in flight at once for this account; 20 are running now."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"too_many_requests","message":"At most 20 generations may be in flight at once for this account; 20 are running now."}}}},"exampleType":"examples"}},"exampleType":"examples"},"be67b39a-3b2e-483c-83cf-afa1d64a37a6":{"description":"The request was blocked by an external content restriction.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"description":"The request the refusal belongs to, when one was recorded before the refusal.","type":"string","format":"uuid","uniqueKey":"error.request_id","typeLabel":"string\u003cuuid>"},"gems_required":{"description":"The price of the refused generation, on `insufficient_gems`.","type":"number","uniqueKey":"error.gems_required","typeLabel":"number"},"docs_url":{"description":"Where to read the API reference, on `not_found`.","type":"string","format":"uri","uniqueKey":"error.docs_url","typeLabel":"string\u003curi>"},"handle":{"description":"The handle that is taken, on `handle_taken`.","type":"string","uniqueKey":"error.handle","typeLabel":"string"}},"required":["code","message"],"additionalProperties":true,"description":"Further fields depend on the code.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"content_blocked","message":"The request was blocked by an external content restriction.","request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"content_blocked","message":"The request was blocked by an external content restriction.","request_id":"d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff"}}}},"exampleType":"examples"}},"exampleType":"examples"},"d591c4dd-f1fe-4e84-a586-1bb0cd58276a":{"description":"Something failed on Mage's side. Retry, and contact support if it persists.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized","invalid_request","invalid_config","architecture_not_found","architecture_retired","request_not_found","character_not_found","reference_not_found","not_found","insufficient_gems","payment_required","forbidden","content_blocked","request_finished","handle_taken","too_many_requests","generation_failed","preprocess_refused","internal_error"],"description":"A stable error code; treat an unknown code by its HTTP status.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, for a person.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"description":"The request the refusal belongs to, when one was recorded before the refusal.","type":"string","format":"uuid","uniqueKey":"error.request_id","typeLabel":"string\u003cuuid>"},"gems_required":{"description":"The price of the refused generation, on `insufficient_gems`.","type":"number","uniqueKey":"error.gems_required","typeLabel":"number"},"docs_url":{"description":"Where to read the API reference, on `not_found`.","type":"string","format":"uri","uniqueKey":"error.docs_url","typeLabel":"string\u003curi>"},"handle":{"description":"The handle that is taken, on `handle_taken`.","type":"string","uniqueKey":"error.handle","typeLabel":"string"}},"required":["code","message"],"additionalProperties":true,"description":"Further fields depend on the code.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"internal_error","message":"Something went wrong on our side. Retry, and contact support if it persists."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"internal_error","message":"Something went wrong on our side. Retry, and contact support if it persists."}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"a5188668-a3c5-4df7-ac0e-0b1363dda753":{"apiKey":{"type":"http","scheme":"bearer","description":"Create a key in [API → API Keys](https://www.mage.space/api?tab=api-keys): select **Create API key**, name it in the popup, then select **Create key**. Copy the one-time key and send it as `Authorization: Bearer mage_sk_…`. Keys are for server-side code only.","scopes":[],"schemeName":"apiKey"}}},"servers":{"e5ff5bd1-5582-414a-ae5b-03de4e310ca9":{"url":"https://api.mage.space","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Create a key in [API → API Keys](https://www.mage.space/api?tab=api-keys): select **Create API key**, name it in the popup, then select **Create key**. Copy the one-time key and send it as `Authorization: Bearer mage_sk_…`. Keys are for server-side code only.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Create a key in [API → API Keys](https://www.mage.space/api?tab=api-keys): select **Create API key**, name it in the popup, then select **Create key**. Copy the one-time key and send it as `Authorization: Bearer mage_sk_…`. Keys are for server-side code only.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"api/openapi.json"},"subdomain":"mage-space","siteName":"Mage","title":"Grok Video - Mage","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-28T17:38:16.672Z","gitLastModified":"2026-09-29T04:11:46.000Z","originalFileLocation":"api/models/grok_video.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=\"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=\"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mage\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mage-space/RwBJFP0egq-BZOBp/_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/mage-space/RwBJFP0egq-BZOBp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mage-space/RwBJFP0egq-BZOBp/_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/mage-space/RwBJFP0egq-BZOBp/_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/mage-space/RwBJFP0egq-BZOBp/_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/mage-space/RwBJFP0egq-BZOBp/_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/mage-space/RwBJFP0egq-BZOBp/_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/mage-space/RwBJFP0egq-BZOBp/_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/mage-space/RwBJFP0egq-BZOBp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Grok Video - Mage\">\u003cmeta data-mint-head property=\"og:description\" content=\"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mage Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mage.space/api/models/grok_video\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mage-space.mintlify.app/_mintlify/api/og/v2?division=Video+models\u0026amp;title=Grok+Video\u0026amp;description=Generate+video+with+Grok+Video+through+the+Mage+API%3A+the+fields+of+POST+%2Fv1%2Fgrok_video%2Fgenerate%2C+its+options+by+model%2C+the+rules+it+enforces%2C+and+its+gem+price.\u0026amp;theme=15e3959de07cfae439e998da\u0026amp;signature=57739ab97930f10cb31e5501e535c2137af8a38f47333aa1d8a39619cf44bb1f\">\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=\"Grok Video - Mage\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mage-space.mintlify.app/_mintlify/api/og/v2?division=Video+models\u0026amp;title=Grok+Video\u0026amp;description=Generate+video+with+Grok+Video+through+the+Mage+API%3A+the+fields+of+POST+%2Fv1%2Fgrok_video%2Fgenerate%2C+its+options+by+model%2C+the+rules+it+enforces%2C+and+its+gem+price.\u0026amp;theme=15e3959de07cfae439e998da\u0026amp;signature=57739ab97930f10cb31e5501e535c2137af8a38f47333aa1d8a39619cf44bb1f\">\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/mage-space/RwBJFP0egq-BZOBp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mage\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fd7e14\">\u003cmeta data-mint-head name=\"msvalidate.01\" content=\"5EDBC0AF9865EE5A2B8FF37EA278E2FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mage.space/api/models/grok_video\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/models/grok_video.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.mage.space/#organization\",\"name\":\"Mage\",\"legalName\":\"Ollano, Inc.\",\"url\":\"https://www.mage.space\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mage-space/YzEDodIOcFhjY5Nm/logo/light.png?fit=max\u0026auto=format\u0026n=YzEDodIOcFhjY5Nm\u0026q=85\u0026s=64222af9a7e55b8fd0c6f477679de40d\"},\"sameAs\":[\"https://x.com/MageSpace_\",\"https://www.youtube.com/@MageSpace\",\"https://www.instagram.com/magespace_\",\"https://www.tiktok.com/@magespace_\",\"https://www.linkedin.com/company/magespace\",\"https://github.com/mage-space\",\"https://discord.gg/GT9bPgxyFP\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mage.space#website\",\"name\":\"Mage\",\"url\":\"https://docs.mage.space\",\"publisher\":{\"@id\":\"https://www.mage.space/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mage.space/api/models/grok_video#webpage\",\"url\":\"https://docs.mage.space/api/models/grok_video\",\"name\":\"Grok Video\",\"description\":\"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.\",\"dateModified\":\"2026-09-29T04:11:46.000Z\",\"isPartOf\":{\"@id\":\"https://docs.mage.space#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mage.space/api/models/grok_video#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mage.space/api/models/grok_video#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Video models\",\"item\":\"https://docs.mage.space/api/models/berry\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Grok Video\",\"item\":\"https://docs.mage.space/api/models/grok_video\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mage.space/api/models/grok_video#apireference\",\"headline\":\"Grok Video\",\"name\":\"Grok Video\",\"description\":\"Generate video with Grok Video through the Mage API: the fields of POST /v1/grok_video/generate, its options by model, the rules it enforces, and its gem price.\",\"url\":\"https://docs.mage.space/api/models/grok_video\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mage.space/api/models/grok_video#webpage\"},\"dateModified\":\"2026-09-29T04:11:46.000Z\",\"publisher\":{\"@id\":\"https://www.mage.space/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mage.space#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mage\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mage","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"Models","pages":[{"title":"Models","href":"/models/overview"}]},{"tab":"Apps","pages":[{"title":"Apps","href":"/apps/overview"}]},{"tab":"API","groups":[{"group":"Get started","pages":[{"title":"Mage API","sidebarTitle":"Overview","href":"/api/overview"},{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/api/quickstart"},{"title":"Authentication","sidebarTitle":"Authentication","href":"/api/authentication"},{"title":"Use Mage from Claude, ChatGPT, Grok, and Cursor","sidebarTitle":"MCP server","href":"/api/mcp"}]},{"group":"SDKs and integrations","pages":[{"title":"TypeScript SDK","sidebarTitle":"TypeScript","href":"/api/sdks/typescript"},{"title":"Python SDK","sidebarTitle":"Python","href":"/api/sdks/python"},{"title":"Mage for ComfyUI","sidebarTitle":"ComfyUI","href":"/api/integrations/comfyui"},{"title":"Mage skills for Claude, Codex, and Cursor","sidebarTitle":"Agent skills","href":"/api/integrations/skills"}]},{"group":"Concepts","pages":[{"title":"Requests and lifecycle","sidebarTitle":"Requests and lifecycle","href":"/api/requests"},{"title":"Inputs and uploads","sidebarTitle":"Inputs and uploads","href":"/api/inputs"},{"title":"Errors and retries","sidebarTitle":"Errors and retries","href":"/api/errors"},{"title":"Rate limits and concurrency","sidebarTitle":"Rate limits","href":"/api/limits"},{"title":"Billing and retention","sidebarTitle":"Billing and retention","href":"/api/billing"},{"title":"Versioning and changes","sidebarTitle":"Versioning","href":"/api/versioning"}]},{"group":"Endpoints","pages":[{"title":"Generate","sidebarTitle":"Generate","openapi":"api/openapi.json POST /v1/{architecture}/generate","href":"/api/endpoints/generate"},{"title":"List architectures","sidebarTitle":"List architectures","openapi":"api/openapi.json GET /v1/architectures","href":"/api/endpoints/list-architectures"},{"title":"Get request status","sidebarTitle":"Get request status","openapi":"api/openapi.json GET /v1/requests/{request_id}/status","href":"/api/endpoints/get-request-status"},{"title":"Cancel request","sidebarTitle":"Cancel request","openapi":"api/openapi.json POST /v1/requests/{request_id}/cancel","href":"/api/endpoints/cancel-request"},{"title":"Get account","sidebarTitle":"Get account","openapi":"api/openapi.json GET /v1/account","href":"/api/endpoints/get-account"},{"title":"Create upload","sidebarTitle":"Create upload","openapi":"api/openapi.json POST /v1/uploads","href":"/api/endpoints/create-upload"},{"title":"List characters","sidebarTitle":"List characters","openapi":"api/openapi.json GET /v1/characters","href":"/api/endpoints/list-characters"},{"title":"Create character","sidebarTitle":"Create character","openapi":"api/openapi.json POST /v1/characters","href":"/api/endpoints/create-character"},{"title":"Delete character","sidebarTitle":"Delete character","openapi":"api/openapi.json DELETE /v1/characters/{character_id}","href":"/api/endpoints/delete-character"},{"title":"List references","sidebarTitle":"List references","openapi":"api/openapi.json GET /v1/references","href":"/api/endpoints/list-references"},{"title":"Create reference","sidebarTitle":"Create reference","openapi":"api/openapi.json POST /v1/references","href":"/api/endpoints/create-reference"},{"title":"Delete reference","sidebarTitle":"Delete reference","openapi":"api/openapi.json DELETE /v1/references/{reference_id}","href":"/api/endpoints/delete-reference"}]},{"group":"Models","pages":[{"title":"Models in the API","sidebarTitle":"Overview","href":"/api/models/overview"}]},{"group":"Image models","pages":[{"title":"Anima","sidebarTitle":"Anima","openapi":"api/openapi.json POST /v1/anima/generate","href":"/api/models/anima"},{"title":"Chroma","sidebarTitle":"Chroma","openapi":"api/openapi.json POST /v1/chroma/generate","href":"/api/models/chroma"},{"title":"Flux 2","sidebarTitle":"Flux 2","openapi":"api/openapi.json POST /v1/flux2/generate","href":"/api/models/flux2"},{"title":"GPT Image 2","sidebarTitle":"GPT Image 2","openapi":"api/openapi.json POST /v1/gpt_image_2/generate","href":"/api/models/gpt_image_2"},{"title":"Grok Image","sidebarTitle":"Grok Image","openapi":"api/openapi.json POST /v1/grok_image/generate","href":"/api/models/grok_image"},{"title":"Guava","sidebarTitle":"Guava","openapi":"api/openapi.json POST /v1/guava/generate","href":"/api/models/guava"},{"title":"HiDream","sidebarTitle":"HiDream","openapi":"api/openapi.json POST /v1/hidream/generate","href":"/api/models/hidream"},{"title":"Krea 2","sidebarTitle":"Krea 2","openapi":"api/openapi.json POST /v1/krea_2/generate","href":"/api/models/krea_2"},{"title":"Mango","sidebarTitle":"Mango","openapi":"api/openapi.json POST /v1/mango/generate","href":"/api/models/mango"},{"title":"MOSS-Image","sidebarTitle":"MOSS-Image","openapi":"api/openapi.json POST /v1/moss_image/generate","href":"/api/models/moss_image"},{"title":"Nano Banana 2","sidebarTitle":"Nano Banana 2","openapi":"api/openapi.json POST /v1/nano_banana_v2/generate","href":"/api/models/nano_banana_v2"},{"title":"SDXL Plus","sidebarTitle":"SDXL Plus","openapi":"api/openapi.json POST /v1/sdxl_plus/generate","href":"/api/models/sdxl_plus"},{"title":"Stable Diffusion v1.5","sidebarTitle":"Stable Diffusion v1.5","openapi":"api/openapi.json POST /v1/stable_diffusion_v15/generate","href":"/api/models/stable_diffusion_v15"},{"title":"Stable Diffusion v3.5 Large","sidebarTitle":"Stable Diffusion v3.5 Large","openapi":"api/openapi.json POST /v1/stable_diffusion_v35_large/generate","href":"/api/models/stable_diffusion_v35_large"},{"title":"Stable Diffusion XL","sidebarTitle":"Stable Diffusion XL","openapi":"api/openapi.json POST /v1/stable_diffusion_xl/generate","href":"/api/models/stable_diffusion_xl"},{"title":"Z-Image","sidebarTitle":"Z-Image","openapi":"api/openapi.json POST /v1/z_image/generate","href":"/api/models/z_image"}]},{"group":"Video models","pages":[{"title":"Berry","sidebarTitle":"Berry","openapi":"api/openapi.json POST /v1/berry/generate","href":"/api/models/berry"},{"title":"Blueberry","sidebarTitle":"Blueberry","openapi":"api/openapi.json POST /v1/blueberry/generate","href":"/api/models/blueberry"},{"title":"Cherry","sidebarTitle":"Cherry","description":"Generate video with Cherry through the Mage API: the fields of POST /v1/cherry/generate, its options by model, the rules it enforces, and its gem price.","openapi":"api/openapi.json POST /v1/cherry/generate","href":"/api/models/cherry"},{"title":"Grok Video","sidebarTitle":"Grok Video","openapi":"api/openapi.json POST /v1/grok_video/generate","href":"/api/models/grok_video"},{"title":"Kiwi","sidebarTitle":"Kiwi","description":"Generate video with Kiwi through the Mage API: the fields of POST /v1/kiwi/generate, its options by model, the rules it enforces, and its gem price.","openapi":"api/openapi.json POST /v1/kiwi/generate","href":"/api/models/kiwi"},{"title":"Lemon","sidebarTitle":"Lemon","openapi":"api/openapi.json POST /v1/lemon/generate","href":"/api/models/lemon"},{"title":"LTX Video","sidebarTitle":"LTX Video","openapi":"api/openapi.json POST /v1/ltx_video/generate","href":"/api/models/ltx_video"},{"title":"Magejutsu","sidebarTitle":"Magejutsu","openapi":"api/openapi.json POST /v1/magejutsu/generate","href":"/api/models/magejutsu"},{"title":"Melon","sidebarTitle":"Melon","openapi":"api/openapi.json POST /v1/melon/generate","href":"/api/models/melon"},{"title":"MiniMax-H3","sidebarTitle":"MiniMax-H3","openapi":"api/openapi.json POST /v1/minimax_h3/generate","href":"/api/models/minimax_h3"},{"title":"Plum","sidebarTitle":"Plum","openapi":"api/openapi.json POST /v1/plum/generate","href":"/api/models/plum"},{"title":"Raspberry","sidebarTitle":"Raspberry","openapi":"api/openapi.json POST /v1/raspberry/generate","href":"/api/models/raspberry"},{"title":"Wan Video v2.2","sidebarTitle":"Wan Video v2.2","openapi":"api/openapi.json POST /v1/wan_22/generate","href":"/api/models/wan_22"}]},{"group":"Audio models","pages":[{"title":"Eleven Music","sidebarTitle":"Eleven Music","openapi":"api/openapi.json POST /v1/eleven_music/generate","href":"/api/models/eleven_music"},{"title":"Eleven Speech","sidebarTitle":"Eleven Speech","openapi":"api/openapi.json POST /v1/eleven_speech/generate","href":"/api/models/eleven_speech"},{"title":"Seed Audio","sidebarTitle":"Seed Audio","openapi":"api/openapi.json POST /v1/seed_audio/generate","href":"/api/models/seed_audio"}]}]}]},"basePath":"","title":"Grok Video - Mage","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}