lowpoly retires Oct 30, 2026. Please switch models before these dates to avoid request errors. See all deprecations

Multi-Image to 3D API

Generate a 3D model from one to four images of the same object, taken from different angles.


POST/openapi/v1/multi-image-to-3d

Create a Multi-Image to 3D task

Creates a Multi-Image to 3D task. The task runs in the background. For how long a task usually takes, see Processing times. For the fields a task has, see The Multi-Image to 3D task object.

Request

POST
/openapi/v1/multi-image-to-3d
# Simple request
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "image_urls": [
      "<your publicly accessible image url or base64-encoded data URI>",
      "<your second publicly accessible image url or base64-encoded data URI>"
    ]
  }'

# With Ultra 2K geometry, PBR texturing, and GLB format
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "image_urls": [
      "<your publicly accessible image url or base64-encoded data URI>",
      "<your second publicly accessible image url or base64-encoded data URI>"
    ],
    "ai_model": "meshy-7.1",
    "geometry_resolution": "2k",
    "should_texture": true,
    "enable_pbr": true,
    "target_formats": ["glb"]
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

Parameters

  • Name
    input_task_id
    Type
    string
    Required
    Description

    Required unless you send image_urls. The ID of a Text to Image or Image to Image task, including a multi-view one. Meshy uses its one to four images as the input. The task must be one you created with the API and have the status SUCCEEDED.

  • Name
    image_urls
    Type
    array
    Required
    Description

    Required unless you send input_task_id. One to four images, each as a public URL or a data URI, such as data:image/jpeg;base64,<your base64-encoded image data>. If you send both, Meshy uses input_task_id.

    Each image must be a .jpg, .jpeg, .png, or .webp file of at most 20 MB. More than four images returns 400.

    For the best results, the images should show the same object from different angles. With meshy-7.1 or latest, Meshy uses the first image as the front view, and the order of the others doesn't matter.

  • Name
    ai_model
    Type
    string
    default latest
    Description

    The AI model that generates the 3D model.

    Available values:

    • latest: Meshy 7.1
    • meshy-7.1
    • meshy-6
    • meshy-6-lite
    • meshy-7: deprecated, send meshy-7.1 instead
  • Name
    geometry_resolution
    Type
    string
    default standard
    Description

    How much geometry detail to generate.

    Available values:

    • standard
    • 2k: runs the Ultra pass at 2048³. Needs meshy-7.1, latest, or the deprecated meshy-7.
  • Name
    ultra_mode
    Type
    boolean
    ⚠ deprecated
    default false
    Description

    Send geometry_resolution instead. ultra_mode: true is the same as geometry_resolution: "2k".

  • Name
    should_texture
    Type
    boolean
    default true
    Description

    Whether to generate textures. true returns a textured model, and false skips the texture step and returns a mesh without textures.

Applies only when should_texture = true
  • Name
    enable_pbr
    Type
    boolean
    default false
    Description

    Whether to also generate metallic, roughness, and normal maps, in addition to the base color. With meshy-6, Meshy also generates an emission map, except at texture_resolution: 8k. The other models don't generate an emission map.

  • Name
    texture_resolution
    Type
    string
    default 2k
    Description

    The size of the base color texture. A larger size captures more surface detail.

    Available values:

    • 2k: 2048×2048
    • 4k: 4096×4096
    • 8k: 8192×8192

    4k and 8k need meshy-6, meshy-7.1, or latest. At 8k, Meshy doesn't generate an emission map.

  • Name
    hd_texture
    Type
    boolean
    ⚠ deprecated
    default false
    Description

    Send texture_resolution instead. hd_texture: true is the same as texture_resolution: "4k". If you send both, Meshy uses texture_resolution.

  • Name
    texture_prompt
    Type
    string
    Description

    Text that guides the texture, up to 800 characters. Longer text returns 400.

  • Name
    texture_image_url
    Type
    string
    Description

    One 2D image that guides the texture, as a public URL or a data URI, such as data:image/jpeg;base64,<your base64-encoded image data>. The image must be a .jpg, .jpeg, .png, or .webp file of at most 20 MB.

    If you send both texture_image_url and texture_prompt, Meshy uses texture_prompt.

  • Name
    texture_image_urls
    Type
    string[]
    Description

    One to four images of the object from different views that guide the texture. Meshy uses the first image as the front view. The order of the other views (left, back, right) doesn't matter.

    Each image follows the same rules as texture_image_url. It's a public URL or a data URI, in .jpg, .jpeg, .png, or .webp format, of at most 20 MB.

    These images guide only the texture and don't depend on image_urls. The two lists can hold different images and different numbers of images.

    texture_image_urls needs meshy-7.1, latest, or the deprecated meshy-7. You can't send it with texture_image_url or texture_prompt.

  • Name
    should_remesh
    Type
    boolean
    default true (meshy-6-lite), false (other models)
    Description

    Whether to remesh the model after generation. For the highest-quality 3D model, set it to false.

Applies only when should_remesh = true
  • Name
    topology
    Type
    string
    default triangle
    Description

    The face type of the remeshed model.

    Available values:

    • quad: a quad-dominant mesh
    • triangle: a decimated triangle mesh
  • Name
    target_polycount
    Type
    integer
    default 30000
    Description

    The number of faces to aim for, from 100 to 300000. The result can differ from the target, depending on the model's geometry. A value outside the range returns 400.

  • Name
    decimation_mode
    Type
    integer
    Description

    Adaptive face count, by level. When you set it, Meshy ignores target_polycount.

    Available values:

    • 1: ultra
    • 2: high
    • 3: medium
    • 4: low
  • Name
    save_pre_remeshed_model
    Type
    boolean
    default false
    Description

    Whether to also save the GLB from before the remesh, returned in model_urls.pre_remeshed_glb.

  • Name
    symmetry_mode
    Type
    string
    ⚠ deprecated
    default auto
    Description

    Leave it out. It doesn't affect the output.

    Available values:

    • off: no symmetry
    • auto: symmetry based on the input geometry
    • on: enforced symmetry
  • Name
    pose_mode
    Type
    string
    default ""
    Description

    The pose of the generated model.

    Available values:

    • a-pose: an A pose
    • t-pose: a T pose
    • "" (empty string): no specific pose
  • Name
    is_a_t_pose
    Type
    boolean
    ⚠ deprecated
    default false
    Description

    Send pose_mode instead. Whether to generate the model in an A or T pose.

  • Name
    image_enhancement
    Type
    boolean
    default true
    Description

    Whether to optimize the input images before generating. false keeps the exact look of the input images, with no style processing. Supported only with meshy-6, meshy-7.1, or latest. Sending it with meshy-6-lite returns 400.

  • Name
    remove_lighting
    Type
    boolean
    default true
    Description

    Whether to remove highlights and shadows from the base color texture. The cleaner result works better under your own lighting. Only meshy-6 uses it. meshy-7, meshy-7.1, and latest accept it and ignore it. At texture_resolution: 8k, Meshy always removes lighting. Sending it with meshy-6-lite returns 400.

  • Name
    moderation
    Type
    boolean
    default false
    Description

    Whether to screen the inputs for harmful content. Meshy screens each input image, texture_image_url or each image in texture_image_urls, and the text in texture_prompt. If Meshy finds harmful content, the request returns 400 and Meshy doesn't create a task.

  • Name
    target_formats
    Type
    string[]
    Description

    The 3D file formats to generate. Meshy generates and returns only the formats you list, which can shorten the task.

    Available values:

    • glb
    • obj
    • fbx
    • stl
    • usdz
    • 3mf

    If you leave it out, Meshy generates every format except 3mf. Meshy generates 3mf only when you list it.

  • Name
    auto_size
    Type
    boolean
    default false
    Description

    Whether to estimate the object's real-world height with AI vision and resize the model to it. Meshy puts the origin at the bottom unless you set origin_at.

Applies only when auto_size = true
  • Name
    origin_at
    Type
    string
    default bottom
    Description

    Where to put the model's origin, bottom or center.

  • Name
    alpha_thumbnail
    Type
    boolean
    default false
    Description

    Whether to also render a preview with a transparent background (RGBA), returned in alpha_thumbnail_url when you get the task. thumbnail_url doesn't change.

  • Name
    multi_view_thumbnails
    Type
    boolean
    default false
    Description

    Whether to also render front, right, back, and left previews, returned in thumbnail_urls when you get the task. thumbnail_url doesn't change and still shows the front view. This adds about 5 seconds to the task.

Returns

The result field of the response holds the ID of the new Multi-Image to 3D task.

Failure modes

  • Name
    400 - Bad Request
    Description

    The request can't run. The error message says which problem it found. For example:

    • Missing parameter: Neither image_urls nor input_task_id was sent.
    • Invalid input task: input_task_id isn't a SUCCEEDED Text to Image or Image to Image task, or a multi-view one.
    • Invalid image count: image_urls or texture_image_urls doesn't hold 1 to 4 images.
    • Invalid image format: An image in image_urls isn't in a supported format.
    • Conflicting texture inputs: texture_image_urls was sent with texture_image_url, with texture_prompt, or with should_texture: false.
    • Unsupported model for multi-view texture: texture_image_urls was sent with meshy-6 or meshy-6-lite.
    • Unreachable URL: Meshy can't download an image in image_urls or texture_image_urls.
    • Image too large: An image in image_urls, texture_image_url, or texture_image_urls is over 20 MB.
    • Unsupported resolution for multi-image input: geometry_resolution is "4k", which this endpoint doesn't support. Use 2k or standard.
    • Unsupported model for image options: image_enhancement or remove_lighting was sent with ai_model: "meshy-6-lite".

    Fix the request, then send it again. See Errors.

  • Name
    401 - Unauthorized
    Description

    The API key is missing or invalid. Check the Authorization header.

  • Name
    402 - Payment Required
    Description

    For example:

    • Insufficient credits: The account doesn't have enough credits for this task, or the account reached a credit limit. Check your credit balance, then retry.
    • Free plan: Creating a task requires a paid plan. Upgrade your plan in your subscription settings, then retry.
  • Name
    404 - Not Found
    Description

    input_task_id doesn't match any of your tasks. Check the task ID, then send the request again.

  • Name
    429 - Too Many Requests
    Description

    You exceeded your rate limit. Wait, then retry. See Rate limits.


GET/openapi/v1/multi-image-to-3d/:id

Get a Multi-Image to 3D task

Returns a Multi-Image to 3D task by its ID.

Request

GET
/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "multi-image-to-3d",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
    "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
    "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
    "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
    "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
    "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 30
}

Parameters

  • Name
    id
    Type
    path
    Description

    The task ID from the create response.

Returns

The Multi-Image to 3D task object.


DELETE/openapi/v1/multi-image-to-3d/:id

Delete a Multi-Image to 3D task

Permanently deletes a Multi-Image to 3D task, including its models and data. You can't undo a delete.

Request

DELETE
/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
  "message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}

Path parameters

  • Name
    id
    Type
    path
    Description

    The ID of the task to delete.

Task status

Deleting a PENDING task refunds the credits it used when you created it.

An IN_PROGRESS task can't be deleted. The request returns 409 Conflict, and the task keeps running. Meshy doesn't refund a task that has started, so deleting it would cost you both the credits and the result. Wait for it to reach SUCCEEDED, FAILED, or CANCELED, then delete it.

Deleting a task in a final status (SUCCEEDED, FAILED, or CANCELED) doesn't refund its credits.

Returns

200 OK when the task is deleted, or 409 Conflict when the task is IN_PROGRESS.


GET/openapi/v1/multi-image-to-3d

List Multi-Image to 3D tasks

Returns a list of your Multi-Image to 3D tasks.

Request

GET
/openapi/v1/multi-image-to-3d
curl https://api.meshy.ai/openapi/v1/multi-image-to-3d?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "multi-image-to-3d",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
      "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
    },
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
    "thumbnail_urls": {
      "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
      "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
      "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
      "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
    },
    "texture_prompt": "",
    "progress": 100,
    "started_at": 1692771667037,
    "created_at": 1692771650657,
    "expires_at": 1692771679037,
    "finished_at": 1692771669037,
    "status": "SUCCEEDED",
    "texture_urls": [
      {
        "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
        "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
        "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
        "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX"
      }
    ],
    "preceding_tasks": 0,
    "task_error": {

      "message": ""

    },

    "consumed_credits": 30
  }
]

Parameters

  • Name
    page_num
    Type
    integer
    default 1
    Description

    The page number to return, starting at 1.

  • Name
    page_size
    Type
    integer
    default 10
    Description

    The number of tasks per page, up to 100.

  • Name
    sort_by
    Type
    string
    Description

    The sort order.

    Available values:

    • +created_at: oldest first
    • -created_at: newest first

Returns

A paginated list of Multi-Image to 3D task objects.


GET/openapi/v1/multi-image-to-3d/:id/stream

Stream a Multi-Image to 3D task

Streams a Multi-Image to 3D task's updates as Server-Sent Events (SSE).

Request

GET
/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream
curl -N https://api.meshy.ai/openapi/v1/multi-image-to-3d/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// These examples are shortened. Each event holds the full task object.
event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "multi-image-to-3d",
  "model_urls": {
  "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
  "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
  "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
  "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
  "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
  "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
  "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
  "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
  "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
  "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 30
}

Parameters

  • Name
    id
    Type
    path
    Description

    The task ID from the create response.

Returns

A stream of Multi-Image to 3D task objects as Server-Sent Events.

Each event holds the full task object, in the same shape the Get endpoint returns. While the task is PENDING or IN_PROGRESS, its result fields don't have values yet.


The Multi-Image to 3D task object

A Multi-Image to 3D task object describes one generation of a 3D model from one to four images of an object. It holds the status, the progress, and the model files when the task succeeds.

Properties

Example Multi-Image to 3D Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "multi-image-to-3d",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***",
    "pre_remeshed_glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/pre_remeshed_model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "thumbnail_urls": {
    "front": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_front.png?Expires=***",
    "right": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_right.png?Expires=***",
    "back": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_back.png?Expires=***",
    "left": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview_left.png?Expires=***"
  },
  "texture_prompt": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 30
}
  • Name
    id
    Type
    string
    Description

    The task ID. Treat it as an opaque string, and don't rely on its format.

  • Name
    type
    Type
    string
    Description

    The task type, always multi-image-to-3d.

  • Name
    model_urls
    Type
    object
    Description

    Download URLs for the generated 3D model, one per file format. A format the task didn't generate has no key, rather than an empty string.

    • Name
      glb
      Type
      string
      Description

      The GLB file.

    • Name
      fbx
      Type
      string
      Description

      The FBX file.

    • Name
      obj
      Type
      string
      Description

      The OBJ file.

    • Name
      usdz
      Type
      string
      Description

      The USDZ file.

    • Name
      mtl
      Type
      string
      Description

      The MTL file, returned with the OBJ file when the model has textures.

    • Name
      stl
      Type
      string
      Description

      The STL file.

    • Name
      3mf
      Type
      string
      Description

      The 3MF file. Present only when target_formats includes 3mf.

    • Name
      pre_remeshed_glb
      Type
      string
      Description

      The GLB file from before the remesh. Present only when you created the task with both should_remesh: true and save_pre_remeshed_model: true.

  • Name
    thumbnail_url
    Type
    string
    Description

    Download URL for a preview image of the model. It's the same as thumbnail_urls.front when that field is present.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Download URL for a version of thumbnail_url with a transparent background (RGBA). Present only when you created the task with alpha_thumbnail: true and Meshy rendered the transparent preview.

  • Name
    thumbnail_urls
    Type
    object
    Description

    Download URLs for previews of the 3D model from four sides. Each is a signed URL to a 512×512 PNG, rendered with the same materials and lighting as thumbnail_url. You can use them to preview the model from several angles without downloading the GLB.

    Present only when you created the task with multi_view_thumbnails: true and the task reached SUCCEEDED. A task created without multi_view_thumbnails: true doesn't have this field.

    • Name
      front
      Type
      string
      Description

      The front view, at 0° around the vertical axis. It matches thumbnail_url.

    • Name
      right
      Type
      string
      Description

      The right view, at 90°.

    • Name
      back
      Type
      string
      Description

      The back view, at 180°.

    • Name
      left
      Type
      string
      Description

      The left view, at 270°.

  • Name
    texture_prompt
    Type
    string
    Description

    The text prompt that guided the texture.

  • Name
    texture_image_urls
    Type
    string[]
    Description

    Download URLs for the texture reference images you created the task with, in the order you sent them. Present only when you created the task with texture_image_urls.

  • Name
    ultra_mode
    Type
    boolean
    ⚠ deprecated
    Description

    Read geometry_resolution instead.

  • Name
    geometry_resolution
    Type
    string
    Description

    The Ultra tier the task ran, which is 2k. A standard task doesn't have this field.

  • Name
    progress
    Type
    integer
    Description

    How much of the task is done, as a percentage. It's 0 until the task starts and 100 when it succeeds.

  • Name
    started_at
    Type
    timestamp
    Description

    Time the task started, in Unix milliseconds. It's 0 until the task starts.

  • Name
    created_at
    Type
    timestamp
    Description

    Time the task was created, in Unix milliseconds.

  • Name
    expires_at
    Type
    timestamp
    Description

    Time the task's results expire, in Unix milliseconds.

  • Name
    finished_at
    Type
    timestamp
    Description

    Time the task finished, in Unix milliseconds. It's 0 until the task finishes.

  • Name
    status
    Type
    string
    Description

    The task status, one of PENDING, IN_PROGRESS, SUCCEEDED, FAILED, or CANCELED.

  • Name
    texture_urls
    Type
    array
    Description

    Download URLs for the texture maps the task generated, as an array of objects. It usually holds one object. Each object has these fields:

    • Name
      base_color
      Type
      string
      Description

      The base color map.

    • Name
      metallic
      Type
      string
      Description

      The metallic map. Not included when you created the task with enable_pbr: false.

    • Name
      normal
      Type
      string
      Description

      The normal map. Not included when you created the task with enable_pbr: false.

    • Name
      roughness
      Type
      string
      Description

      The roughness map. Not included when you created the task with enable_pbr: false.

    • Name
      emission
      Type
      string
      Description

      The emission map. Included only when you created the task with ai_model: meshy-6 and enable_pbr: true, at texture_resolution 2k or 4k.

  • Name
    preceding_tasks
    Type
    integer
    Description

    The number of tasks ahead of this one in the queue. The value is meaningful only while the task is PENDING.

  • Name
    task_error
    Type
    object
    Description

    The error details when the task fails. See Errors.

  • Name
    consumed_credits
    Type
    integer
    Description

    The number of credits the task used. Present when the status is PENDING, IN_PROGRESS, or SUCCEEDED. It's 0 for a FAILED task, because Meshy refunds the credits when a task fails.