meshy/remesh, served by Comfy Router from Meshy.
Quick start
Create a key at platform.comfy.org/profile/api-keys and export it asCOMFY_API_KEY. The Python and TypeScript snippets use the Comfy SDKs (pip install comfy-sdk, npm install @comfyorg/sdk); the cURL snippet is the same call over raw HTTP.
Model ID: meshy/remesh
Endpoint: POST https://api.comfy.org/v2/models/meshy/remesh
Schema
Input
boolean
default:"false"
If true, only changes the format of the input model file, ignoring other inputs like topology, resize_height, and target_polycount.
string
The ID of the completed Image to 3D or Text to 3D task you wish to remesh. Required if model_url is not provided.
string
A publicly accessible URL or data URI to a 3D model. Supported formats glb, gltf, obj, fbx, stl. Required if input_task_id is not provided.
string
Position of the origin.Possible values:
bottom, center, “number
default:"0"
Resize the model to a certain height measured in meters. 0 means no resizing.
`glb`, `fbx`, `obj`, `usdz`, `blend`, `stl`[]
default:"[\"glb\"]"
A list of target formats for the remeshed model.
integer
default:"30000"
Specify the target number of polygons in the generated model. Valid range is 100 to 300,000.Range:
100 to 300000string
default:"\"triangle\""
Specify the topology of the generated model.Possible values:
quad, triangleGET /v2/models/meshy/remesh/openapi.json, the same document it validates a call against before the request reaches the provider.
Output
integer
Timestamp of when the task was created, in milliseconds.Format:
int64integer
Timestamp of when the task was finished, in milliseconds. 0 if not finished.Format:
int64string
required
Unique identifier for the task.
object
Downloadable URLs to the remeshed 3D model files.
string
Downloadable URL to the Blender file.
string
Downloadable URL to the FBX file.
string
Downloadable URL to the GLB file.
string
Downloadable URL to the OBJ file.
string
Downloadable URL to the STL file.
string
Downloadable URL to the USDZ file.
integer
The count of preceding tasks. Only meaningful when status is PENDING.
integer
Progress of the task. 0 if not started, 100 when succeeded.Range:
0 to 100integer
Timestamp of when the task was started, in milliseconds. 0 if not started.Format:
int64string
required
Possible values:
SUCCEEDEDobject
Error object that contains the error message if the task failed.
string
Detailed error message.
string
Type of the Remesh task.Possible values:
remeshExamples
Input
Output
Before you ship
The snippets above are the shortest working call. Three things are the same for every model and are documented once on the Comfy Router headers page: send anIdempotency-Key on every paid call and reuse it when you retry, expect the connection to be held up to Router’s 10 minute deadline, and keep X-Comfy-Request-Id from every response. The SDKs do all three for you; the cURL tab does none of them. On failure, X-Comfy-Error-Type names the bucket, and a 422 means the body failed the model’s schema and was never billed.
Headers
Authentication, idempotency, request IDs, error buckets, retry pacing, spend limits.
Quick Start
Typed error handling in Python and TypeScript, reading the 422, walking the catalog.
Limitations
What Router does not do today, and what to use instead.