Meshy 3D generation API — text-to-3D, image-to-3D, multi-image-to-3D, remesh, retexture, auto-rigging, animation, 3D printing, plus nano-banana-backed 2D gen. Activate when the user asks for 3D models, rigging, animations, 3D printing, or configures any node whose id starts with `meshy-`. Sourced directly from docs.meshy.ai on 2026-04-17 — every parameter, endpoint, and price quoted here came from the canonical API reference.
Installation
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Meshy 3D generation API — text-to-3D, image-to-3D, multi-image-to-3D, remesh, retexture, auto-rigging, animation, 3D printing, plus nano-banana-backed 2D gen. Activate when the user asks for 3D models, rigging, animations, 3D printing, or configures any node whose id starts with `meshy-`. Sourced directly from docs.meshy.ai on 2026-04-17 — every parameter, endpoint, and price quoted here came from the canonical API reference.
Meshy Skill
When to use
User asks for a 3D model (text description or image reference)
User wants to rig a character, animate a rigged character, or 3D-print a model
User wants to retexture or remesh an existing 3D model
User configures any meshy-* node
User asks about credit costs, rate limits, or which Meshy model to pick
Universal rules (all Meshy endpoints)
Every task is async. Submit returns {"result": "<task_id>"}. Poll GET /{endpoint}/{task_id} or subscribe to /stream for SSE. Task is done when status is SUCCEEDED, FAILED, or CANCELED.
Assets expire. Task responses include expires_at (ms since epoch). Download outputs promptly.
Base URL:https://api.meshy.ai/openapi/ — v1 for most endpoints, v2 for text-to-3d only.
Status values:PENDING → IN_PROGRESS → SUCCEEDED / FAILED / CANCELED.
Error codes:400 bad params · 401 auth · 402 insufficient credits · 404 not found · 422 pose estimation failed (rigging only) · 429 rate limit.
Task ID format: k-sortable UUID. Docs say "you should not make any assumptions about the format of the id" — treat as opaque.
Delete is irreversible.DELETE /{endpoint}/{task_id} permanently removes the task and all assets. As of 2026-06-05, a poll cancellation fires a best-effort DELETE /{endpoint}/{task_id} so the in-flight Meshy task stops upstream instead of running to completion.
Pick the right endpoint
User wants
Endpoint
Credits
Nebula node
3D model from text
/v2/text-to-3d (preview, then refine)
20 (meshy-6) + 10 refine, or 5 + 10 (older)
meshy-text-to-3d
3D model from single image
/v1/image-to-3d
20 (no tex) / 30 (with tex) on meshy-6, or 5/15 on older
meshy-image-to-3d
3D model from 2–4 images (same object, different angles)
/v1/multi-image-to-3d
same as image-to-3d
meshy-multi-image-to-3d
Convert format or reduce polycount on existing model
/v1/remesh
5
meshy-remesh
Re-texture existing 3D model with text or image
/v1/retexture
10
meshy-retexture
Auto-rig a humanoid character
/v1/rigging
5 (includes walking + running free)
meshy-rigging
Apply an animation from the library
/v1/animations
3
meshy-animate
Multi-color 3D print output (3MF)
/v1/print/multi-color
10
meshy-3d-print
2D image via nano-banana routed through Meshy
/v1/text-to-image or /v1/image-to-image
3 (nano-banana) / 9 (pro)
meshy-text-to-image, meshy-image-to-image
Full pricing and credit breakdown: reference/credits.md.
Core prompting principles
Meshy docs are sparse on prompting guidance. What they say explicitly:
Text-to-3D prompt limit: 600 characters
Description format: "a monster mask", "a futuristic robot warrior" — noun-phrase style, concrete objects. Works like Imagen/Nano Banana — narrative description beats keyword soup.
Image texturing limitation:"may not work optimally if there are substantial geometry differences" — keep the texture reference image close in form to the actual 3D model.
Multi-image-to-3D:"All images should depict the same object from different angles for best results" — 1 to 4 images, same subject, varied angles.
Workflow patterns
Full text-to-3D with textured output
POST /v2/text-to-3d with mode=preview, prompt, ai_model, optional topology/polycount — returns preview task_id
Poll preview task until SUCCEEDED
POST /v2/text-to-3d with mode=refine, preview_task_id=<id from step 1>, optional enable_pbr, texture_prompt or texture_image_url — returns refine task_id
Poll refine task until SUCCEEDED
Download from model_urls.glb (or whichever format)
Rig + animate a character
Generate or upload a textured humanoid GLB under 300k faces (use remesh first if larger)
POST /v1/rigging with model_url or input_task_id, height_meters (default 1.7)
Rigging result includes free walk + run animations AND a rig_task_id
POST /v1/animations with that rig_task_id and an action_id from reference/animation-library.md
Download result.animation_glb_url
Image → 3D → multi-color print
POST /v1/image-to-3d (textured, preferably meshy-6)
Poll until SUCCEEDED, capture its task_id
POST /v1/print/multi-color with input_task_id=<that id>, optional max_colors (1–16, default 4), max_depth (3–6, default 4)
Backend handlers in backend/handlers/meshy.py. All use the same _poll_meshy_task helper.
When chaining Meshy tasks (e.g. rigging → animate), the rig_task_id must come from a rigging node's output task_id port.
When a 3D node's output goes to the canvas, the GLB is downloaded locally and served via /api/outputs/… — frontend MeshPreview component renders via model-viewer.
Meshy's texture_image_url / image_style_url params accept public URLs or base64 data URIs. Our backend converts local file paths to data URIs via image_to_data_uri.
Known handler limitations are documented in reference/handler-gaps.md. Mention them to the user when they ask for something a Meshy feature supports but our node doesn't currently expose.