meshy-5 10 Eki 2026 tarihinde kaldırılıyor. lowpoly 30 Eki 2026 tarihinde kaldırılıyor. İstek hatalarını önlemek için bu tarihlerden önce model değiştirin.

Task Lifecycle

How a task moves from request to result, how long it usually takes, and how long your code should wait for it.


How a Task Runs

A create request returns a task ID without waiting for the task to run. The task then runs in the background, and you follow it in one of three ways: poll its GET endpoint, open its stream endpoint, or receive a webhook.

A create request starts a task in PENDING. A worker picks it up and it moves to IN_PROGRESS, where it spends most of its time. It ends in SUCCEEDED or FAILED, and a final status never changes.
Create request
PENDING
Waiting in the queue
IN_PROGRESS
Generating the result
SUCCEEDED
Download the result
FAILED
Credits refunded

The task records each step in its created_at, started_at and finished_at fields.

StatusWhat your code should do
PENDINGKeep waiting.
IN_PROGRESSTrack progress: the percentage of the work that's done, from 0 to 100.
SUCCEEDEDDownload the result. Files are kept for a limited time (see Asset Retention).
FAILEDRead task_error, then fix the input or create a new task (see Errors).
CANCELEDStop waiting. The task won't produce a result. Only Creative Lab tasks use this status.

SUCCEEDED, FAILED and CANCELED are final: once a task reaches one of them, its status never changes again.

From your code, it looks like this:

Create a task, then poll it until it finishes.
  1. Request: POST/image-to-3d

  2. Response: 202{ "result": "<task_id>" }task created

  3. Repeat every few seconds
    1. Request: GET/image-to-3d/<task_id>

    2. Response: 200{ "status": "IN_PROGRESS","progress": 45 }Retry-After: 5

  4. Request: GET/image-to-3d/<task_id>

  5. Response: 200{ "status": "SUCCEEDED","model_urls": { "glb": "…" } }

If your app stops waiting, the task keeps running. GET it later with the same task ID.

Processing Times

Median times on production API traffic in September 2026.

A time runs from task creation to the final status. Nearly all of it is processing, because a task usually stays in PENDING for only a few seconds. When the queue is busy, tasks can wait longer before they start, and tasks on plans with a higher priority usually start sooner.

Times under 2 minutes are in seconds (s), longer times in minutes (min). A dash (—) means the option is not supported.

3D Generation

APIConfigurationmeshy-7.1 (latest)meshy-6meshy-6-litemeshy-t2
Text to 3D (Preview)Mesh only75 s90 s45 s10 s
Image to 3DMesh only75 s90 s40 s4 s
Mesh with 2K textures2 min3 min75 s60 s
Mesh with 4K textures2.5 min3.5 min—80 s
Mesh with 8K textures3.5 min4 min—2.5 min
Multi-Image to 3DMesh only65 s2 min30 s—
Mesh with 2K textures2.5 min3.5 min85 s—
Mesh with 4K textures3 min4 min——
Mesh with 8K textures3.5 min4.5 min——

For Image to 3D and Multi-Image to 3D, "Mesh only" means should_texture: false.

  • PBR maps (enable_pbr) add 30 to 60 seconds.
  • Ultra geometry (geometry_resolution: "2k" or "4k") adds up to 1 minute.
  • With the same settings, more complex input images take longer.

Texturing

APITexture resolutionTypical time
Text to 3D (Refine)2K or 4K80 s
8K3.5 min
Retexture2K55 s
4K90 s
8K2.5 min

Image Generation

APInano-banananano-banana-2nano-banana-proGPT Image models
Text to Image20 s15 s25 s20 to 35 s
Image to Image40 s20 s30 s20 to 40 s

Rigging and Animation

APIConfigurationTypical time
Auto-RiggingAutomatic rigging40 s
AnimationPer request15 s
Text to Motionprime mode15 s
swift mode10 s

Post-processing

APITypical time
Remesh2 min
UV Unwrap35 s
Convert7 s
Resize15 s

3D Printing


How Long to Wait

The task keeps running even if your code stops waiting. If your request times out, your connection drops or your stream closes, the task does not fail and is not canceled.

  • Wait at least 60 minutes, counted from the task's created_at, before you stop waiting. If you stop earlier, you may miss a task that succeeds later. This happens mostly during busy periods.
  • Keep the task ID. You can fetch the task again at any time. If it still isn't final after 60 minutes, check it again later, and contact support if it stays that way.
  • Only FAILED means the task failed. Failed tasks are refunded automatically.
SettingRecommended value
Create request (POST) timeout60 seconds
Status request (GET) timeout30 seconds
Poll intervalThe Retry-After header, or 5 seconds if it's missing. Polls count toward your rate limit.
Failed status request (timeout, 429 or 5xx)Try again at the next poll. It doesn't mean the task failed.
Overall wait per taskAt least 60 minutes from created_at. Don't restart this count when you reconnect a stream.
StreamA stream can close before the task finishes. If it closes without a final status, reconnect or switch to polling.

For many tasks at once, use webhooks instead of polling each one. If a task's final event hasn't arrived after about twice its typical time, check the task with its GET endpoint.