Skip to main content

PixelDojo API Reference

Agent-first async REST API for AI image and video generation. 144 models currently available.

Onboarding path: create an API key, buy credits, discover a model, fetch its schema, submit a job, then poll or use webhooks. No subscription is required for API access.

Overview

Base URL
https://pixeldojo.ai/api/v1
Auth
Authorization: Bearer YOUR_API_KEY
Format
JSON request/response
Pattern
Async jobs: discover schema, submit via POST, poll via GET, replay webhooks when needed
Models
144 enabled (82 image, 58 video, 4 audio/3D)

Authentication

All API requests require an API key sent as a Bearer token in the Authorization header. API keys are available to signed-in accounts, and usage is billed against prepaid credits.

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Create API keys at /api-platform/api-keys. API access does not require a subscription. Buy credits at /api-platform/buy-credits.

Endpoints

GET/api/v1/models

Public discovery endpoint for all enabled image and video models.

Example Request:

curl "https://pixeldojo.ai/api/v1/models?detailed=true"

Example Response:

{
  "models": [
    {
      "apiId": "flux-1.1-pro",
      "name": "Flux 1.1 Pro",
      "description": "High-quality image generation with strong prompt adherence.",
      "modality": "image",
      "creditCost": {
        "default": 1,
        "type": "fixed",
        "amount": 1
      }
    }
  ],
  "total": 42,
  "imageCount": 25,
  "videoCount": 17
}
GET/api/v1/models/{apiId}

Fetch model capabilities, parameters, and the canonical request schema for one model.

Example Request:

curl "https://pixeldojo.ai/api/v1/models/flux-1.1-pro"

Example Response:

{
  "apiId": "flux-1.1-pro",
  "name": "Flux 1.1 Pro",
  "modality": "image",
  "requestSchema": {
    "type": "object",
    "additionalProperties": false,
    "required": [
      "prompt"
    ],
    "properties": {
      "prompt": {
        "type": "string",
        "description": "Text prompt"
      }
    }
  },
  "endpoints": {
    "run": "/api/v1/models/flux-1.1-pro/run",
    "schema": "/api/v1/models/flux-1.1-pro/schema"
  }
}
GET/api/v1/models/{apiId}/schema

Return the model request schema as JSON so agents and SDKs can build valid payloads.

Example Request:

curl "https://pixeldojo.ai/api/v1/models/flux-1.1-pro/schema"

Example Response:

{
  "apiId": "flux-1.1-pro",
  "name": "Flux 1.1 Pro",
  "modality": "image",
  "schema": {
    "title": "Flux 1.1 ProRequest",
    "type": "object",
    "additionalProperties": false,
    "required": [
      "prompt"
    ],
    "properties": {
      "prompt": {
        "type": "string",
        "description": "Text prompt"
      }
    }
  }
}
POST/api/v1/models/{apiId}/run

Submit an async job for any image or video model. Match the request body to the schema from /models/{apiId}/schema.

Example Request:

curl -X POST "https://pixeldojo.ai/api/v1/models/flux-1.1-pro/run" -H "Authorization: Bearer YOUR_API_KEY" -d '{"prompt": "A sunset", "aspect_ratio": "1:1"}'

Example Response:

{
  "jobId": "job_abc123",
  "status": "pending",
  "statusUrl": "https://pixeldojo.ai/api/v1/jobs/job_abc123",
  "creditCost": 1,
  "creditsRemaining": 99
}
GET/api/v1/jobs

List recent jobs for the authenticated API key owner with optional filters.

Example Request:

curl "https://pixeldojo.ai/api/v1/jobs?limit=10&status=completed" -H "Authorization: Bearer YOUR_API_KEY"

Example Response:

{
  "jobs": [
    {
      "jobId": "job_abc123",
      "apiId": "flux-1.1-pro",
      "status": "completed",
      "creditCost": 1,
      "refunded": false,
      "assets": [
        {
          "assetId": "job_abc123:image:0",
          "kind": "image",
          "url": "https://temp.pixeldojo.ai/...png",
          "apiId": "flux-1.1-pro",
          "jobId": "job_abc123",
          "expiresAt": "2026-03-17T12:00:00.000Z"
        }
      ],
      "webhook": {
        "configured": true,
        "delivered": true,
        "attempts": 1
      },
      "createdAt": "2026-03-17T11:59:00.000Z",
      "updatedAt": "2026-03-17T12:00:00.000Z",
      "expiresAt": "2026-03-18T12:00:00.000Z"
    }
  ],
  "total": 1,
  "filters": {
    "limit": 10,
    "status": "completed"
  }
}
GET/api/v1/jobs/{jobId}

Check job status and retrieve outputs, asset references, and webhook delivery state when complete.

Example Request:

curl "https://pixeldojo.ai/api/v1/jobs/job_abc123" -H "Authorization: Bearer YOUR_API_KEY"

Example Response:

{
  "jobId": "job_abc123",
  "apiId": "flux-1.1-pro",
  "status": "completed",
  "creditCost": 1,
  "refunded": false,
  "output": {
    "images": [
      "https://temp.pixeldojo.ai/...png"
    ]
  },
  "assets": [
    {
      "assetId": "job_abc123:image:0",
      "kind": "image",
      "url": "https://temp.pixeldojo.ai/...png",
      "apiId": "flux-1.1-pro",
      "jobId": "job_abc123",
      "expiresAt": "2025-01-23T12:00:00Z"
    }
  ],
  "webhook": {
    "configured": true,
    "url": "https://example.com/webhook",
    "delivered": true,
    "attempts": 1
  },
  "createdAt": "2025-01-23T11:58:00Z",
  "updatedAt": "2025-01-23T12:00:00Z",
  "expiresAt": "2025-01-23T12:00:00Z"
}
GET/api/v1/jobs/{jobId}/webhook

Inspect webhook configuration and delivery status for a job.

Example Request:

curl "https://pixeldojo.ai/api/v1/jobs/job_abc123/webhook" -H "Authorization: Bearer YOUR_API_KEY"

Example Response:

{
  "jobId": "job_abc123",
  "apiId": "flux-1.1-pro",
  "status": "completed",
  "webhook": {
    "configured": true,
    "url": "https://example.com/webhook",
    "delivered": true,
    "attempts": 1
  }
}
POST/api/v1/jobs/{jobId}/webhook

Redeliver the terminal webhook for a completed or failed job.

Example Request:

curl -X POST "https://pixeldojo.ai/api/v1/jobs/job_abc123/webhook" -H "Authorization: Bearer YOUR_API_KEY"

Example Response:

{
  "replayed": true,
  "job": {
    "jobId": "job_abc123",
    "apiId": "flux-1.1-pro",
    "status": "completed",
    "webhook": {
      "configured": true,
      "delivered": true,
      "attempts": 2
    }
  }
}
POST/api/v1/upload

Upload a local image or video and get back a public URL on the 24-hour temp bucket. Pass the returned URL as a reference image in any /run call. Bridges "user has a local file" → "API needs a URL" for agentic workflows.

Example Request:

curl -X POST "https://pixeldojo.ai/api/v1/upload" -H "Authorization: Bearer YOUR_API_KEY" -F "file=@/path/to/photo.png"

Example Response:

{
  "url": "https://temp.pixeldojo.ai/pixeldojotemp/mcp-uploads/user_abc/1717000000-x9p2k1.png",
  "expiresInHours": 24
}
GET/api/v1/library

Search the key owner's media library: saved My Media items (permanent) plus recent generations, newest first. Query params: q (prompt substring), model (apiId), modality (image|video|audio), limit (1-50).

Example Request:

curl "https://pixeldojo.ai/api/v1/library?q=hero%20shot&modality=image" -H "Authorization: Bearer YOUR_API_KEY"

Example Response:

{
  "items": [
    {
      "url": "https://cdn.pixeldojo.ai/pixeldojo/generated-images/1717-abc.png",
      "prompt": "steel bottle hero shot",
      "model": "seedream-4",
      "modality": "image",
      "source": "saved",
      "createdAt": "2026-07-08T18:00:00.000Z"
    }
  ],
  "count": 1,
  "expiredCount": 0
}
POST/api/v1/media/save

Save a generated asset URL into My Media permanently: the file is re-hosted on the CDN (generation outputs otherwise expire after 24 hours) and becomes searchable via /api/v1/library. Body: url (required), prompt, tool_name, modality, job_id.

Example Request:

curl -X POST "https://pixeldojo.ai/api/v1/media/save" -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"url":"https://temp.pixeldojo.ai/pixeldojotemp/1717-abc.png","prompt":"hero shot","tool_name":"flux-1.1-pro"}'

Example Response:

{
  "saved": true,
  "id": "1717000000-x9p2k1",
  "url": "https://cdn.pixeldojo.ai/pixeldojo/generated-images/1717000000-x9p2k1.png",
  "kind": "image"
}
GET/api/v1/workflows

List the key owner's named multi-step skill chains. POST to the same path with {name, description?, steps:[{skill, args}]} to save one (upserts by name). Steps may reference {{input.<key>}} and {{prev}}.

Example Request:

curl "https://pixeldojo.ai/api/v1/workflows" -H "Authorization: Bearer YOUR_API_KEY"

Example Response:

{
  "workflows": [
    {
      "name": "launch-pack",
      "description": "hero + variants",
      "steps": [
        {
          "skill": "pixeldojo:generate",
          "args": {
            "prompt": "{{input.subject}} hero shot"
          }
        }
      ],
      "runs": 3,
      "updatedAt": "2026-07-08T18:00:00.000Z"
    }
  ]
}
POST/api/mcp

Streamable-HTTP MCP server carrying every named skill. Connect with OAuth (your client opens a browser to approve; no API key) or send Authorization: Bearer pd_your_key. Discovery: /.well-known/oauth-protected-resource/api/mcp.

Example Request:

claude mcp add --transport http pixeldojo https://pixeldojo.ai/mcp

Example Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "serverInfo": {
      "name": "pixeldojo",
      "version": "0.5.0"
    },
    "capabilities": {
      "tools": {}
    }
  }
}
GET/api/v1/credits

Return the API key owner's current credit balance. Call before submitting jobs to confirm there are enough credits, or to surface a "top up" prompt when the balance runs low.

Example Request:

curl "https://pixeldojo.ai/api/v1/credits" -H "Authorization: Bearer YOUR_API_KEY"

Example Response:

{
  "credits": 99
}

Available Models (144)

Also available programmatically: GET https://pixeldojo.ai/api/v1/models. This list updates automatically when models are enabled or disabled.

For any single model, fetch GET https://pixeldojo.ai/api/v1/models/{apiId}/schema to retrieve the canonical request schema before submitting a job.

Image Models (82)

Model IDNameCreditsDescription
boogu-imageBoogu Image1Boogu Image — bilingual (EN/ZH) text-to-image generation with crisp detail and 2K output.
boogu-image-editBoogu Image Edit1Boogu Image instruction-based editing. Provide a source image and an edit instruction.
bria-3-2Bria 3.21Bria 3.2 — text-to-image with 9 aspect ratio presets at 1K resolution, optional image and prompt enhancement, and photography/art medium hints.
change-camera-angleChange Camera Angle1Camera-aware editing via fal.ai Qwen Image Edit 2511 with multi-angle LoRA. 360° orbit, tilt, and zoom.
clarity-pro-upscalerClarity Pro4Clarity Pro Upscaler via Replicate. Photorealistic upscaling with identity preservation and creative control — up to 16× and 64 megapixels.
consistent-charactersConsistent Characters1Generate consistent character variations with FLUX Kontext, Nano Banana Pro/2, Flux 2 Dev, Qwen Image 2 Pro, or Grok Imagine.
creative-upscaleCreative Upscaler0.5Clarity Upscaler (creative upscale) via Replicate. Boost detail with stable-diffusion refinement.
ernieErnie1Baidu Ernie text-to-image (fal.ai). Multilingual prompts and built-in prompt expansion.
face-enhancePortrait Upscaler2Crystal Upscaler via Replicate. Face-detail preserving upscale, cost scales with output megapixels.
fluxFLUX1FLUX family on Replicate. Schnell, Dev, Pro, Kontext, Ultra, and LoRA remix variants in one entrypoint.
flux-2-flexFlux 2 Flex1.5Max-quality with up to 10 reference images
flux-2-klein-4bFlux 2 Klein 4B0.1Very fast generation and editing with up to 5 reference images
flux-2-klein-9bFlux 2 Klein 9B0.54-step distilled FLUX.2 [klein] foundation model for flexible control
flux-2-proFlux 2 Pro1.5High-quality with up to 8 reference images
flux-2-maxFlux 2 Max2The highest fidelity image model from Black Forest Labs
flux-2-devFlux 2 Dev1Fast quality with up to 4 reference images
flux-2-loraFlux 2 Dev + LoRA1Dev model with custom LoRA support
flux-editFlux Edit (Kontext)1Black Forest Labs FLUX.1 Kontext for text-driven image editing. Dev (open-weight), Pro (state-of-the-art), and Max (premium typography).
flux-devFlux Dev1High-quality development model with configurable steps and guidance. For LoRAs, use Flux Dev Multi LoRA.
flux-krea-devFlux Krea Dev1Photorealistic generation that avoids the oversaturated AI look. Supports a single LoRA via lora_weights.
flux-dev-multi-loraFlux Dev Multi LoRA1Flux Dev with multiple stacked custom LoRAs for complex style combinations.
flux-1.1-proFlux 1.1 Pro1Latest pro model with enhanced quality and strong prompt adherence.
flux-1.1-pro-ultraFlux 1.1 Pro Ultra1.5Highest quality Flux model with raw mode for natural-looking images.
flux-kontext-proFlux Kontext Pro1Advanced model with state-of-the-art performance for both generation and editing.
flux-kontext-maxFlux Kontext Max2Premium model with maximum performance and improved typography for generation and editing.
gemini-flashGoogle Gemini Flash1Fast generation with Gemini 2.5 Flash
nano-banana-proGoogle Nano Banana Pro3SOTA with accurate typography and reasoning
nano-banana-2Google Nano Banana 23Next-generation SOTA model with stronger consistency
nano-banana-2-liteGoogle Nano Banana 2 Lite2Faster, lower-cost Nano Banana 2 at fixed 1K resolution
google-nano-bananaNano Banana Edit3Google Nano Banana image editing. Multi-image fusion + edit instruction with Standard/Pro/Pro-fal tiers and 1K/2K/4K resolution.
gpt-image-2GPT Image 25OpenAI GPT Image 2 via fal.ai — next-generation image model with 4K rendering and sharper text fidelity.
gpt-image-2-editGPT Image 2 Edit5OpenAI GPT Image 2 image editing — supply 1-8 reference images plus an edit instruction. Optional mask for inpainting. 4K-capable; pricing varies by quality + size.
hunyuan-image-3Hunyuan Image 32Hunyuan Image 3.0 — Tencent's 80B-parameter MoE text-to-image model. High-fidelity generation with seven aspect ratio presets and a fast mode toggle.
ideogram-v4-turboIdeogram 4 Turbo1Fastest and cheapest Ideogram 4.0. Same stunning realism, creative designs, and text rendering — tuned for speed and iteration.
ideogram-v4-balancedIdeogram 4 Balanced2The sweet spot. Balances speed, quality, and cost — a great default for most graphic design, marketing, and poster work.
ideogram-v4-qualityIdeogram 4 Quality3The highest-quality Ideogram 4.0. Slowest but best for hero images, print-ready work, and detailed text-heavy layouts.
ideogram-characterIdeogram Character5Generate consistent characters from a single reference image in many styles.
image-editorCharacter Stylist1One-shot FLUX Kontext variants — filters, cartoonify, iconic locations, haircut swap, headshots, renaissance, face-to-many, and more.
image-relightingMagic Lighting1Relight images with Magic Lighting, Nano Banana Pro/2, or Qwen Image Edit — multi-provider routing with per-model credit rates.
image-to-image-fluxImage to Image1FLUX Dev LoRA image-to-image on Replicate. Prompt + source image + optional LoRA weights.
imagineartImagineArt1.5ImagineArt family — 1.0 (Mixture-of-Experts photorealism), 1.5, 1.5 Pro, and the 2.0 preview.
kling-imageKling Image1Kling Image V3 (fal.ai). High-quality text-to-image with flexible aspect ratios.
kling-image-editKling Image Edit1Kling Image V3 (fal.ai) image-to-image editing with a text instruction.
krea-v2Krea Image0.5Krea's aesthetic text-to-image, three tiers in one tool. Turbo for fast, cheap (0.5 credit), spicy-capable generation with optional custom LoRAs; Medium and Large for higher fidelity with a creativity control and optional style-reference images.
luma-uni-1Luma UNI 11Luma UNI 1 (Standard + MAX) via Runware. Text-to-image and reference-guided image editing with one prompt, two quality tiers.
magnific-upscalerMagnific Upscaler3Freepik Magnific upscaler. Creative or precision mode, up to 16x.
mai-imageMAI Image1.5Microsoft MAI Image 2.5 — text-to-image with strong prompt adherence, natural lighting, and clean detail across 11 aspect ratios.
outpaintImage Outpainting1fal.ai Image Apps V2 outpainting. Expand an image beyond its original edges.
p-imageP-Image0.1Pruna P-Image. Sub-second text-to-image with optional custom dimensions.
p-image-editP-Image Edit0.25Pruna P-Image Edit. Fast image editing with up to 5 reference images.
p-image-upscaleP-Image Upscale0.1Pruna P-Image Upscale. Fast image upscaling to a target megapixel size, with optional detail and realism enhancement.
ponyxl-ponyrealism-v23Pony Realism1Pony Realism - Stylized anime generation
ponyxl-tponynai3-v7Pony NAI1Pony NAI - Stylized anime generation
ponyxl-waianinsfwponyxl-v140Wai ANI1Wai ANI - Stylized anime generation
qwen-image-plusQWEN Image Plus1Fast generation with excellent quality
qwen-image-maxQWEN Image Max2Highest quality output
qwen-image-2.0QWEN Image 2.01Fast, balanced image generation and editing
qwen-image-2.0-proQWEN Image 2.0 Pro2Enhanced text rendering, realistic textures, and semantic adherence
qwen-image-2-editQwen Image 2 Edit1Alibaba DashScope Qwen Image 2 edit — supply 1-3 reference images plus an edit instruction. Standard and Pro variants.
qwen-image-editQwen Image Edit1Alibaba DashScope Qwen Image edit — supply 1-3 reference images plus an edit instruction. Plus and Max model variants.
qwen-image-edit-spicyQwen Image Edit Spicy1Qwen Image Edit Spicy. Add, remove, or modify elements in an existing image with text guidance.
recraft-v4.1Recraft V4.11Recraft's latest image model. Better photorealism, smoother gradients, and improved text rendering vs V4. ~1024px output.
recraft-v4.1-proRecraft V4.1 Pro5V4.1 at ~2048px resolution. Print-ready and large-scale work with the same prompt accuracy and design taste as standard.
recraft-v4.1-svgRecraft V4.1 SVG1Production-ready SVG vector output. Clean geometry, structured layers, editable paths — V4.1's design taste applied to vector.
recraft-v4.1-pro-svgRecraft V4.1 Pro SVG5Detailed SVG vector graphics with finer paths and more geometric detail than standard SVG.
redux-fluxFlux Redux1Black Forest Labs Flux Redux image variations — feed a source image, get stylistic riffs.
reveReve 2.14Reve 2.1 — generate from text, edit a single image, or remix up to 8 reference images with frame-level prompt control.
riverflowRiverflow1Sourceful Riverflow 2.0 (Fast + Pro) via Runware. Text-to-image with optional reference image guidance — references steer style and composition, the model generates a fresh frame from your prompt. Two quality tiers.
rodinRodin8Hyper3D Rodin v2.5. Turn up to 5 reference images into production-ready 3D models, with fast and standard quality modes.
seedream-4Seedream 4.51ByteDance Seedream 4.5 — new-generation image creation with superior aesthetics, text rendering, and up to 4K resolution.
seedream-5Seedream 52Seedream 5 Pro — the flagship Seedream image model with sharper realism, stronger prompt adherence, and best-in-class text rendering.
seedream-5-liteSeedream 5 Lite1ByteDance Seedream 5.0 Lite — fast, high-quality image generation and editing with strong aesthetics and text rendering.
wan-2.6-imageWAN 2.61Alibaba WAN 2.6 text-to-image with prompt enhancement and multi-image output.
wan-2.6-image-editWAN 2.6 Image Edit1Alibaba WAN 2.6 image editing. Up to 4 reference images.
wan-2.7-imageWAN 2.7 Standard1Faster Wan 2.7 image generation and editing
wan-2.7-image-proWAN 2.7 Pro2Higher quality Wan 2.7 tier with 4K support for text-to-image
wan-2.7-image-editWAN 2.7 Image Edit1Alibaba WAN 2.7 image editing. Standard and Pro tiers, supports up to 9 input images for fusion edits.
wan-imageWAN Image1Fast cinematic image generation (3-6 seconds) with up to 2MP output and optional LoRA support.
xai-imageGrok Image1xAI Grok Imagine. Fast tier for quick iteration, Quality tier for higher fidelity at 1k or 2k.
xai-image-editGrok Image Edit1xAI Grok image editing. Sync response (no polling). Provide an image URL and a text edit instruction. Optional quality tier for 1k/2k high-fidelity edits.
z-image-spicyZ Image Spicy1Z Image Spicy text-to-image. Square / portrait / landscape compositions, 256–1536px on each side.
z-image-turboZ Image Turbo0.5Super-fast 6B parameter text-to-image with great text rendering and LoRA support.

Video Models (58)

Model IDNameCreditsDescription
google-gemini-omni-flashGemini Omni Flash16Google Gemini Omni Flash: text, image, or video into 3–10s 720p clips with native audio. Image-to-video, reference images, and video editing.
grok-r2vGrok R2V10xAI Grok Imagine reference-to-video via Replicate. 1 to 7 reference images plus prompt for 1 to 10 second clips at 480p or 720p.
grok-video-extendGrok Imagine Video Extend12xAI Grok Imagine video extension. Continue an existing MP4 with a prompt-directed extension (2 to 10 seconds).
hailuo-standardHailuo Standard8Premium quality text-to-video and image-to-video
hailuo-fastHailuo Fast4Fast image-to-video generation
happyhorse-1.0-r2vHappy Horse Reference4/secAlibaba Happy Horse reference-to-video (1.0 or 1.1) — multi-reference image input that preserves subject characters, driven by a text prompt. 720p / 1080p, 3-15 second clips. Version 1.1 runs at a lower per-second credit rate.
happyhorse-1.0-t2vHappy Horse 1.0 Text-to-Video4/secText-to-video with 720p/1080p output and 2-15 second durations
happyhorse-1.0-i2vHappy Horse 1.0 Image-to-Video4/secImage-to-video animation with 720p/1080p output and 2-15 second durations
happyhorse-1.0-video-editHappy Horse Video Edit4/secAlibaba Happy Horse 1.0 video edit — apply style transfer or local replacement to a source video using text prompts and optional reference images. 720p / 1080p, 3-15 second output.
heygen-avatarHeygen Avatar2/secHeygen Avatar 4 via fal.ai. Animate a portrait with prompt-driven speech or an audio track, with optional background and captions. Costs 2 credits per second of output video: an estimate is held at submission and settled to the actual duration when the job completes.
kling-motion-controlKling Motion Control v3 Standard3/secKling Video v3 Standard motion control endpoint
kling-motion-control-proKling Motion Control v3 Pro4/secKling Video v3 Pro motion control endpoint
kling-reference-to-videoKling Reference to Video15Kling O3 reference-driven video generation. Image or video references, Standard or Pro tier.
kling-v2-6Kling 2.6 Pro15Kling Video v2.6 Pro (fal.ai). Text-to-video or image-to-video, 5 or 10 seconds, with audio generation.
kling-video-v3-standard-textKling Video v3 Standard (Text)6/secStandard text-to-video with native audio
kling-video-v3-standard-imageKling Video v3 Standard (Image)6/secStandard image-to-video with native audio
kling-video-v3-pro-textKling Video v3 Pro (Text)8/secPro text-to-video with cinematic quality and native audio
kling-video-v3-pro-imageKling Video v3 Pro (Image)8/secPro image-to-video with cinematic quality and native audio
kling-video-editKling Video Edit40Kling O3 video-to-video edit. Standard or Pro, with optional reference images and audio preservation.
ltx-2-fast-t2vLTX 2.3 Fast Text-to-Video2/secFast text-to-video generation (6-20s, 1080p-2160p).
ltx-2-fast-i2vLTX 2.3 Fast Image-to-Video2/secFast image-to-video generation (6-20s, 1080p-2160p).
ltx-2-pro-t2vLTX 2.3 Pro Text-to-Video2/secHigher quality text-to-video generation (6-10s, 1080p-2160p).
ltx-2-pro-i2vLTX 2.3 Pro Image-to-Video2/secHigher quality image-to-video generation (6-10s, 1080p-2160p).
ltx-2-pro-extendLTX 2.3 Pro Extend Video2/secExtend an existing video clip from the start or end (1-20s, Pro tier only).
omnihumanOmniHuman45ByteDance OmniHuman 1.5 via Replicate. Audio-driven talking-head video with lip sync.
p-videoP Video0.5/secPruna P-Video — video generation with text/image/audio conditioning, draft mode, and 720p/1080p outputs.
p-video-avatarP Video Avatar1/secPruna P Video Avatar — animate a portrait into a talking avatar from a script or an audio file. 30 voices, 10 languages, 720p / 1080p.
pixversePixverse7.5Pixverse v5.6 video generation via Replicate — text-to-video or image-to-video with optional audio, at 360p–1080p.
pixverse-v6PixVerse V610Pixverse V6 video generation via Runware. Text-to-video, image-to-video (start frame), or multi-clip (start + end frame).
seedance-1.5Seedance 1.58ByteDance Seedance 1 video generation. Text-to-video or image-to-video with optional end frame.
seedance-2-highSeedance 2 High4/secHigher-quality Seedance 2.0 video generation (supports 1080p)
seedance-2-referenceSeedance 2 Reference20Seedance 2.0 multimodal reference-to-video. Combine up to 9 images, 3 video clips, and 3 audio tracks to guide characters, motion, and sound.
seedance-video-editSeedance 2 Video Edit25Edit source videos with Seedance 2.0 using prompted changes, optional reference images, and 480p, 720p, or 1080p output.
veo-3.1-fastVEO 3.1 Fast3/secFaster generation at 3 credits per second
veo-3.1-standardVEO 3.1 Standard8/secHigher quality at 8 credits per second
veo-3.1-liteVEO 3.1 Lite1.5/secRunware-powered Lite variant at 1.5 credits/sec for 720p and 2 credits/sec for 1080p. No reference images, no audio generation, no 1:1 aspect ratio.
video-autocaptionVideo Autocaption5TikTok-style auto-captioning via Replicate.
video-reframeVideo Reframe8Luma Reframe Video via Replicate. Change a video's aspect ratio intelligently.
video-transformRunway Aleph7/secRunway Aleph 2.0 via Replicate. Transform up to 30 seconds of video with a prompt.
video-upscalerVideo Upscaler10Topaz Labs Video Upscale via Replicate. Upscale video resolution and FPS.
vidu-q3Vidu Q310Vidu Q3 — text-to-video and image-to-video at 360p, 540p, 720p, or 1080p with optional synchronized audio.
wan-2.1-videoWAN 2.1 Video1.5/secWAN 2.1 (14B) text & image to video with LoRA support. 480p/720p, 1-5 second clips.
wan-2.2-standardWAN 2.2 Standard3Premium quality with enhanced detail
wan-2.2-plusWAN 2.2 Plus10Official Alibaba model with 1080p support
wan-2.2-extendedWAN 2.2 Extended1.2/secfal.ai WAN 2.2 with up to 10-second videos and dual LoRA support
wan-2.2-animateWAN 2.2 Animate10WAN 2.2 video animation. Drive a character image with a motion reference video.
wan-2.2-i2v-spicyWAN 2.2 Spicy Image-to-Video10Image-to-video with WAN 2.2 Spicy. Animate a starting image. 480p or 720p, 5s or 8s clips.
wan-2.2-replaceWAN 2.2 Replace10WAN 2.2 character replacement. Swap a character in a source video while preserving scene and motion.
wan-2.6-standardWAN 2.6 Standard2.5/secHigher quality, 720p/1080p support
wan-2.6-flashWAN 2.6 Flash1/secFast and affordable image-to-video
wan-2.7-i2v-spicyWAN 2.7 Spicy Image-to-Video20Image-to-video with WAN 2.7 Spicy. Animate a starting image with optional driving audio. 720p or 1080p, 2–15 second clips.
wan-2.7-t2vWAN 2.7 Text-to-Video2.5/secText-to-video with audio sync, 720p/1080p output, and 2-15 second durations
wan-2.7-i2vWAN 2.7 Image-to-Video2.5/secImage-to-video and video continuation with optional last-frame control and audio sync
wan-reference-to-videoWAN Reference to Video6Alibaba WAN reference-to-video. Up to 5 image/video references with multi-shot support.
wan-video-character-swapWAN Video Character Swap20Alibaba WAN character swap. Combine a character image with a reference video to produce a new clip.
wan-video-editWAN 2.7 Video Edit6Alibaba WAN 2.7 video editing. Modify an existing clip via prompt with optional reference images.
xai-videoGrok Video10xAI Grok Imagine video. Text-to-video or image-to-video, 1-15 seconds at 480p or 720p. Image-to-video can use the Grok Imagine 1.5 backbone for natively-synchronized audio.
xai-video-editGrok Video Edit15xAI Grok Imagine Video edit. Transform short clips via Replicate.

Audio & 3D Models (4)

Model IDNameCreditsDescription
hunyuan-3dHunyuan 3D4Tencent Hunyuan 3D 3.1. Generate 3D meshes from a text prompt or a single image.
seed-audioSeed Audio 1.00.1/secByteDance Seed Audio 1.0. Generate speech, voice clones, and full audio scenes (radio dramas, podcasts, narration) from a prompt.
text-to-musicText to Music2ElevenLabs Music via Replicate. Generate music from a text prompt.
text-to-speechText to Speech0.5MiniMax Speech 2.8 Turbo via Replicate. Convert text into natural-sounding speech.

Response Format

Submit Response (202)

{
  "jobId": "job_abc123",
  "status": "pending",
  "statusUrl": "https://pixeldojo.ai/api/v1/jobs/job_abc123",
  "creditCost": 1,
  "creditsRemaining": 99
}

Completed Response (200)

{
  "jobId": "job_abc123",
  "apiId": "flux-1.1-pro",
  "status": "completed",
  "output": {
    "images": [
      "https://temp.pixeldojo.ai/pixeldojotemp/...png"
    ]
  },
  "assets": [
    {
      "assetId": "job_abc123:image:0",
      "kind": "image",
      "url": "https://temp.pixeldojo.ai/pixeldojotemp/...png"
    }
  ],
  "webhook": {
    "configured": true,
    "delivered": true,
    "attempts": 1
  },
  "creditCost": 1,
  "refunded": false,
  "createdAt": "2026-03-17T11:59:00Z",
  "updatedAt": "2026-03-17T12:00:00Z",
  "expiresAt": "2026-02-07T12:00:00Z"
}

Job Statuses

Control Plane

PixelDojo exposes agent-friendly control-plane routes for inspecting request schemas, listing recent jobs, and replaying terminal webhooks.

Installable Surfaces

PixelDojo is designed to be consumable by different kinds of agent runtimes. Use the surface that best matches your stack:

Error Codes

CodeHTTP StatusDescription
unauthorized401Missing or invalid API key
invalid_json400Invalid JSON in request body
validation_error400Input validation failed
not_found404Model or job not found
insufficient_credits402Insufficient credits
credit_error500Failed to deduct credits
submission_failed500Failed to submit job
expired410Job has expired
rate_limit_exceeded429Rate limit exceeded
internal_error500Internal server error

Code Examples

cURL

# Submit a job
curl -X POST "https://pixeldojo.ai/api/v1/models/flux-1.1-pro/run" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A sunset", "aspect_ratio": "1:1", "webhook_url": "https://example.com/webhook"}'

# Poll for results
curl "https://pixeldojo.ai/api/v1/jobs/job_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"

# List recent jobs
curl "https://pixeldojo.ai/api/v1/jobs?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Replay a terminal webhook
curl -X POST "https://pixeldojo.ai/api/v1/jobs/job_abc123/webhook" \
  -H "Authorization: Bearer YOUR_API_KEY"

Python

import requests
import time

API_KEY = "your_api_key"
BASE_URL = "https://pixeldojo.ai/api/v1"

model_schema = requests.get(
  f"{BASE_URL}/models/flux-1.1-pro/schema"
).json()

submit_response = requests.post(
  f"{BASE_URL}/models/flux-1.1-pro/run",
  headers={
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
  },
  json={"prompt": "A sunset", "aspect_ratio": "1:1", "webhook_url": "https://example.com/webhook"},
)
job = submit_response.json()

while True:
  status = requests.get(
    job["statusUrl"],
    headers={"Authorization": f"Bearer {API_KEY}"}
  ).json()
  if status["status"] in {"completed", "failed"}:
    print(status)
    break
  time.sleep(2)

JavaScript

const schema = await fetch("https://pixeldojo.ai/api/v1/models/flux-1.1-pro/schema");
const requestSchema = await schema.json();

const submit = await fetch("https://pixeldojo.ai/api/v1/models/flux-1.1-pro/run", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    prompt: "A sunset",
    aspect_ratio: "1:1",
    webhook_url: "https://example.com/webhook"
  })
});

const job = await submit.json();
let result;

do {
  const status = await fetch(job.statusUrl, {
    headers: { "Authorization": "Bearer YOUR_API_KEY" }
  });
  result = await status.json();
  if (result.status === "pending" || result.status === "processing") {
    await new Promise((resolve) => setTimeout(resolve, 2000));
  }
} while (result.status === "pending" || result.status === "processing");

console.log(requestSchema.schema, result.assets, result.webhook);

TypeScript

interface JobSubmitResponse {
  jobId: string;
  status: "pending" | "processing";
  statusUrl: string;
  creditCost: number;
  creditsRemaining: number;
  expiresAt: string;
}

interface JobAsset {
  assetId: string;
  kind: "image" | "video";
  url: string;
}

interface JobResult {
  jobId: string;
  apiId: string;
  status: "pending" | "processing" | "completed" | "failed";
  assets: JobAsset[];
  webhook: { configured: boolean; delivered: boolean; attempts: number };
  output?: { images?: string[]; video?: string };
  error?: string;
}

const submit = await fetch("https://pixeldojo.ai/api/v1/models/flux-1.1-pro/run", {
  method: "POST",
  headers: { 
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    prompt: "A sunset",
    aspect_ratio: "1:1",
    webhook_url: "https://example.com/webhook"
  })
});

const job: JobSubmitResponse = await submit.json();
const resultResponse = await fetch(job.statusUrl, {
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
});
const result: JobResult = await resultResponse.json();

if (result.status === "completed") {
  console.log(result.assets);
}

Rate Limits

60 requests per minute across all endpoints.

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1738800000

Best Practices

  1. Store API keys securely — never in client-side code or public repos
  2. Fetch /models/{apiId}/schema before generating dynamic payloads for a model
  3. Poll job status with exponential backoff (start at 2s, max 30s)
  4. Use asset references from job responses to track outputs across retries and orchestration steps
  5. Download outputs promptly — generated content expires after 24 hours
  6. Use seed for reproducible results across identical prompts
  7. Use webhook_url instead of polling for production workloads
  8. Handle rate limits gracefully with retry logic