Multi-Image to 3D API
Generate a 3D model from one to four images of the same object, taken from different angles.
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
# 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 statusSUCCEEDED.
- 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 asdata:image/jpeg;base64,<your base64-encoded image data>. If you send both, Meshy usesinput_task_id.Each image must be a
.jpg,.jpeg,.png, or.webpfile of at most 20 MB. More than four images returns400.For the best results, the images should show the same object from different angles. With
meshy-7.1orlatest, 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.1meshy-7.1meshy-6meshy-6-litemeshy-7: deprecated, sendmeshy-7.1instead
- Name
- geometry_resolution
- Type
- string
- default standard
- Description
How much geometry detail to generate.
Available values:
standard2k: runs the Ultra pass at 2048³. Needsmeshy-7.1,latest, or the deprecatedmeshy-7.
- Name
- ultra_mode
- Type
- boolean
- ⚠ deprecated
- default false
- Description
Send
geometry_resolutioninstead.ultra_mode: trueis the same asgeometry_resolution: "2k".
- Name
- should_texture
- Type
- boolean
- default true
- Description
Whether to generate textures.
truereturns a textured model, andfalseskips the texture step and returns a mesh without textures.
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 attexture_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×20484k: 4096×40968k: 8192×8192
4kand8kneedmeshy-6,meshy-7.1, orlatest. At8k, Meshy doesn't generate an emission map.
- Name
- hd_texture
- Type
- boolean
- ⚠ deprecated
- default false
- Description
Send
texture_resolutioninstead.hd_texture: trueis the same astexture_resolution: "4k". If you send both, Meshy usestexture_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.webpfile of at most 20 MB.If you send both
texture_image_urlandtexture_prompt, Meshy usestexture_prompt.The texture might not come out well when the shape in the image differs a lot from the 3D model.
- 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.webpformat, 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_urlsneedsmeshy-7.1,latest, or the deprecatedmeshy-7. You can't send it withtexture_image_urlortexture_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.
should_remesh = true- Name
- topology
- Type
- string
- default triangle
- Description
The face type of the remeshed model.
Available values:
quad: a quad-dominant meshtriangle: a decimated triangle mesh
- Name
- target_polycount
- Type
- integer
- default 30000
- Description
The number of faces to aim for, from
100to300000. The result can differ from the target, depending on the model's geometry. A value outside the range returns400.
- Name
- decimation_mode
- Type
- integer
- Description
Adaptive face count, by level. When you set it, Meshy ignores
target_polycount.Available values:
1: ultra2: high3: medium4: 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 symmetryauto: symmetry based on the input geometryon: enforced symmetry
- Name
- pose_mode
- Type
- string
- default ""
- Description
The pose of the generated model.
Available values:
a-pose: an A poset-pose: a T pose""(empty string): no specific pose
- Name
- is_a_t_pose
- Type
- boolean
- ⚠ deprecated
- default false
- Description
Send
pose_modeinstead. 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.
falsekeeps the exact look of the input images, with no style processing. Supported only withmeshy-6,meshy-7.1, orlatest. Sending it withmeshy-6-litereturns400.
- 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-6uses it.meshy-7,meshy-7.1, andlatestaccept it and ignore it. Attexture_resolution: 8k, Meshy always removes lighting. Sending it withmeshy-6-litereturns400.
- Name
- moderation
- Type
- boolean
- default false
- Description
Whether to screen the inputs for harmful content. Meshy screens each input image,
texture_image_urlor each image intexture_image_urls, and the text intexture_prompt. If Meshy finds harmful content, the request returns400and 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:
glbobjfbxstlusdz3mf
If you leave it out, Meshy generates every format except
3mf. Meshy generates3mfonly 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.
auto_size = true- Name
- origin_at
- Type
- string
- default bottom
- Description
Where to put the model's origin,
bottomorcenter.
- Name
- alpha_thumbnail
- Type
- boolean
- default false
- Description
Whether to also render a preview with a transparent background (RGBA), returned in
alpha_thumbnail_urlwhen you get the task.thumbnail_urldoesn't change.
- Name
- multi_view_thumbnails
- Type
- boolean
- default false
- Description
Whether to also render front, right, back, and left previews, returned in
thumbnail_urlswhen you get the task.thumbnail_urldoesn'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_urlsnorinput_task_idwas sent. - Invalid input task:
input_task_idisn't aSUCCEEDEDText to Image or Image to Image task, or a multi-view one. - Invalid image count:
image_urlsortexture_image_urlsdoesn't hold 1 to 4 images. - Invalid image format: An image in
image_urlsisn't in a supported format. - Conflicting texture inputs:
texture_image_urlswas sent withtexture_image_url, withtexture_prompt, or withshould_texture: false. - Unsupported model for multi-view texture:
texture_image_urlswas sent withmeshy-6ormeshy-6-lite. - Unreachable URL: Meshy can't download an image in
image_urlsortexture_image_urls. - Image too large: An image in
image_urls,texture_image_url, ortexture_image_urlsis over 20 MB. - Unsupported resolution for multi-image input:
geometry_resolutionis"4k", which this endpoint doesn't support. Use2korstandard. - Unsupported model for image options:
image_enhancementorremove_lightingwas sent withai_model: "meshy-6-lite".
Fix the request, then send it again. See Errors.
- Missing parameter: Neither
- Name
401 - Unauthorized- Description
The API key is missing or invalid. Check the
Authorizationheader.
- 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_iddoesn'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 a Multi-Image to 3D task
Returns a Multi-Image to 3D task by its ID.
Request
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
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
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.
List Multi-Image to 3D tasks
Returns a list of your Multi-Image to 3D tasks.
Request
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.
Stream a Multi-Image to 3D task
Streams a Multi-Image to 3D task's updates as Server-Sent Events (SSE).
Request
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_formatsincludes3mf.
- 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: trueandsave_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.frontwhen that field is present.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Download URL for a version of
thumbnail_urlwith a transparent background (RGBA). Present only when you created the task withalpha_thumbnail: trueand 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: trueand the task reachedSUCCEEDED. A task created withoutmulti_view_thumbnails: truedoesn'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_resolutioninstead.
- Name
- geometry_resolution
- Type
- string
- Description
The Ultra tier the task ran, which is
2k. Astandardtask doesn't have this field.
- Name
- progress
- Type
- integer
- Description
How much of the task is done, as a percentage. It's
0until the task starts and100when it succeeds.
- Name
- started_at
- Type
- timestamp
- Description
Time the task started, in Unix milliseconds. It's
0until 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
0until the task finishes.
- Name
- status
- Type
- string
- Description
The task status, one of
PENDING,IN_PROGRESS,SUCCEEDED,FAILED, orCANCELED.
- 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-6andenable_pbr: true, attexture_resolution2kor4k.
- 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, orSUCCEEDED. It's0for aFAILEDtask, because Meshy refunds the credits when a task fails.