Meshy 7 API
Complete API reference for Meshy 7 3D generation models.
Model Variants
| Model | Description |
|---|---|
meshy-v7-text-to-3d | Generate a 3D model from a text description |
meshy-v7-image-to-3d | Generate a 3D model from a single image |
meshy-v7-multiview-to-3d | Generate a 3D model from multiple reference images |
Endpoints
textPOST /api/v1/3d/task GET /api/v1/3d/{task_id}
Meshy 7 Text to 3D
Required Parameters
| Parameter | Type | Description |
|---|---|---|
model_name | string | Must be meshy-v7-text-to-3d |
prompt | string | Text description of the 3D model to generate. 1–600 characters |
Optional Parameters
| Parameter | Type | Description |
|---|---|---|
topology | string | Topology after remeshing: triangle or quad. Defaults to triangle |
target_polycount | integer | Target polygon count after remeshing. Range: 100–300000. Defaults to 30000 |
remesh | boolean | Whether to regenerate the mesh. Defaults to true |
symmetry_mode | string | Symmetry mode: off, auto, or on. Defaults to auto |
pose_mode | string | Humanoid pose: a-pose or t-pose. No pose is specified by default |
pbr | boolean | Whether to generate PBR material textures. Defaults to false |
texture_prompt | string | Text description used to guide texture generation. Maximum 600 characters |
texture_image | string | Reference image URL used to guide texture generation |
seed | integer | Random seed. Defaults to -1, which generates a random result |
Example Request
javascriptconst response = await fetch('https://api.flaq.ai/api/v1/3d/task', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model_name: 'meshy-v7-text-to-3d',
prompt: 'A stylized red panda explorer wearing a small canvas backpack',
topology: 'quad',
remesh: true,
symmetry_mode: 'auto',
pose_mode: 'a-pose',
pbr: true,
texture_prompt: 'Hand-painted fur and weathered canvas with warm autumn colors',
texture_image: 'https://example.com/red-panda-texture.png',
}),
});
const { data } = await response.json();
const taskId = data.task_id;
Meshy 7 Image to 3D
Required Parameters
| Parameter | Type | Description |
|---|---|---|
model_name | string | Must be meshy-v7-image-to-3d |
image_url | string | Publicly accessible URL of the input image |
Optional Parameters
| Parameter | Type | Description |
|---|---|---|
topology | string | Topology after remeshing: triangle or quad. Defaults to triangle |
target_polycount | integer | Target polygon count after remeshing. Range: 100–300000. Defaults to 30000 |
remesh | boolean | Whether to regenerate the mesh. Defaults to true |
symmetry_mode | string | Symmetry mode: off, auto, or on. Defaults to auto |
pose_mode | string | Humanoid pose: a-pose or t-pose. Defaults to a-pose |
pbr | boolean | Whether to generate PBR material textures. Defaults to false |
texture_prompt | string | Text description used to guide texture generation. Maximum 600 characters |
texture_image | string | Reference image URL used to guide texture generation |
Example Request
javascriptconst response = await fetch('https://api.flaq.ai/api/v1/3d/task', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model_name: 'meshy-v7-image-to-3d',
image_url: 'https://example.com/ceramic-lamp.png',
topology: 'triangle',
remesh: true,
symmetry_mode: 'auto',
pose_mode: 'a-pose',
pbr: true,
texture_prompt: 'Glazed blue ceramic with subtle gold details',
texture_image: 'https://example.com/ceramic-reference.png',
}),
});
const { data } = await response.json();
const taskId = data.task_id;
Meshy 7 Multiview to 3D
Required Parameters
| Parameter | Type | Description |
|---|---|---|
model_name | string | Must be meshy-v7-multiview-to-3d |
images | string[] | 1–4 reference image URLs. View order is not required |
Optional Parameters
| Parameter | Type | Description |
|---|---|---|
topology | string | Topology after remeshing: triangle or quad. Defaults to triangle |
target_polycount | integer | Target polygon count after remeshing. Range: 100–300000. Defaults to 30000 |
remesh | boolean | Whether to regenerate the mesh. Defaults to true |
symmetry_mode | string | Symmetry mode: off, auto, or on. Defaults to auto |
pose_mode | string | Humanoid pose: a-pose or t-pose. No pose is specified by default |
pbr | boolean | Whether to generate PBR material textures. Defaults to false |
texture_prompt | string | Text description used to guide texture generation. Maximum 600 characters |
texture_image | string | Reference image URL used to guide texture generation |
Example Request
javascriptconst response = await fetch('https://api.flaq.ai/api/v1/3d/task', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model_name: 'meshy-v7-multiview-to-3d',
images: [
'https://example.com/chair-front.png',
'https://example.com/chair-side.png',
'https://example.com/chair-back.png',
],
topology: 'quad',
remesh: true,
symmetry_mode: 'auto',
pbr: true,
texture_prompt: 'Natural walnut wood and woven cream fabric',
texture_image: 'https://example.com/chair-material-reference.png',
}),
});
const { data } = await response.json();
const taskId = data.task_id;
Response Format
Task Submission
json{
"code": 0,
"message": "success",
"data": {
"task_id": "{task_id}",
"response_url": "https://api.flaq.ai/api/v1/3d/{task_id}",
"task_status": "submitted"
}
}
Query Task Status
javascriptconst response = await fetch('https://api.flaq.ai/api/v1/3d/{task_id}', {
headers: { Authorization: 'Bearer YOUR_API_KEY' },
});
const { data } = await response.json();
console.log(data.task_status);
Completed Task
json{
"code": 0,
"message": "success",
"data": {
"task_id": "{task_id}",
"response_url": "https://api.flaq.ai/api/v1/3d/{task_id}",
"task_status": "succeed",
"task_status_msg": null,
"task_result": {
"credit": 0.2,
"files": [{ "url": "https://example.com/generated-model.glb" }]
}
}
}
Task Status Values
submitted: The task has been submitted.processing: The task is being processed.succeed: The task completed successfully.failed: The task failed.