# VGGT-1B API

> Atógann sé radharc 3T ó suas le 48 íomhá nó ó fhíseán, agus filleann sé léarscáileanna doimhneachta, staideanna ceamara agus scamall pointí

Measann sé céimseata ó ilradhairc. Tabhair suas le 48 íomhá in `image_urls`, agus cuir `video_url` leis más mian leat, sampláilte gach `frame_sampling_rate` fráma. Filleann sé léarscáileanna doimhneachta in aghaidh an fhráma, seachtracha agus inmheánacha an cheamara, comhaid amh tuartha, agus scamall pointí GLB le cóin cheamara. Rialaíonn `confidence_percentile` agus `max_points` dlús an scamaill pointí.

- Model id: `vggt-1b`
- Made by: Meta
- Category: Vision
- Output: json
- Charged by usage (up to $1.755 per run, typical $0.04; the rest of the hold is refunded): $0.000975 / second of processing time (cheapest run $0.04 (40 API credits))
- Run: `POST https://api.doitong.com/v1/run/vggt-1b`
- Quote: `POST https://api.doitong.com/v1/quote/vggt-1b`
- Docs page: https://doitong.com/ga/developers/models/vggt-1b

## Pricing

Price: **$0.000975 / second of processing time**. Charged by actual usage at $0.000975 / second of processing time: up to $1.755 per run (the quote gives the maximum for your input), the rest is refunded automatically after the run. A typical run costs $0.04.

The full example input below holds up to $1.755 = 1755 API credits (up to 1800 s of processing time × $0.000975) when it starts; a typical run costs $0.04 (40 API credits).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). This model is charged by usage: `POST https://api.doitong.com/v1/quote/vggt-1b` with the same JSON body returns the most the run can cost for that input (`credits`, debited when the run starts); after the run you pay the usage the model reports and the rest is refunded automatically. An input whose maximum would exceed the per-run limit is refused with 422. 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_urls` | `images` | array of image URL | no |  | ≤ 48 items | Íomhánna foinse atógála, gach ceann acu stuáilte ina chearnóg agus athmhéadaithe go dtí toise is faide de 518 picteilín. Glactar le JPEG, PNG, WEBP agus aon fhormáid íomhá bhreise is féidir le Pillow a dhíchódú. |
| `video_url` | `video` | string (video URL) \| null | no |  |  | Físeán foinseach roghnach a leanann a fhrámaí sampláilte image_urls san ionchur comhcheangailte. Úsáidtear gach fráma `frame_sampling_rate`-ú, agus cuirtear an chéad agus an fráma deireanach san áireamh i gcónaí. |
| `frame_sampling_rate` |  | integer | no | `24` | 1 – 1,000 | Eatramh fráma a chuirtear i bhfeidhm nuair a sholáthraítear físeán trí `video_url` amháin; murach sin, níl aon éifeacht aige. Coinnítear an dá fhráma teorann beag beann ar an eatramh, agus sampláiltear gach n-ú fráma eatarthu. |
| `alpha_blend_onto` |  | enum (string) | no | `white` | `keep`, `white`, `black`, `mean` | Tá ceithre rogha ann do láimhseáil an chainéil alfa: baintear alfa le 'keep' gan na bunluachanna picteilíní a athrú; cumasctar le 'mean' in aghaidh mheán RGB ImageNet. Maidir le cúlra soladach, roghnaigh 'white' nó 'black' chun cumasc in aghaidh an dath chomhfhreagraigh. |
| `export_prediction_data` |  | boolean | no | `true` |  | Easpórtáil tuartha amh mar chomhaid JSON ar leith do fhrámaí aonair. Áirítear i ngach comhad doimhneacht agus a mhuinín, masc, agus staidiúir cheamara ionchódaithe. |
| `export_depth_maps` |  | boolean | no | `true` |  | Easpórtáil rasters doimhneachta le mapáil líneach de `depth_range` go luachanna picteilíní 0–65535. Faigheann gach fráma PNG liathscála ar leith le beachtas 16-giotán. |
| `export_point_cloud` |  | boolean | no | `true` |  | Easpórtáil an scamall pointe daite comhleáite i bhformáid GLB, agus na ceamaraí measta léirithe ag mogaill chóin aonair sa radharc. |
| `array_encoding` |  | enum (string) | no | `base64` | `base64`, `list` | Formáid stórála eagair do chomhaid JSON tuartha, agus úsáideann 'list' i bhfad níos mó spáis ná 'base64'. Roghnaigh 'list' do liostaí JSON neadaithe nó 'base64' d'earraí ina bhfuil {data, shape, dtype}. |
| `exclude_keys` |  | array of enum (string) | no |  |  | Eochracha eisiata ó gach comhad JSON tuartha. |
| `confidence_percentile` |  | number | no | `50` | 0 – 100 | Céatadán scagtha bunaithe ar mhuinín chun scamall pointí a chruthú: díchumasaíonn 0 an scagadh, agus eisíonn luachanna eile an céatadán sin de phointí, ag tosú leis na pointí is lú muiníne. |
| `max_points` |  | integer | no | `250000` | 1,000 – 5,000,000 | Uasteorainn líon na bpointí GLB, réamhshocraithe go 250,000. Chun sraithuimhriú agus moill uaslódála a laghdú, scríobhtar rogha fhoshampláilte chothrom nuair a sháraíonn an scamall an buiséad seo. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Scorán seiceála sábháilteachta d'íomhánna agus físeán ionchuir. |

File parameters (`images`, `video`) 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.com/v1/run/vggt-1b?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.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/vggt-1b?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.com/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/vggt-1b", 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": "vggt-1b",
      "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": "vggt-1b",
  "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": 1755,
    "usd": "1.755",
    "charged": 1755,
    "refunded": 0
  },
  "input": {},
  "output": {
    "point_cloud": {
      "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
    },
    "depth_maps": [
      {
        "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
      }
    ],
    "prediction_data": [
      {
        "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
      }
    ],
    "num_frames": 1,
    "depth_range": [
      1.0
    ],
    "extrinsics": [
      [
        [
          1.0
        ]
      ]
    ],
    "intrinsics": [
      [
        [
          1.0
        ]
      ]
    ],
    "timings": {}
  },
  "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 |
|---|---|---|
| `point_cloud` | object {url, content_type, file_name, file_size} \| null | Easpórtáil scamall pointí a chuirtear ar ais nuair atá `export_point_cloud` fíor; comhcheanglaíonn a radharc GLB an scamall comhleáite le cóin cheamara. |
| `depth_maps` | array of object {url, content_type, file_name, file_size, width, height} | Easpórtáil léarscáile doimhneachta atá ar fáil nuair atá `export_depth_maps` fíor. Leanann na hiontrálacha seicheamh na bhfrámaí foinseacha, agus léirítear gach fráma mar raster PNG liathscála ag doimhneacht 16-giotán. |
| `prediction_data` | array of object {url, content_type, file_name, file_size} | Easpórtáil tuartha amh: nuair atá `export_prediction_data` fíor, bíonn a chomhad JSON féin ag gach fráma, agus leanann na comhaid seicheamh na bhfrámaí. |
| `num_frames` | integer | Líon iomlán na bhfrámaí athchruthaithe, lena n-áirítear íomhánna agus frámaí sampláilte ón bhfíseán. |
| `depth_range` | array of number | Teorainneacha doimhneachta [min, max] a úsáidtear do chainníochtú `depth_maps`. Aisghabh doimhneacht mar min + pixel * (max - min) / 65535. |
| `extrinsics` | array of array of array of number | Maitrísí seachtracha ceamara ón domhan, méid 3x4, do gach fráma; díríonn aiseanna OpenCV ar dheis feadh x, síos feadh y, agus ar aghaidh feadh z. |
| `intrinsics` | array of array of array of number | Maitrísí intreacha pollphionna, méid 3x3, do gach fráma, léirithe i gcomhordanáidí picteilíní fhráma 518x518 na samhla. |
| `timings` | object | Am iarbhír caite do gach céim, i soicind. |

## Related models

- [Sam 3 · Image · Embed](https://doitong.com/developers/models/sam-3/image/embed.md) (`sam-3/image/embed`): $0.005 / run
- [Bagel · Understand](https://doitong.com/developers/models/bagel/understand.md) (`bagel/understand`): $0.05 / request
- [Bria Ad Delayer](https://doitong.com/developers/models/bria/ad-delayer.md) (`bria/ad-delayer`): $0.30 / request
- [Florence 2 Large Caption](https://doitong.com/developers/models/florence-2-large/caption.md) (`florence-2-large/caption`): $0.003 / run
- [Florence 2 Large Detailed Caption](https://doitong.com/developers/models/florence-2-large/detailed-caption.md) (`florence-2-large/detailed-caption`): $0.004 / run
- [Florence 2 Large OCR](https://doitong.com/developers/models/florence-2-large/ocr.md) (`florence-2-large/ocr`): $0.003 / run
- [Florence 2 Large Region To Category](https://doitong.com/developers/models/florence-2-large/region-to-category.md) (`florence-2-large/region-to-category`): $0.003 / run
- [Florence-2 Large · More Detailed Caption](https://doitong.com/developers/models/florence-2-large/more-detailed-caption.md) (`florence-2-large/more-detailed-caption`): $0.004 / run

## Links

- HTML page: https://doitong.com/developers/models/vggt-1b
- 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=vggt-1b
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/vggt-1b
