# Hi3D Multiview to 3D · Multi View to 3D API

> Hitem3D-meshgeneratie uit afzonderlijke afbeeldingen van voor-, achter-, linker- en rechteraanzicht

Maakt een 3D-model uit meerdere aanzichten via `front_image_url`, `back_image_url`, `left_image_url` en `right_image_url`, elk maximaal 20MB. Kies een algemene of portretgerichte `model` en een bijbehorende `resolution`. Textuur en PBR kunnen worden in- of uitgeschakeld, `face_count` ligt tussen 100,000 en 2,000,000 en exportformaten omvatten glb, obj, stl, fbx en usdz.

- Model id: `hitem3d/hi3d/multi-view-to-3d`
- Made by: Hitem3D
- Category: Image to 3D
- Output: 3d
- Estimated price per run: $0.50 / run (cheapest run $0.50 (500 API credits))
- Run: `POST https://api.doitong.ru/v1/run/hitem3d/hi3d/multi-view-to-3d`
- Quote: `POST https://api.doitong.ru/v1/quote/hitem3d/hi3d/multi-view-to-3d`
- Docs page: https://doitong.com/nl/developers/models/hitem3d/hi3d/multi-view-to-3d

## Pricing

Price: **$0.50 / run**. Estimated from the typical cost of one run. The quote is exactly what the run charges.

The full example input below costs $0.50 = 500 API credits (1 request × 500 API credits).

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/hitem3d/hi3d/multi-view-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

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `model` |  | enum (string) | no | `hitem3dv2.1` | `hitem3dv1.5`, `hitem3dv2.0`, `hitem3dv2.1`, `scene-portraitv1.5`, `scene-portraitv2.0`, `scene-portraitv2.1` | Selectie van het generatiemodel: kies uit de op portretten en personages afgestemde familie 'scene-portrait*' of de algemene familie 'hitem3d*'. |
| `resolution` |  | enum (string) \| null | no |  | `512`, `1024`, `1536`, `1536pro`, `1536fast`, `1536profast` | Generatieresolutie, standaard volgens de aanbeveling van het model: 1024 voor v1.5/v2.0 en anders de snelle variant. Beschikbare keuzes zijn 512, 1024, 1536 en 1536pro voor v1.5/v2.0; 1536fast en 1536pro voor v2.1; 1536 voor scene-portraitv1.5; 1536pro voor scene-portraitv2.0; en 1536profast en 1536pro voor scene-portraitv2.1. |
| `enable_texture` |  | boolean | no | `true` |  | Bepaalt of texturen samen met geometrie worden gegenereerd. |
| `enable_pbr` |  | boolean | no | `true` |  | Bepaalt of PBR-materiaalkaarten naast de textuur worden gemaakt. |
| `face_count` |  | integer \| null | no |  | 100,000 – 2,000,000 | Gewenst aantal vlakken voor het gegenereerde model, waarmee de resolutiegebaseerde aanbeveling van de partner wordt overschreven. Als dit wordt weggelaten, kiest de partner die aanbeveling, bijvoorbeeld 500k bij 512, 1M bij 1024 of 2M bij 1536. |
| `export_format` |  | enum (string) | no | `glb` | `glb`, `obj`, `stl`, `fbx`, `usdz` | Indeling voor het opslaan van het gegenereerde model. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Schakelaar voor veiligheidscontrole van invoerafbeeldingen: true vereist een veiligheidscontrole voordat de beeldverwerking begint. |
| `front_image_url` |  | string (image URL) \| null | no |  |  | Lever een afbeelding van de voorzijde aan via een URL, met PNG, JPEG of WebP en een bestandsgrootte van maximaal 20 MB. |
| `back_image_url` |  | string (image URL) \| null | no |  |  | Lever een afbeelding van de achterzijde aan via een URL, met PNG, JPEG of WebP en een bestandsgrootte van maximaal 20 MB. |
| `left_image_url` |  | string (image URL) \| null | no |  |  | Lever een afbeelding van de linkerzijde aan via een URL, met PNG, JPEG of WebP en een bestandsgrootte van maximaal 20 MB. |
| `right_image_url` |  | string (image URL) \| null | no |  |  | Lever een afbeelding van de rechterzijde aan via een URL, met PNG, JPEG of WebP en een bestandsgrootte van maximaal 20 MB. |

File parameters (`front_image_url`, `back_image_url`, `left_image_url`, `right_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
{}
```

A fuller example:

```json
{}
```

## 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/hitem3d/hi3d/multi-view-to-3d?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

# 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/hitem3d/hi3d/multi-view-to-3d?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({}),
});
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 = {}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/hitem3d/hi3d/multi-view-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": "hitem3d/hi3d/multi-view-to-3d",
      "input": {},
      "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": "hitem3d/hi3d/multi-view-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": 500,
    "usd": "0.50",
    "charged": 500,
    "refunded": 0
  },
  "input": {},
  "output": {
    "model_mesh": {
      "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
    }
  },
  "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 |
|---|---|---|
| `model_mesh` | object {url, content_type, file_name, file_size} | Bestand met het gegenereerde 3D-model. |
| `thumbnail` | object {url, content_type, file_name, file_size} \| null | Voorbeeldafbeelding van het model, indien beschikbaar. |

## Related models

- [Hi3D Image to Relief](https://doitong.com/developers/models/hitem3d/hi3d/image-to-relief.md) (`hitem3d/hi3d/image-to-relief`): $0.20 / run
- [Hi3D Image to 3D](https://doitong.com/developers/models/hitem3d/hi3d/image-to-3d.md) (`hitem3d/hi3d/image-to-3d`): $0.50 / run
- [Hi3D 3D Part Splitter](https://doitong.com/developers/models/hitem3d/hi3d/split.md) (`hitem3d/hi3d/split`): $0.40 / run
- [Hi3D 3D to Multicolor](https://doitong.com/developers/models/hitem3d/hi3d/multicolor.md) (`hitem3d/hi3d/multicolor`): $0.40 / run
- [Hi3D Texture](https://doitong.com/developers/models/hitem3d/hi3d/texture.md) (`hitem3d/hi3d/texture`): $0.30 / run
- [Hi3D Image to 3D · v3.0](https://doitong.com/developers/models/hitem3d/hi3d/v3.0/image-to-3d.md) (`hitem3d/hi3d/v3.0/image-to-3d`): from $1.80 / run
- [Hi3D Multiview to 3D · v3.0 · Multi View to 3D](https://doitong.com/developers/models/hitem3d/hi3d/v3.0/multi-view-to-3d.md) (`hitem3d/hi3d/v3.0/multi-view-to-3d`): from $1.80 / run
- [Hunyuan 3D Pro Image to 3D](https://doitong.com/developers/models/hunyuan-3d/v3.1/pro/image-to-3d.md) (`hunyuan-3d/v3.1/pro/image-to-3d`): $0.375 / run

## Links

- HTML page: https://doitong.com/developers/models/hitem3d/hi3d/multi-view-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=hitem3d/hi3d/multi-view-to-3d
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/hitem3d/hi3d/multi-view-to-3d
