{"uid":"cap_hC8OHOBiv4mAq5R77Ojb0","slug":"withzero-pixel-art-canvas-creator-c99c2b47","name":"WithZero Pixel Art Canvas Creator","description":"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","url":"https://agents.withzero.xyz/api/v1/pixelart/canvas?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"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."},"pivot":{"type":"object","required":["x","y"],"properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"description":"Per-frame pivot override. Omit to use defaultPivot.","additionalProperties":false},"events":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":64,"minLength":1},"payload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}}},"additionalProperties":false},"maxItems":64,"description":"Events emitted when playback enters this frame."},"sockets":{"type":"object","description":"Named attachment points such as feet, muzzle, hand, or weapon.","propertyNames":{"type":"string","maxLength":64,"minLength":1},"additionalProperties":{"type":"object","required":["x","y"],"properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"additionalProperties":false}},"durationMs":{"type":"integer","maximum":60000,"minimum":1,"description":"Per-frame duration override. Omit to use the clip or canvas FPS."}},"additionalProperties":false}},"rootMotion":{"anyOf":[{"type":"string","const":"none"},{"type":"object","properties":{"socket":{"type":"string","maxLength":64,"minLength":1,"description":"Socket whose movement represents root motion."}},"additionalProperties":false}],"description":"Whether movement is in-place or derived from a named socket."},"defaultPivot":{"type":"object","required":["x","y"],"properties":{"x":{"type":"number","description":"Horizontal pixel coordinate from the left edge of the frame."},"y":{"type":"number","description":"Vertical pixel coordinate from the top edge of the frame."}},"description":"Default render pivot shared by frames without an override.","additionalProperties":false}},"description":"Optional engine metadata: pivots, facing, root motion, clips, sockets, boxes, and events.","additionalProperties":false},"loop":{"type":"boolean","default":true,"description":"Whether playback loops (false = play once)."},"name":{"type":"string","maxLength":100,"description":"Human-readable label for this canvas."},"width":{"type":"integer","default":64,"maximum":256,"minimum":8,"description":"Canvas width in pixels (8–256). Default: 64."},"height":{"type":"integer","default":64,"maximum":256,"minimum":8,"description":"Canvas height in pixels (8–256). Default: 64."},"initData":{"type":"string","maxLength":349528,"minLength":1,"description":"Base64-encoded RGBA pixel data to initialise the canvas. Must be exactly width × height × 4 bytes after decoding. Omit to start with a transparent (empty) canvas."}}},"responseSchema":{"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},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":1,"rating":{"score":"0.08","successRate":"0.91","reviews":1,"stars":"1.3","state":"rated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_We1Farod6CoE2R5qsNGfj","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null},{"uid":"pm_xHtWMx3YI0z6IPLInoSaJ","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x20C000000000000000000000b9537d11c60E8b50","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Creates a new pixel art canvas with optional base64 RGBA pixel data and returns editing, manifest, full-spec, guide, and interactive-view URLs.","exampleAgentPrompt":"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.","exampleUseCases":[{"title":"Initialize animated game sprite sheet","prompt":"I need a 64x64 pixel canvas for a top-down RPG enemy with four animation clips: 'idle' for frames 0-2, 'attack' for frames 3-6, 'hurt' for frames 7-8, and 'death' for frames 9-12, all at 10 fps."},{"title":"Publish pixel art quickly online","prompt":"Create a new 128x128 pixel canvas and give me a URL I can share with my team so they can edit and view the sprite in real time without needing any special software installed."},{"title":"Preload existing pixel data canvas","prompt":"I have base64 encoded RGBA pixel data for a 48x48 character sprite with hitboxes at different animation frames—set up a new canvas with that data pre-loaded and give me the interactive view URL so I can test it in the browser immediately."}],"resultDescription":"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.","failureModes":["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"],"whenToPreferThis":"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.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":58,"lastUsedAt":"2026-08-13T21:45:03.937Z","lastSuccessfullyRanAt":"2026-08-13T21:45:03.937Z","lastHealthCheckAt":"2026-10-22T07:50:05.712Z","isFirstParty":true,"canonicalSlug":"withzero-pixel-art-canvas-creator-c99c2b47"}