# Meshy V7 Image to 3D API

> Ag tionndadh aon ìomhaigh gu mogal 3D le roghainn geoimeatraidh 2k, PBR roghainneil, rigging agus beòthalachd

Cruthaichidh e modail 3D bho aon ìomhaigh ann an `image_url` (JPG, PNG, AVIF no HEIF). Taghaidh `model_type` standard, lowpoly no smart-topology, agus gabhaidh `target_polycount` ri 100 gu 300000. Tha `geometry_resolution` a’ tabhann standard no 2k. Faodar inneach a chur dheth le `should_texture`, agus tha mapaichean PBR, modh suidheachaidh, rigging humanoid agus ro-shuidheachadh beòthachaidh roghainneil.

- Model id: `meshy/v7/image-to-3d`
- Made by: Meshy
- Category: Image to 3D
- Output: 3d
- Price per run: from $0.80 / run (cheapest run $0.80 (800 API credits))
- Run: `POST https://api.doitong.com/v1/run/meshy/v7/image-to-3d`
- Quote: `POST https://api.doitong.com/v1/quote/meshy/v7/image-to-3d`
- Docs page: https://doitong.com/gd/developers/models/meshy/v7/image-to-3d

## Pricing

Price: **from $0.80 / run** (the lowest tier; the quote prices your exact input). Price per run: the input files are measured before the run (length, resolution, frame rate). The quote measures the same files and is exactly what the run charges.

The full example input below costs $1.20 = 1200 API credits (1 run × $1.20).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). `POST https://api.doitong.com/v1/quote/meshy/v7/image-to-3d` with the same JSON body returns the exact price for that input; the quote is exactly what a run charges. Invalid input is never charged and failed or canceled requests are refunded automatically.

## Input parameters

Send either the canonical name or the native field name (not both). Canonical names are the same across models.

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `image_url` | `image` | string (image URL) | yes |  |  | Thoir seachad an ìomhaigh thùsail airson cruthachadh 3D tro URL no URI dàta base64, a’ cleachdadh .jpg, .jpeg, .png, AVIF, no HEIF. Bidh tionndadh fèin-obrachail a’ làimhseachadh in-churan AVIF agus HEIF. |
| `model_type` |  | enum (string) | no | `standard` | `standard`, `lowpoly`, `smart-topology` | Modh mogail 3D: tagh 'lowpoly' airson às-chur low-poly a tha air a dhealbhadh airson poileigonaichean nas glaine; sa mhodh seo bidh Meshy a’ seachnadh topology, target_polycount, agus should_remesh. Airson às-chur àbhaisteach àrd-mhionaideach tagh 'standard', no tagh 'smart-topology' gus Meshy-T2 a chleachdadh agus pàirtean glan fhaighinn a chaidh an gineadh air leth bhon toiseach. |
| `topology` |  | enum (string) | no | `triangle` | `quad`, `triangle` | Roghainn topology a’ mhodail eadar Triangle airson mion-fhiosrachadh geoimeatrach agus Quad airson rèidheachd uachdair. |
| `target_polycount` |  | integer | no | `30000` | 100 – 300,000 | Targaid àireamh nam poileigonaichean, cuibhrichte aig 15,000 nuair a tha model_type 'smart-topology'. Ma thèid an targaid fhàgail air falbh sa mhodh sin, thèid bun-roghainn Meshy nas ìsle de 4,000 a thaghadh. |
| `symmetry_mode` |  | enum (string) | no | `auto` | `off`, `auto`, `on` | Tagh a bheil gineadh a’ mhodail a’ sparradh co-chothromachd le On, ga fàgail às le Off, no a’ co-dhùnadh gu fèin-obrachail le Auto. |
| `should_remesh` |  | boolean | no | `true` |  | A’ comasachadh no a’ cur à comas ìre an ath-mhogaill. |
| `should_texture` |  | boolean | no | `true` |  | A’ comasachadh no a’ cur à comas gineadh teacsair. |
| `enable_pbr` |  | boolean | no | `false` |  | A’ cur mapaichean PBR airson meitileach, garbhachd, agus àbhaisteach ris an dath bhunaiteach. |
| `is_a_t_pose` |  | boolean | no | `false` |  | Tionndadh gineadh T-pose air a ghnìomhachadh le true; seann roghainn, air a chur an àite le pose_mode. |
| `pose_mode` |  | enum (string) | no | `` | `a-pose`, `t-pose`, `` | Fàg an sreang falamh gus nach sònraich thu pose a’ mhodail gineadh, no iarr A-pose le 'a-pose' no T-pose le 't-pose'. |
| `texture_prompt` |  | string \| null | no |  | ≤ 600 characters | Stiùiridhean teacsa a bhios a’ stiùireadh gineadh teacsair. |
| `texture_image_url` |  | string (image URL) \| null | no |  |  | Ìomhaigh iomraidh 2D a bhios a’ stiùireadh gineadh teacsair. |
| `enable_rigging` |  | boolean | no | `false` |  | Rigadh fèin-obrachail humanoid, as èifeachdaiche airson modailean humanoid aig a bheil buill a’ chuirp furasta an aithneachadh. Le bhith ga chomasachadh thèid am modail gineadh a rigadh agus beothachaidhean bunaiteach coiseachd is ruith a thoirt seachad. |
| `rigging_height_meters` |  | number | no | `1.7` | > 0 | Thoir seachad àirde mheasta a’ charactair ann am meatairean nuair a tha enable_rigging fìor; air neo chan eil buaidh aig an luach seo. |
| `enable_animation` |  | boolean | no | `false` |  | A bheil am modail rigte a’ faighinn beothachadh preset, a dh’fheumas enable_rigging a bhith fìor. |
| `animation_action_id` |  | integer | no | `92` |  | ID beothachaidh preset leabharlann Meshy, le gnìomhan rim faighinn aig https://docs.meshy.ai/en/api/animation-library. Chan eil dearbhadh agus cleachdadh iomchaidh ach nuair a tha enable_animation fìor: thèid luachan taobh a-muigh [0, 696] a dhiùltadh le 422, agus tha "Idle" a’ freagairt ri `0`. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Tionndadh sgrùdaidh sàbhailteachd ro-ghiullachd: tha true a’ dèanamh sgrùdadh sàbhailteachd an in-chuir riatanach mus tèid a ghiullachd. |
| `geometry_resolution` |  | enum (string) \| null | no |  | `standard`, `2k` | Dùmhlachd-bhreacaidh geoimeatraidh a’ mhogail; ’s iad standard agus 2k na roghainnean Meshy-7 le taic. |
| `ultra_mode` |  | boolean | no | `false` |  | Seann roghainn air a chur an àite le geometry_resolution, aig a bheil prìomhachas ma thèid an dà chuid a thoirt seachad; cleachd geometry_resolution='2k' na àite. |

File parameters (`image`, `texture_image_url`) take a public `https://` URL, a `data:` URI up to 10 MB, or the `file_url` of an upload from `POST /files`.

## Example input

Required parameters only:

```json
{
  "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

A fuller example:

```json
{
  "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
```

## Run it

Set `DOITONG_API_KEY` to a key from https://doitong.com/developers/dashboard#keys. `?wait=20` returns the finished request in the same call when it is ready within 20 seconds; otherwise poll `GET /requests/{id}` (it also accepts `?wait=`), or pass `webhook_url`.

### curl

```bash
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/meshy/v7/image-to-3d?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

### JavaScript

```javascript
const API = "https://api.doitong.com/v1";
const headers = {
  "Authorization": "Bearer " + process.env.DOITONG_API_KEY,
  "Content-Type": "application/json",
};

// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/meshy/v7/image-to-3d?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);

// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
  res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
  request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
```

### Python

```python
import os
import requests

API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}

payload = {
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/meshy/v7/image-to-3d", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
    raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])

# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
    request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
    raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
```

### MCP

The MCP server at `https://api.doitong.com/v1/mcp` exposes the tools `search_models`, `get_model`, `quote`, `run`, `get_request`, `cancel_request`, `list_requests`, `create_upload` and `get_account`. A `run` call for this model:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "run",
    "arguments": {
      "model_id": "meshy/v7/image-to-3d",
      "input": {
        "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
      },
      "wait_seconds": 20
    }
  }
}
```

## Response

Every call returns a request object. `status` is one of `queued`, `running`, `succeeded`, `failed`, `canceled`. `outputs` lists the generated files with URLs on our storage (kept forever, or 7 days with `?storage=temporary`; `storage` says which); `output` is the model's own result object with the same URLs.

```json
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "meshy/v7/image-to-3d",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 1200,
    "usd": "1.20",
    "charged": 1200,
    "refunded": 0
  },
  "input": {
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  },
  "output": {
    "animation_glb": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "animation_fbx": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "model_glb": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "thumbnail": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "model_urls": {
      "glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "fbx": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "obj": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "usdz": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "blend": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "stl": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      }
    },
    "texture_urls": [
      {
        "base_color": {
          "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
          "content_type": "image/jpeg",
          "file_name": "0-output.jpeg",
          "file_size": 1843200
        },
        "metallic": {
          "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
          "content_type": "image/jpeg",
          "file_name": "0-output.jpeg",
          "file_size": 1843200
        },
        "normal": {
          "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
          "content_type": "image/jpeg",
          "file_name": "0-output.jpeg",
          "file_size": 1843200
        },
        "roughness": {
          "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
          "content_type": "image/jpeg",
          "file_name": "0-output.jpeg",
          "file_size": 1843200
        }
      }
    ],
    "seed": 42,
    "rigged_character_glb": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "rigged_character_fbx": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_name": "0-output.jpeg",
      "file_size": 1843200
    },
    "basic_animations": {
      "walking_glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "walking_fbx": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "walking_armature_glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "running_glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "running_fbx": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      },
      "running_armature_glb": {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "content_type": "image/jpeg",
        "file_name": "0-output.jpeg",
        "file_size": 1843200
      }
    },
    "rig_task_id": "string"
  },
  "outputs": [
    {
      "type": "file",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `animation_glb` | object {url, content_type, file_name, file_size} \| null | Toradh beothachaidh anns a bheil am modail 3D mar GLB; chan eil an fhreagairt a’ gabhail a-steach an toraidh seo mura h-eil enable_animation fìor. |
| `animation_fbx` | object {url, content_type, file_name, file_size} \| null | Toradh beothachaidh anns a bheil am modail 3D mar FBX; chan eil an fhreagairt a’ gabhail a-steach an toraidh seo mura h-eil enable_animation fìor. |
| `model_glb` | object {url, content_type, file_name, file_size} | Faidhle GLB anns a bheil an nì 3D ginte. |
| `thumbnail` | object {url, content_type, file_name, file_size} \| null | Dealbh beag a sheallas ro-shealladh den mhodail ghinte. |
| `model_urls` | object {glb, fbx, obj, usdz, blend, stl} | Ceanglaichean ris a’ mhodail 3D ann an diofar chruthan. |
| `texture_urls` | array of object {base_color, metallic, normal, roughness} | Nithean faidhle teacsair ann an sreath a tha structaraichte gus a bhith a’ maidseadh an Meshy API. |
| `seed` | integer \| null | Sìol gineadh, nuair a tha e ri fhaighinn. |
| `rigged_character_glb` | object {url, content_type, file_name, file_size} \| null | Toradh rigidh air a lìbhrigeadh mar fhaidhle caractair GLB; chan eil e san fhreagairt mura h-eil enable_rigging fìor. |
| `rigged_character_fbx` | object {url, content_type, file_name, file_size} \| null | Toradh rigidh air a lìbhrigeadh mar fhaidhle caractair FBX; chan eil e san fhreagairt mura h-eil enable_rigging fìor. |
| `basic_animations` | object {walking_glb, walking_fbx, walking_armature_glb, running_glb, running_fbx, running_armature_glb} \| null | Beothachaidhean bunaiteach coiseachd is ruith, air an gabhail a-steach dìreach ma tha enable_rigging fìor. |
| `rig_task_id` | string \| null | Aithnichear airson na h-obrach rigidh; air a ghabhail a-steach dìreach ma tha enable_rigging fìor. |

## Related models

- [Meshy V7 Multi Image to 3D](https://doitong.com/developers/models/meshy/v7/multi-image-to-3d.md) (`meshy/v7/multi-image-to-3d`): from $0.80 / run
- [Meshy V7 Text to 3D](https://doitong.com/developers/models/meshy/v7/text-to-3d.md) (`meshy/v7/text-to-3d`): from $0.80 / run
- [Meshy 7 Retexture](https://doitong.com/developers/models/meshy/v7/retexture.md) (`meshy/v7/retexture`): from $0.30 / request
- [Meshy 6 Preview · Image to 3D](https://doitong.com/developers/models/meshy/v6-preview/image-to-3d.md) (`meshy/v6-preview/image-to-3d`): from $0.80 / run
- [Meshy 6 · Image to 3D](https://doitong.com/developers/models/meshy/v6/image-to-3d.md) (`meshy/v6/image-to-3d`): from $0.80 / run
- [Meshy 7.1 Image to 3D](https://doitong.com/developers/models/meshy/v7.1/image-to-3d.md) (`meshy/v7.1/image-to-3d`): from $0.80 / run
- [Meshy 7.1 Multi Image to 3D](https://doitong.com/developers/models/meshy/v7.1/multi-image-to-3d.md) (`meshy/v7.1/multi-image-to-3d`): from $0.80 / run
- [Hi3D Image to 3D](https://doitong.com/developers/models/hitem3d/hi3d/image-to-3d.md) (`hitem3d/hi3d/image-to-3d`): $0.50 / run

## Links

- HTML page: https://doitong.com/developers/models/meshy/v7/image-to-3d
- All models and guides for AI agents: https://doitong.com/developers/llms.txt
- OpenAPI 3.1 with this model's typed request body: https://doitong.com/developers/openapi.json?model=meshy/v7/image-to-3d
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/meshy/v7/image-to-3d
