# Meshy 6 API

> Provider: **Meshy**
> Source: https://www.pixazo.ai/models/meshy-3d

Meshy 6 — production-ready 3D model generation from text prompts or reference images.

## Meshy 6

### Text to Image ( 3D Models - Text to 3D)

## Base URL

```
https://gateway.pixazo.ai/meshy-6-text-to-3d/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Meshy 6 (Text to 3D) generate request - Meshy 6 (Text to 3D)

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/meshy-6-text-to-3d/v1/meshy-6-text-to-3d-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork",
  "mode": "full",
  "topology": "triangle",
  "target_polycount": 30000,
  "should_remesh": true,
  "symmetry_mode": "auto",
  "rigging_height_meters": 1.7,
  "animation_action_id": 1001,
  "enable_safety_checker": true
}
```

```
import requests

url = "https://gateway.pixazo.ai/meshy-6-text-to-3d/v1/meshy-6-text-to-3d-request"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork",
    "mode": "full",
    "topology": "triangle",
    "target_polycount": 30000,
    "should_remesh": true,
    "symmetry_mode": "auto",
    "rigging_height_meters": 1.7,
    "animation_action_id": 1001,
    "enable_safety_checker": true
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
```

```
const url = "https://gateway.pixazo.ai/meshy-6-text-to-3d/v1/meshy-6-text-to-3d-request";

const headers = {
  "Content-Type": "application/json",
  "Cache-Control": "no-cache",
  "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
};

const data = {
  prompt: "A rustic antique wooden treasure chest with iron bands and ornate metalwork",
  mode: "full",
  topology: "triangle",
  target_polycount: 30000,
  should_remesh: true,
  symmetry_mode: "auto",
  rigging_height_meters: 1.7,
  animation_action_id: 1001,
  enable_safety_checker: true
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/meshy-6-text-to-3d/v1/meshy-6-text-to-3d-request" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork",
    "mode": "full",
    "topology": "triangle",
    "target_polycount": 30000,
    "should_remesh": true,
    "symmetry_mode": "auto",
    "rigging_height_meters": 1.7,
    "animation_action_id": 1001,
    "enable_safety_checker": true
  }'
```

## Output

```
{
  "request_id": "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=meshy-6-text-to-3d&operation=meshy-6-text-to-3d-request)

## Request Parameters - Meshy 6 (Text to 3D) generate request

Field

Type

Required

Default

Description

prompt

string

Yes

—

Description of the 3D object. Maximum 600 characters.

mode

enum

No

"full"

Generation mode. Allowed: preview, full. Preview returns untextured geometry only (20 credits); full returns fully textured model with optional texture guidance (30 credits).

seed

integer

No

—

Seed for reproducible results.

topology

enum

No

"triangle"

Mesh topology type. Allowed: quad, triangle.

target\_polycount

integer

No

30000

Target number of polygons in the output mesh.

should\_remesh

boolean

No

true

Enable remesh phase. When false, returns unprocessed triangular mesh without optimization.

symmetry\_mode

enum

No

"auto"

Symmetry enforcement mode. Allowed: off, auto, on.

enable\_pbr

boolean

No

—

Generate PBR maps (metallic, roughness, normal). Only applicable in full mode.

pose\_mode

enum

No

""

Character pose for rigging. Allowed: a-pose, t-pose, or empty.

enable\_prompt\_expansion

boolean

No

false

Use an LLM to expand the prompt with additional details while maintaining original meaning.

texture\_prompt

string

No

—

Additional prompt to guide texturing. Only used in full mode.

texture\_image\_url

string

No

—

URL to a 2D image used to guide texturing. Only used in full mode.

enable\_rigging

boolean

No

false

Auto-rig the generated model as a humanoid character.

rigging\_height\_meters

float

No

1.7

Height of the rigged character in meters. Only used when enable\_rigging is true.

enable\_animation

boolean

No

false

Apply a predefined animation preset. Requires enable\_rigging to be true.

animation\_action\_id

integer

No

1001

Animation preset ID from Meshy library. See https://docs.meshy.ai/en/api/animation-library.

enable\_safety\_checker

boolean

No

true

Toggle input safety check to filter inappropriate prompts.

## Minimum Request

```
{
  "prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork"
}
```

## Full Request (all options)

```
{
  "prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork",
  "mode": "full",
  "seed": 12345,
  "topology": "triangle",
  "target_polycount": 30000,
  "should_remesh": true,
  "symmetry_mode": "auto",
  "enable_pbr": true,
  "pose_mode": "t-pose",
  "enable_prompt_expansion": false,
  "texture_prompt": "Ancient wood with weathered patina and brass fittings",
  "texture_image_url": "https://example.com/texture.jpg",
  "enable_rigging": true,
  "rigging_height_meters": 1.7,
  "enable_animation": true,
  "animation_action_id": 1001,
  "enable_safety_checker": true
}
```

## Response

```
{
  "request_id": "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response Fields - Meshy 6 (Text to 3D) generate request

Field

Type

Description

request\_id

string

Unique identifier to track the job status

status

string

Current status of the job (QUEUED, PROCESSING, COMPLETED, FAILED, ERROR)

polling\_url

string

URL to use for checking the status of the generated model

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for Meshy 6 (Text to 3D) generate request.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Common Error Responses

### 400 Validation Error

```
{
  "error": "Invalid parameter: mode must be one of 'preview', 'full'"
}
```

### 404 Not Found

```
{
  "error": "Invalid request_id: meshy-6-text-to-3d_invalid_id"
}
```

## Status Workflow

Status values and lifecycle for Meshy 6 (Text to 3D) requests.

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field

ERROR

System error — not charged

### Status Flow

```
Submitted → QUEUED → PROCESSING → COMPLETED/FAILED/ERROR
```

### Typical Workflow

1.  Submit request to /meshy-6-text-to-3d-request
2.  Receive request\_id in response
3.  Poll /v2/requests/status/{request\_id} every 2-3 seconds
4.  When status=COMPLETED, use model\_glb and other URLs from response
5.  Handle FAILED or ERROR states with appropriate retry or error handling

## Meshy 6 (Text to 3D) check status - Meshy 6 (Text to 3D)

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/meshy-6-text-to-3d/v1/meshy-6-text-to-3d-request-result
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "request_id": "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

```
import requests

url = "https://gateway.pixazo.ai/meshy-6-text-to-3d/v1/meshy-6-text-to-3d-request-result"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "request_id": "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
```

```
const url = "https://gateway.pixazo.ai/meshy-6-text-to-3d/v1/meshy-6-text-to-3d-request-result";

const headers = {
  "Content-Type": "application/json",
  "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
};

const data = {
  request_id: "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/meshy-6-text-to-3d/v1/meshy-6-text-to-3d-request-result" \
  -H "Content-Type: application/json" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "request_id": "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }'
```

## Output

```
{
  "model_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.glb",
  "thumbnail": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/thumbnail.jpg",
  "model_urls": {
    "glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.glb",
    "fbx": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.fbx",
    "obj": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.obj",
    "usdz": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.usdz",
    "blend": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.blend",
    "stl": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.stl"
  },
  "texture_urls": {
    "base_color": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/base_color.jpg",
    "metallic": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/metallic.jpg",
    "roughness": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/roughness.jpg",
    "normal": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/normal.jpg"
  },
  "seed": 12345,
  "prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork",
  "actual_prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork, weathered with age, displaying intricate carvings and tarnished brass fittings"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=meshy-6-text-to-3d&operation=meshy-6-text-to-3d-request-result)

## Request Parameters - Meshy 6 (Text to 3D) check status

Field

Type

Required

Default

Description

request\_id

string

Yes

—

Unique identifier returned from the initial request submission

## Minimum Request

```
{
  "request_id": "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Full Request (all options)

```
{
  "request_id": "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response

```
{
  "request_id": "meshy-6-text-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "meshy-6-text-to-3d",
  "error": null,
  "output": {
    "model_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.glb",
    "thumbnail": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/thumbnail.jpg",
    "model_urls": {
      "glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.glb",
      "fbx": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.fbx",
      "obj": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.obj",
      "usdz": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.usdz",
      "blend": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.blend",
      "stl": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/output.stl"
    },
    "texture_urls": {
      "base_color": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/base_color.jpg",
      "metallic": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/metallic.jpg",
      "roughness": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/roughness.jpg",
      "normal": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/normal.jpg"
    },
    "seed": 12345,
    "prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork",
    "actual_prompt": "A rustic antique wooden treasure chest with iron bands and ornate metalwork, weathered with age, displaying intricate carvings and tarnished brass fittings"
  },
  "rigged_character_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/rigged_character.glb",
  "rigged_character_fbx": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/rigged_character.fbx",
  "basic_animations": [
    {
      "name": "idle",
      "url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-text-to-3d_019dxxxx/animation_idle.glb"
    }
  ],
  "rig_task_id": "rig_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:15.000Z",
  "completed_at": "2026-03-31T10:00:15.000Z"
}
```

## Response Fields - Meshy 6 (Text to 3D) check status

Field

Type

Description

request\_id

string

Unique identifier of the request

status

string

Current status of the job (QUEUED, PROCESSING, COMPLETED, FAILED, ERROR)

model\_id

string

ID of the model used for generation

error

null|string

Error description if status is FAILED, otherwise null

output.model\_glb

string

URL to the GLB model file

output.thumbnail

string

URL to the model thumbnail image

output.model\_urls

object

Dictionary of model file formats and their URLs (glb, fbx, obj, usdz, blend, stl)

output.texture\_urls

object

Dictionary of texture map URLs (base\_color, metallic, roughness, normal)

output.seed

integer

Seed used for the generation

output.prompt

string

Original text prompt

output.actual\_prompt

string

Prompt after LLM expansion (if enable\_prompt\_expansion was used)

rigged\_character\_glb

string

URL to the rigged character GLB file (if enable\_rigging was true)

rigged\_character\_fbx

string

URL to the rigged character FBX file (if enable\_rigging was true)

basic\_animations

array

List of animation files with name and URL

rig\_task\_id

string

Internal identifier for the rigging task (if enable\_rigging was true)

created\_at

string

ISO timestamp when the request was created

updated\_at

string

ISO timestamp when the request was last updated

completed\_at

string

ISO timestamp when the request was completed

## Request Headers

Header

Value

Content-Type

application/json

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for Meshy 6 (Text to 3D) check status.

Code

Meaning

200

Success

400

Bad Request (invalid request\_id)

401

Unauthorized

403

Forbidden

404

Not Found (request\_id not found)

429

Too Many Requests

500

Internal Server Error

## Notes & Tips

1.  Poll the status endpoint every 2–3 seconds until status is COMPLETED, FAILED, or ERROR.
2.  Use enable\_prompt\_expansion to enhance vague prompts with semantic detail.
3.  For character models, combine enable\_rigging, pose\_mode, and enable\_animation for ready-to-animate assets.
4.  Use texture\_image\_url for precise texture control when text prompts are insufficient.
5.  Set target\_polycount appropriately: lower values (5k–15k) for web/mobile, higher (30k–100k) for high-end rendering.
6.  Always validate actual\_prompt in COMPLETED responses to confirm prompt expansion behavior.
7.  Implement retry logic for transient ERROR or FAILED states.
8.  Predictive generation time: 15–60 seconds for preview mode, 30–120 seconds for full mode.
9.  Texture guidance works best with high-resolution source images (1024x1024+).
10.  Enable safety\_checker is recommended for public applications to prevent inappropriate generation.

### Image to Image ( 3D Models - Image to 3D)

## Base URL

```
https://gateway.pixazo.ai/meshy-6-image-to-3d/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Meshy 6 (Image to 3D) generate request - Meshy 6 (Image to 3D)

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/meshy-6-image-to-3d/v1/meshy-6-image-to-3d-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "image_url": "https://v3b.fal.media/files/b/zebra/3osHJDI8IZ2wl6sGtEUeB_image.png"
}
```

```
import requests

url = "https://gateway.pixazo.ai/meshy-6-image-to-3d/v1/meshy-6-image-to-3d-request"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "image_url": "https://v3b.fal.media/files/b/zebra/3osHJDI8IZ2wl6sGtEUeB_image.png"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/meshy-6-image-to-3d/v1/meshy-6-image-to-3d-request';

const data = {
  image_url: 'https://v3b.fal.media/files/b/zebra/3osHJDI8IZ2wl6sGtEUeB_image.png'
};

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Cache-Control': 'no-cache',
    'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
  },
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/meshy-6-image-to-3d/v1/meshy-6-image-to-3d-request" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "image_url": "https://v3b.fal.media/files/b/zebra/3osHJDI8IZ2wl6sGtEUeB_image.png"
  }'
```

## Output

```
{
  "model_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.glb",
  "thumbnail": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/thumbnail.jpg",
  "model_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.glb",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.fbx",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.obj"
  ]
}
```

[Try Now](https://api.pixazo.ai/api-details#api=meshy-6-image-to-3d&operation=meshy-6-image-to-3d-request)

## Request Parameters - Meshy 6 (Image to 3D) generate request

Field

Type

Required

Default

Description

image\_url

string

Yes

—

URL or base64 data URI of the input image. Supports JPG, JPEG, PNG, AVIF, HEIF formats.

topology

enum

No

triangle

Surface topology type. Allowed: quad, triangle. Quad for smooth surfaces, Triangle for detailed geometry.

target\_polycount

integer

No

30000

Target number of polygons in the output mesh.

symmetry\_mode

enum

No

auto

Symmetry enforcement mode. Allowed: off, auto, on.

should\_remesh

boolean

No

true

Enable the remeshing phase to optimize mesh structure.

should\_texture

boolean

No

true

Generate texture maps for the 3D model.

enable\_pbr

boolean

No

—

Generate PBR maps (metallic, roughness, normal) in addition to base color texture.

pose\_mode

enum

No

Enforce a specific pose. Allowed: a-pose, t-pose, or empty for no specific pose.

texture\_prompt

string

No

—

Text prompt to guide the texturing process.

texture\_image\_url

string

No

—

URL of a 2D reference image to guide the texturing process.

enable\_rigging

boolean

No

—

Auto-rig the model as a humanoid character with basic walking and running animations. Best for characters with clearly defined limbs.

rigging\_height\_meters

float

No

1.7

Approximate height of the character in meters. Used only when enable\_rigging is true.

enable\_animation

boolean

No

—

Apply a predefined animation preset. Requires enable\_rigging to be true.

animation\_action\_id

integer

No

1001

Animation preset ID from Meshy’s library of 500+ presets. See https://docs.meshy.ai/en/api/animation-library.

enable\_safety\_checker

boolean

No

true

Enable input safety filtering to block inappropriate content.

## Minimum Request

```
{
  "image_url": "https://v3b.fal.media/files/b/zebra/3osHJDI8IZ2wl6sGtEUeB_image.png"
}
```

## Full Request (all options)

```
{
  "image_url": "https://v3b.fal.media/files/b/zebra/3osHJDI8IZ2wl6sGtEUeB_image.png",
  "topology": "triangle",
  "target_polycount": 30000,
  "symmetry_mode": "auto",
  "should_remesh": true,
  "should_texture": true,
  "enable_pbr": false,
  "pose_mode": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "enable_rigging": false,
  "rigging_height_meters": 1.7,
  "enable_animation": false,
  "animation_action_id": 1001,
  "enable_safety_checker": true
}
```

## Response

```
{
  "model_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.glb",
  "thumbnail": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/thumbnail.jpg",
  "model_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.glb",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.fbx",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.obj",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.usdz",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.blend",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.stl"
  ],
  "texture_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/base_color.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/metallic.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/roughness.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/normal.png"
  ],
  "seed": 12345,
  "rigged_character_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/rigged_character.glb",
  "basic_animations": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/walk.anim",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/run.anim"
  ],
  "rig_task_id": "rig_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response Fields - Meshy 6 (Image to 3D) generate request

Field

Type

Description

model\_glb

string

URL to the GLB 3D model file.

thumbnail

string

URL to the generated thumbnail image.

model\_urls

array

Array of URLs for all exported 3D formats: GLB, FBX, OBJ, USDZ, BLEND, STL.

texture\_urls

array

Array of URLs for texture maps: base\_color, metallic, roughness, normal.

seed

integer

Random seed used for model generation.

rigged\_character\_glb

string

URL to rigged character model in GLB format (only when enable\_rigging is true).

basic\_animations

array

Array of animation file URLs (only when enable\_rigging and enable\_animation are true).

rig\_task\_id

string

Unique identifier for the rigging task (only when enable\_rigging is true).

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for Meshy 6 (Image to 3D) generate request.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Error Responses

### 400 Validation Error

```
{
  "error": "Invalid input",
  "details": [
    "Field 'image_url' is required",
    "Field 'topology' must be one of: quad, triangle"
  ]
}
```

### 404 Not Found

```
{
  "error": "Resource not found",
  "message": "The requested operation does not exist or is unavailable."
}
```

## Status Workflow

The API is asynchronous. Submit a request and poll the result endpoint using the returned request\_id.

### Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field

ERROR

System error — not charged

### Status Flow

```
Submitted → QUEUED → PROCESSING → COMPLETED/FAILED/ERROR
```

### Typical Workflow

1.  Submit request via POST /meshy-6-image-to-3d-request
2.  Receive response containing request\_id
3.  Poll /v2/requests/status/{request\_id} every 5-10 seconds
4.  When status is COMPLETED, use the output URLs to download your files

## Meshy 6 (Image to 3D) check status - Meshy 6 (Image to 3D)

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/v2/requests/status/your-request-id
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
```

```
import requests

url = "https://gateway.pixazo.ai/v2/requests/status/your-request-id"
headers = {
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}

response = requests.post(url, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/v2/requests/status/your-request-id';

fetch(url, {
  method: 'POST',
  headers: {
    'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
  }
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/v2/requests/status/your-request-id" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"
```

## Output

```
{
  "model_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.glb",
  "thumbnail": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/thumbnail.jpg",
  "model_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.glb",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.fbx",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.obj"
  ]
}
```

[Try Now](https://api.pixazo.ai/api-details#api=meshy-6-image-to-3d&operation=meshy-6-image-to-3d-request-result)

## Request Parameters - Meshy 6 (Image to 3D) check status

Field

Type

Required

Default

Description

request\_id

string

Yes

—

Unique identifier of the request to check. Retrieved from the initial submission response.

## Minimum Request

```
{
  "request_id": "meshy-6-image-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Full Request (all options)

```
{
  "request_id": "meshy-6-image-to-3d_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response

```
{
  "model_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.glb",
  "thumbnail": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/thumbnail.jpg",
  "model_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.glb",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.fbx",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.obj",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.usdz",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.blend",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/output.stl"
  ],
  "texture_urls": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/base_color.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/metallic.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/roughness.png",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/normal.png"
  ],
  "seed": 12345,
  "rigged_character_glb": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/rigged_character.glb",
  "basic_animations": [
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/walk.anim",
    "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/meshy-6-image-to-3d_019dxxxx/run.anim"
  ],
  "rig_task_id": "rig_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response Fields - Meshy 6 (Image to 3D) check status

Field

Type

Description

model\_glb

string

URL to the GLB 3D model file.

thumbnail

string

URL to the generated thumbnail image.

model\_urls

array

Array of URLs for all exported 3D formats: GLB, FBX, OBJ, USDZ, BLEND, STL.

texture\_urls

array

Array of URLs for texture maps: base\_color, metallic, roughness, normal.

seed

integer

Random seed used for model generation.

rigged\_character\_glb

string

URL to rigged character model in GLB format (only when enable\_rigging is true).

basic\_animations

array

Array of animation file URLs (only when enable\_rigging and enable\_animation are true).

rig\_task\_id

string

Unique identifier for the rigging task (only when enable\_rigging is true).

## Request Headers

Header

Value

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for Meshy 6 (Image to 3D) check status.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

429

Too Many Requests

500

Internal Server Error

## Notes & Tips

-   Processing time is typically 5–10 minutes.
-   For best results, use clear, high-contrast images with well-defined edges and minimal background clutter.
-   The API returns multi-format outputs: GLB, FBX, OBJ, USDZ, BLEND, and STL files.
-   Enable rigging only for humanoid characters with clearly defined limbs.
-   Texture quality depends heavily on input image clarity and lighting conditions.
-   Enable safety checker to prevent generation of inappropriate content (recommended).
