# WithZero Pixel Art Canvas Creator

> WithZero Pixel Art Canvas Creator is a paid API for AI agents from agents.withzero.xyz, paid per call via x402 or MPP, $0.01/call, status unknown (last checked 2026-10-22, last successful call 2026-08-13).

Creates a new pixel art canvas with optional base64 RGBA pixel data and returns editing, manifest, full-spec, guide, and interactive-view URLs.

## Facts

- Endpoint: POST https://agents.withzero.xyz/api/v1/pixelart/canvas?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402, MPP
- Status: unknown
- Last checked: 2026-10-22
- Last successful call: 2026-08-13
- Success rate: 91% of calls made through Zero
- Rating: 1.3 / 5 from 1 review
- Activations on Zero: 58
- Tags: x402
- Canonical page: https://www.zero.xyz/c/withzero-pixel-art-canvas-creator-c99c2b47
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_hC8OHOBiv4mAq5R77Ojb0

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 withzero-pixel-art-canvas-creator-c99c2b47 -d '<json body>'
```

Example prompt: Create a new 32x32 pixel art canvas on WithZero for a walking character sprite at 12 fps, with left as the native facing direction, and two animation clips named 'idle' from frame 0 to 3 and 'walk' from frame 4 to 11.

## When to prefer this

Use this endpoint when you need to programmatically create a new pixel art canvas, especially for game development workflows requiring sprite sheets with named animation clips, per-frame hitboxes, pivot points, and facing metadata. It is ideal when the agent needs to both initialize a canvas and optionally pre-populate it with pixel data in a single call, and when a hosted editing + interactive-view URL is needed for human review or downstream game engine consumption.

## Known failure modes

- Invalid or malformed base64 RGBA pixel data returns a 400 error
- FPS value outside 1-60 range causes a validation error
- More than 64 named animation clips or hitbox items per frame triggers a schema violation
- Payment of $0.01 USDC not provided or rejected returns a 402 Payment Required
- Canvas dimensions not specified or invalid may return a 400 error
- Animation clip frame indices referencing non-existent frames may be rejected

## How this service works

Create a new pixel art canvas. Returns editing, manifest, full-spec, guide, and interactive-view URLs. Optionally pre-load base64 RGBA pixels. Full agent guide: https://pixelart.withzero.xyz/llms.txt

## Output

Returns a set of URLs for the newly created canvas: an editing URL (for human editing in a browser), a manifest URL, a full-spec URL, a guide URL, and an interactive-view URL. The canvas may be pre-loaded with base64 RGBA pixel data if provided, and includes any game metadata like clips, pivots, and hitboxes configured in the request.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "fps": {
   "type": "integer",
   "maximum": 60,
   "minimum": 1,
   "description": "Playback rate for animation consumers."
  },
  "game": {
   "type": "object",
   "properties": {
    "clips": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "name",
       "fromFrame",
       "toFrame"
      ],
      "properties": {
       "fps": {
        "type": "integer",
        "maximum": 60,
        "minimum": 1
       },
       "loop": {
        "type": "boolean"
       },
       "name": {
        "type": "string",
        "maxLength": 64,
        "minLength": 1
       },
       "toFrame": {
        "type": "integer",
        "maximum": 9007199254740991,
        "minimum": 0
       },
       "fromFrame": {
        "type": "integer",
        "maximum": 9007199254740991,
        "minimum": 0
       }
      },
      "additionalProperties": false
     },
     "maxItems": 64,
     "description": "Named animation ranges within this canvas."
    },
    "facing": {
     "enum": [
      "left",
      "right",
      "none"
     ],
     "type": "string",
     "description": "Native facing direction of the authored art."
    },
    "frames": {
     "type": "object",
     "description": "Metadata keyed by canonical zero-based frame index.",
     "propertyNames": {
      "type": "string",
      "pattern": "^(0|[1-9]\\d*)$"
     },
     "additionalProperties": {
      "type": "object",
      "properties": {
       "boxes": {
        "type": "array",
        "items": {
         "type": "object",
         "required": [
          "kind",
          "x",
          "y",
          "width",
          "height"
         ],
         "properties": {
          "x": {
           "type": "number"
          },
          "y": {
           "type": "number"
          },
          "kind": {
           "enum": [
            "hit",
            "hurt",
            "collision",
            "interaction"
           ],
           "type": "string"
          },
          "name": {
           "type": "string",
           "maxLength": 64,
           "minLength": 1
          },
          "width": {
           "type": "number",
           "exclusiveMinimum": 0
          },
          "height": {
           "type": "number",
           "exclusiveMinimum": 0
          }
         },
         "additionalProperties": false
        },
        "maxItems": 64,
        "description": "Gameplay geometry associated with this frame."
       }
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "id",
  "width",
  "height",
  "viewUrl",
  "apiUrl",
  "ansiUrl",
  "manifestUrl",
  "fullSpecUrl",
  "guideUrl"
 ],
 "properties": {
  "id": {
   "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)$",
   "description": "Canvas UUID — use in all subsequent API calls."
  },
  "width": {
   "type": "integer",
   "maximum": 9007199254740991,
   "minimum": -9007199254740991
  },
  "apiUrl": {
   "type": "string",
   "description": "Base API URL for this canvas."
  },
  "height": {
   "type": "integer",
   "maximum": 9007199254740991,
   "minimum": -9007199254740991
  },
  "ansiUrl": {
   "type": "string",
   "description": "URL that returns ANSI half-block art of the canvas. Pipe via `curl <ansiUrl>` to render in any terminal or agent context."
  },
  "viewUrl": {
   "type": "string",
   "description": "URL to the interactive pixel editor pre-loaded with this canvas."
  },
  "guideUrl": {
   "type": "string",
   "description": "Holistic agent workflow guide."
  },
  "fullSpecUrl": {
   "type": "string",
   "description": "Complete OpenAPI surface including free editing routes."
  },
  "manifestUrl": {
   "type": "string",
   "description": "Engine-ready animation manifest for this mutable canvas."
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/withzero-pixel-art-canvas-creator-c99c2b47/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.withzero.xyz](https://www.zero.xyz/host/agents.withzero.xyz/llms.txt)
