# Pixel Art Animation Job Creator (Non-Destructive, Durable Dispatch)

> Pixel Art Animation Job Creator (Non-Destructive, Durable Dispatch) is a paid API for AI agents from pixelart.withzero.xyz, paid per call via MPP, $0.6/call, status unknown (last checked 2026-10-10, last successful call 2026-07-13).

Creates a paid, non-destructive animation job on a pixel art canvas that generates in-between frames from a source frame using preset or custom motion, publishes a reviewable draft without modifying the canvas until explicitly applied.

## Facts

- Endpoint: POST https://pixelart.withzero.xyz/api/v1/canvas/{id}/animation-jobs?utm_source=zero.xyz
- Price: $0.6/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-10
- Last successful call: 2026-07-13
- Success rate: 100% of calls made through Zero
- Rating: 4.3 / 5 from 1 review
- Activations on Zero: 4
- Provider: pixelart.withzero.xyz
- Website: https://pixelart.withzero.xyz
- Canonical page: https://www.zero.xyz/c/pixelart-withzero-xyz-pixel-art-animation-job-creator-non-destructive-b3b71ad9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_l6EK9cIVMu2vCmB6BuHm5

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability pixelart-withzero-xyz-pixel-art-animation-job-creator-non-destructive-b3b71ad9 -d '<json body>'
```

Example prompt: Create a walk-cycle animation job on my pixel art canvas abc123, using frame 0 as the source, 8 frames at 12fps with medium strength, one smoothing pass, and name the clip 'hero-walk'.

## When to prefer this

Use this endpoint when you need to generate a multi-frame pixel art animation from an existing canvas frame without immediately overwriting the canvas — ideal when you want to review the generated animation before committing, need deterministic frame generation with palette normalization and motion verification, or want preset game-ready motions (idle, walk, attack, jump, hurt) with optional smoothing passes. Prefer over the destructive Retro Diffusion animation endpoint when non-destructive, reviewable drafts are required.

## Known failure modes

- Invalid canvas ID returns 404 not found
- Source frame index out of range (0-255) returns 400 validation error
- Missing required fields (sourceFrame or motion) returns 400 bad request
- Payment escrow failure returns 402 payment required
- Invalid motion preset enum value returns 400 validation error
- Frame count not one of 4, 6, or 8 returns 400 validation error
- Custom prompt exceeds 800 characters returns 400 validation error
- Job fails during remote processing — status becomes 'failed' on poll
- Smoothing passes value not 0, 1, or 2 returns 400 validation error

## How this service works

Create a paid, non-destructive first-party animation job through durable remote dispatch. The engine redraws locked target poses through a swappable reference-image model, generates recursive in-betweens with deterministic pixel flow, normalizes every frame to one palette and anchor, verifies motion/identity/topology, and publishes a reviewable draft. Poll the returned status URL while the remote worker runs; the editable canvas changes only after explicit application. The request escrows its exact price and settles only after durable acceptance: $0.60 without smoothing, or $0.80 for the default one-pass and optional two-pass modes. Full agent guide: https://pixelart.withzero.xyz/llms.txt

## Output

Returns a job object with a UUID job ID, canvas ID, initial status (queued/running/ready/needs_review/failed), a statusUrl to poll for completion, frame count, engine version (pixel-redraw-v1), and source frame metadata including dimensions and content hash. The canvas is not modified until the draft is explicitly applied.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "sourceFrame",
  "motion"
 ],
 "properties": {
  "fps": {
   "type": "integer",
   "maximum": 60,
   "minimum": 1
  },
  "loop": {
   "type": "boolean"
  },
  "motion": {
   "oneOf": [
    {
     "type": "object",
     "required": [
      "kind",
      "preset",
      "strength"
     ],
     "properties": {
      "kind": {
       "type": "string",
       "const": "preset"
      },
      "preset": {
       "enum": [
        "idle",
        "walk",
        "attack",
        "jump",
        "hurt"
       ],
       "type": "string"
      },
      "prompt": {
       "type": "string",
       "maxLength": 500,
       "minLength": 1
      },
      "strength": {
       "enum": [
        "subtle",
        "medium",
        "large"
       ],
       "type": "string",
       "default": "medium"
      }
     },
     "additionalProperties": false
    },
    {
     "type": "object",
     "required": [
      "kind",
      "prompt"
     ],
     "properties": {
      "kind": {
       "type": "string",
       "const": "custom"
      },
      "prompt": {
       "type": "string",
       "maxLength": 800,
       "minLength": 1
      },
      "keyPoses": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "frameIndex",
         "label",
         "instruction"
        ],
        "properties": {
         "label": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1
         },
         "frameIndex": {
          "type": "integer",
          "maximum": 7,
          "minimum": 1
         },
         "instruction": {
          "type": "string",
          "maxLength": 300,
          "minLength": 1
         }
        },
        "additionalProperties": false
       },
       "maxItems": 7
      }
     },
     "additionalProperties": false
    }
   ]
  },
  "clipName": {
   "type": "string",
   "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
   "maxLength": 64,
   "minLength": 1
  },
  "frameCount": {
   "anyOf": [
    {
     "type": "number",
     "const": 4
    },
    {
     "type": "number",
     "const": 6
    },
    {
     "type": "number",
     "const": 8
    }
   ]
  },
  "sourceFrame": {
   "type": "integer",
   "default": 0,
   "maximum": 255,
   "minimum": 0
  },
  "smoothingPasses": {
   "anyOf": [
    {
     "type": "number",
     "const": 0
    },
    {
     "type": "number",
     "const": 1
    },
    {
    
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "jobId",
  "canvasId",
  "status",
  "engineVersion",
  "source",
  "frameCount",
  "statusUrl",
  "created"
 ],
 "properties": {
  "jobId": {
   "type": "string",
   "format": "uuid",
   "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  },
  "source": {
   "type": "object",
   "required": [
    "frameIndex",
    "width",
    "height",
    "sourceHash",
    "contentUpdatedAt"
   ],
   "properties": {
    "width": {
     "type": "integer",
     "maximum": 9007199254740991,
     "exclusiveMinimum": 0
    },
    "height": {
     "type": "integer",
     "maximum": 9007199254740991,
     "exclusiveMinimum": 0
    },
    "frameIndex": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": -9007199254740991
    },
    "sourceHash": {
     "type": "string"
    },
    "contentUpdatedAt": {
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "status": {
   "enum": [
    "queued",
    "running",
    "ready",
    "needs_review",
    "failed"
   ],
   "type": "string"
  },
  "created": {
   "type": "boolean"
  },
  "canvasId": {
   "type": "string",
   "format": "uuid",
   "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  },
  "statusUrl": {
   "type": "string"
  },
  "frameCount": {
   "type": "integer",
   "maximum": 9007199254740991,
   "minimum": -9007199254740991
  },
  "engineVersion": {
   "type": "string",
   "const": "pixel-redraw-v1"
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pixelart-withzero-xyz-pixel-art-animation-job-creator-non-destructive-b3b71ad9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from pixelart.withzero.xyz](https://www.zero.xyz/host/pixelart.withzero.xyz/llms.txt)
