# Meshy V7 Image to 3D API

> Viena attēla pārveide par 3D režģi ar 2k ģeometrijas iespēju, izvēles PBR, skeletu un animāciju

Izveido 3D modeli no viena attēla laukā `image_url` (JPG, PNG, AVIF vai HEIF). `model_type` izvēlas standard, lowpoly vai smart-topology, bet `target_polycount` pieņem vērtības no 100 līdz 300000. `geometry_resolution` piedāvā standard vai 2k. Teksturēšanu var izslēgt ar `should_texture`, bet PBR kartes, pozas režīms, humanoīda skelets un animācijas sākotne ir izvēles iespējas.

- 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.ru/v1/run/meshy/v7/image-to-3d`
- Quote: `POST https://api.doitong.ru/v1/quote/meshy/v7/image-to-3d`
- Docs page: https://doitong.com/lv/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.ru/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 |  |  | Norādiet 3D izveides avota attēlu, izmantojot URL vai base64 datu URI; atbalstīti .jpg, .jpeg, .png, AVIF vai HEIF. AVIF un HEIF ievades tiek automātiski konvertētas. |
| `model_type` |  | enum (string) | no | `standard` | `standard`, `lowpoly`, `smart-topology` | 3D tīkla režīms: izvēlieties 'lowpoly', lai iegūtu zemās izšķirtspējas tīklu ar tīrākiem daudzstūriem; šajā režīmā Meshy ignorē topology, target_polycount un should_remesh. Parastam augstas detalizācijas rezultātam izvēlieties 'standard', bet 'smart-topology' izmanto Meshy-T2 un iegūst tīras daļas, kas jau sākotnēji ģenerētas atsevišķi. |
| `topology` |  | enum (string) | no | `triangle` | `quad`, `triangle` | Modeļa topoloģijas izvēle starp Triangle ģeometriskām detaļām un Quad virsmas gludumam. |
| `target_polycount` |  | integer | no | `30000` | 100 – 300,000 | Daudzstūru skaita mērķis; ja model_type ir 'smart-topology', tas nepārsniedz 15,000. Ja šajā režīmā mērķis nav norādīts, tiek izmantots Meshy zemākais noklusējums — 4,000. |
| `symmetry_mode` |  | enum (string) | no | `auto` | `off`, `auto`, `on` | Izvēlieties, vai modeļa ģenerēšana piespiež simetriju ar On, to neizmanto ar Off vai nosaka automātiski ar Auto. |
| `should_remesh` |  | boolean | no | `true` |  | Iespējo vai atspējo atkārtotas tīkla izveides posmu. |
| `should_texture` |  | boolean | no | `true` |  | Iespējo vai atspējo tekstūras ģenerēšanu. |
| `enable_pbr` |  | boolean | no | `false` |  | Pievieno metāliskuma, raupjuma un normāļu PBR kartes līdzās pamatkrāsai. |
| `is_a_t_pose` |  | boolean | no | `false` |  | T-pozīcijas ģenerēšanas slēdzis, ko aktivizē true; novecojis, priekšroka dodama pose_mode. |
| `pose_mode` |  | enum (string) | no | `` | `a-pose`, `t-pose`, `` | Atstājiet virkni tukšu, lai nenorādītu ģenerētā modeļa pozu, vai pieprasiet A-pozīciju ar 'a-pose' vai T-pozīciju ar 't-pose'. |
| `texture_prompt` |  | string \| null | no |  | ≤ 600 characters | Teksta norādes, kas vada tekstūras ģenerēšanu. |
| `texture_image_url` |  | string (image URL) \| null | no |  |  | 2D atsauces attēls, kas vada tekstūras ģenerēšanu. |
| `enable_rigging` |  | boolean | no | `false` |  | Automātiska humanoīda skeleta izveide, kas visefektīvāk darbojas humanoīdiem modeļiem ar skaidri atšķiramām ekstremitātēm. Iespējojot šo opciju, ģenerētajam modelim tiek izveidots skelets un nodrošinātas pamata iešanas un skriešanas animācijas. |
| `rigging_height_meters` |  | number | no | `1.7` | > 0 | Norādiet aptuveno tēla augstumu metros, ja enable_rigging ir true; pretējā gadījumā šai vērtībai nav ietekmes. |
| `enable_animation` |  | boolean | no | `false` |  | Vai skeletotajam modelim tiek piešķirta iepriekš iestatīta animācija; tam nepieciešams, lai enable_rigging būtu true. |
| `animation_action_id` |  | integer | no | `92` |  | Meshy bibliotēkas animācijas iepriekš iestatītais ID; pieejamās darbības uzskaitītas vietnē https://docs.meshy.ai/en/api/animation-library. Validācija un lietošana attiecas tikai tad, ja enable_animation ir true: vērtības ārpus [0, 696] tiek noraidītas ar 422, un "Idle" atbilst `0`. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Priekšapstrādes drošības pārbaudes slēdzis: true padara ievades drošības pārbaudi par priekšnoteikumu apstrādei. |
| `geometry_resolution` |  | enum (string) \| null | no |  | `standard`, `2k` | Tīkla ģeometrijas izšķirtspēja; atbalstītās Meshy-7 opcijas ir standard un 2k. |
| `ultra_mode` |  | boolean | no | `false` |  | Novecojusi opcija, ko aizstāj geometry_resolution; ja norādītas abas, priekšroka ir geometry_resolution. Izmantojiet geometry_resolution='2k'. |

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.ru/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.ru/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

### JavaScript

```javascript
const API = "https://api.doitong.ru/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.ru/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.ru/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.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `animation_glb` | object {url, content_type, file_name, file_size} \| null | Animācijas rezultāts ar 3D modeli GLB formātā; atbilde šo rezultātu neietver, ja vien enable_animation nav true. |
| `animation_fbx` | object {url, content_type, file_name, file_size} \| null | Animācijas rezultāts ar 3D modeli FBX formātā; atbilde šo rezultātu neietver, ja vien enable_animation nav true. |
| `model_glb` | object {url, content_type, file_name, file_size} | GLB fails ar ģenerēto 3D objektu. |
| `thumbnail` | object {url, content_type, file_name, file_size} \| null | Sīktēls ar ģenerētā modeļa priekšskatījumu. |
| `model_urls` | object {glb, fbx, obj, usdz, blend, stl} | Saites uz 3D modeli dažādos formātos. |
| `texture_urls` | array of object {base_color, metallic, normal, roughness} | Tekstūras failu objekti masīvā, kas strukturēti atbilstoši Meshy API. |
| `seed` | integer \| null | Ģenerēšanas sākumstāvoklis, ja pieejams. |
| `rigged_character_glb` | object {url, content_type, file_name, file_size} \| null | Skeleta izveides rezultāts, kas piegādāts kā GLB tēla fails; atbildē nav iekļauts, ja vien enable_rigging nav true. |
| `rigged_character_fbx` | object {url, content_type, file_name, file_size} \| null | Skeleta izveides rezultāts, kas piegādāts kā FBX tēla fails; atbildē nav iekļauts, ja vien enable_rigging nav true. |
| `basic_animations` | object {walking_glb, walking_fbx, walking_armature_glb, running_glb, running_fbx, running_armature_glb} \| null | Pamata iešanas un skriešanas animācijas, iekļautas tikai tad, ja enable_rigging ir true. |
| `rig_task_id` | string \| null | Skeleta izveides uzdevuma identifikators; iekļauts tikai tad, ja enable_rigging ir true. |

## 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.ru/v1/models/meshy/v7/image-to-3d
