# Hyper3D Rodin API

> Uzalishaji wa Rodin 3D kutoka maandishi au picha ukiwa na nyenzo za PBR au zenye vivuli na viwango vya ubora

Huzalisha modeli za 3D kutoka kwa kidokezo cha hadi vibambo 1024, picha za ingizo, au vyote viwili. `condition_mode` ni fuse au concat kwa ingizo la picha nyingi. Chaguo ni pamoja na `quality` kutoka extra-low hadi high, `material` PBR au Shaded, `tier` Regular au Sketch, `TAPose`, `bbox_condition`, na uhamishaji wa glb, usdz, fbx, obj au stl.

- Model id: `hyper3d/rodin`
- Made by: Hyper3D
- Category: Image to 3D
- Output: 3d
- Price: $0.40 / request (cheapest run $0.40 (400 API credits))
- Run: `POST https://api.doitong.com/v1/run/hyper3d/rodin`
- Quote: `POST https://api.doitong.com/v1/quote/hyper3d/rodin`
- Docs page: https://doitong.com/sw/developers/models/hyper3d/rodin

## Pricing

Price: **$0.40 / request**. Billed once per request.

The full example input below costs $0.40 = 400 API credits (1 request × 400 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.com/v1/quote/hyper3d/rodin` 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 |
|---|---|---|---|---|---|---|
| `prompt` |  | string | no | `` | ≤ 1024 characters | Mwongozo wa uzalishaji uliotolewa kama maandishi, unaohitajika na hali ya Text-to-3D lakini unaweza kuachwa katika hali ya Image-to-3D. |
| `input_image_urls` |  | array of image URL | no |  |  | URL za picha chanzo, zinazohitajika na Image-to-3D na ambazo Text-to-3D inaweza kutumia kwa hiari kuzalisha modeli. |
| `condition_mode` |  | enum (string) | no | `concat` | `fuse`, `concat` | Mbinu ya kuweka masharti ya picha: concat hujenga modeli kutoka mitazamo mingi ya kitu kimoja, bila mpangilio wa upakiaji unaohitajika. Vinginevyo, fuse huhitaji picha moja au zaidi na huunda modeli kwa kutoa vipengele vya kitu na kuvichanganya kwenye picha. |
| `seed` |  | integer \| null | no |  | 0 – 65,535 | Mbegu ya hiari ya nasibu yenye masafa ya 0–65535. |
| `geometry_file_format` |  | enum (string) | no | `glb` | `glb`, `usdz`, `fbx`, `obj`, `stl` | Umbizo la faili ya jiometri, huchaguliwa kutoka glb, usdz, fbx, obj, stl; chaguomsingi ni glb. |
| `material` |  | enum (string) | no | `PBR` | `PBR`, `Shaded` | Uteuzi wa nyenzo: PBR au Shaded, huku PBR ikiwa chaguomsingi. |
| `quality` |  | enum (string) | no | `medium` | `high`, `medium`, `low`, `extra-low` | Kiwango cha ubora wa uzalishaji: high, medium, low, extra-low; chaguomsingi ni medium. |
| `use_hyper` |  | boolean | no | `false` |  | Hudhibiti uhamishaji wa modeli ya hyper-mode; chaguomsingi ni false. |
| `tier` |  | enum (string) | no | `Regular` | `Regular`, `Sketch` | Uteuzi wa kiwango cha uzalishaji: tumia Sketch kwa Rodin Sketch au Regular kwa Rodin Regular. |
| `TAPose` |  | boolean | no | `false` |  | Hudhibiti ikiwa modeli inayofanana na binadamu itazalishwa katika mkao wa T/A. |
| `bbox_condition` |  | array of integer \| null | no |  |  | Mkusanyiko wa kisanduku cha mipaka, kwa kawaida ukiwa na maingizo 3: urefu kwenye mhimili wa X, upana kwenye mhimili wa Y na kimo kwenye mhimili wa Z. Thamani hizi hubainisha vipimo vya kisanduku na kipengele cha kuongeza ukubwa. |
| `addons` |  | string \| null | no |  |  | Viongezi vya hiari vya uzalishaji; chaguomsingi ni []. Chaguo la HighPack hutoa modeli za high-poly na kuboresha mwonekano wa maandishi kutoka 1K ya chaguomsingi hadi 4K. |

File parameters (`input_image_urls`) 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
{
  "prompt": ""
}
```

## 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/hyper3d/rodin?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": ""
  }'

# 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/hyper3d/rodin?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "prompt": ""
  }),
});
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 = {
    "prompt": "",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/hyper3d/rodin", 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": "hyper3d/rodin",
      "input": {
        "prompt": ""
      },
      "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": "hyper3d/rodin",
  "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": 400,
    "usd": "0.40",
    "charged": 400,
    "refunded": 0
  },
  "input": {
    "prompt": ""
  },
  "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
    },
    "seed": 42,
    "textures": [
      {
        "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,
        "width": 1024,
        "height": 768
      }
    ]
  },
  "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 |
|---|---|---|
| `model_mesh` | object {url, content_type, file_name, file_size} | Faili iliyo na kitu cha 3D kilichozalishwa. |
| `seed` | integer | Seed inayotumika wakati wa uzalishaji. |
| `textures` | array of object {url, content_type, file_name, file_size, width, height} | Maandishi yaliyotengenezwa kwa kitu cha 3D. |

## Related models

- [Hyper3d](https://doitong.com/developers/models/hyper3d/rodin/v2.md) (`hyper3d/rodin/v2`): $0.40 / request
- [Hyper3D - Rodin V2.5 - Image to 3D](https://doitong.com/developers/models/hyper3d/rodin/v2.5.md) (`hyper3d/rodin/v2.5`): from $0.40 / request
- [Hyper3D - Rodin V2.5 - Image to 3D - Fast](https://doitong.com/developers/models/hyper3d/rodin/v2.5/fast.md) (`hyper3d/rodin/v2.5/fast`): $0.10 / request
- [Hi3D Image to 3D](https://doitong.com/developers/models/hitem3d/hi3d/image-to-3d.md) (`hitem3d/hi3d/image-to-3d`): $0.50 / 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 · Multi View to 3D](https://doitong.com/developers/models/hitem3d/hi3d/multi-view-to-3d.md) (`hitem3d/hi3d/multi-view-to-3d`): $0.50 / 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/hyper3d/rodin
- 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=hyper3d/rodin
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/hyper3d/rodin
