# VGGT-1B API

> Ag ath-thogail sealladh 3D bho suas ri 48 ìomhaigh no bhidio, a’ tilleadh mhapaichean doimhneachd, postaidhean camara agus neul phuingean

A’ tomhas geoimeatraidh bho iomadh sealladh. Thoir suas ri 48 ìomhaigh ann an `image_urls`, agus cuir `video_url` ris ma thogras tu, air a shamplachadh gach `frame_sampling_rate` frèam. Tillidh e mapaichean doimhneachd gach frèama, extrinsics agus intrinsics a’ chamara, faidhlichean ro-innse amh agus neul phuingean GLB le cònaichean camara. Bidh `confidence_percentile` agus `max_points` a’ riaghladh dùmhlachd an neòil phuingean.

- 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/gd/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 | Ìomhaighean tùsail ath-thogail, gach fear air a phadhadh gu ceàrnag agus air ath-mheudachadh gu tomhas as fhaide de 518 piogsail. Thathar a’ gabhail ri JPEG, PNG, WEBP, agus fòrmat ìomhaigh sam bith a bharrachd a ghabhas Pillow a dhì-chòdachadh. |
| `video_url` | `video` | string (video URL) \| null | no |  |  | Bhidio tùsail roghainneil aig a bheil na frèamaichean samplaichte aige a’ leantainn image_urls san in-chur cho-mheasgaichte. Bithear a’ samplachadh gach `frame_sampling_rate`mh frèam, an-còmhnaidh a’ gabhail a-steach a’ chiad fhrèam agus an tè mu dheireadh. |
| `frame_sampling_rate` |  | integer | no | `24` | 1 – 1,000 | Eadar-ama frèama a thèid a chur an sàs a-mhàin nuair a thèid bhidio a sholar tro `video_url`; air neo chan eil buaidh aige. Bithear a’ gleidheadh an dà fhrèam chrìche ge bith dè an t-eadar-ama, agus bithear a’ samplachadh gach n-th frèam eatarra. |
| `alpha_blend_onto` |  | enum (string) | no | `white` | `keep`, `white`, `black`, `mean` | Tha ceithir roghainnean ann airson làimhseachadh an t-seanail alpha: bidh 'keep' a’ toirt air falbh alpha gun na luachan piogsail tùsail atharrachadh; bidh 'mean' a’ co-dhèanamh an aghaidh RGB cuibheasach ImageNet. Airson cùl-raon cruaidh, tagh 'white' no 'black' airson co-dhèanamh an aghaidh an dath fhreagarrach. |
| `export_prediction_data` |  | boolean | no | `true` |  | Às-mhalairt ro-innsean amh mar fhaidhlichean JSON fa leth airson frèamaichean fa leth. Tha doimhneachd agus a mhisneachd, masg, agus suidheachadh camara còdaichte anns gach faidhle. |
| `export_depth_maps` |  | boolean | no | `true` |  | Às-mhalairt rasteran doimhneachd le mapadh sreathach de `depth_range` gu luachan piogsail 0–65535. Gheibh gach frèam PNG liath-sgèile fa leth le mionaideachd 16-bit. |
| `export_point_cloud` |  | boolean | no | `true` |  | Às-mhalairt a’ neul-phuing dhathte cho-mheasgaichte ann an cruth GLB, le camarathan tuairmseach air an riochdachadh le meshan còn fa leth san t-sealladh. |
| `array_encoding` |  | enum (string) | no | `base64` | `base64`, `list` | Cruth stòraidh nan arrays airson faidhlichean JSON ro-innse, far a bheil 'list' a’ gabhail fada a bharrachd àite na 'base64'. Tagh 'list' airson liostaichean JSON neadaichte no 'base64' airson nithean anns a bheil {data, shape, dtype}. |
| `exclude_keys` |  | array of enum (string) | no |  |  | Iuchraichean a thèid a dhùnadh a-mach às gach faidhle JSON ro-innse. |
| `confidence_percentile` |  | number | no | `50` | 0 – 100 | Ceudad sìolaidh stèidhichte air misneachd airson togail an neul-phuing: bidh 0 a’ cur à comas sìoladh, agus bidh luachan eile a’ dùnadh a-mach an ceudad sin de phuingean, a’ tòiseachadh leis an fheadhainn leis a’ mhisneachd as ìsle. |
| `max_points` |  | integer | no | `250000` | 1,000 – 5,000,000 | Crìoch àireamh phuingean GLB, le 250,000 mar bhun-roghainn. Gus latency sreathachaidh agus luchdachadh suas a lùghdachadh, thèid taghadh air a shamplachadh gu cothromach a sgrìobhadh nuair a thèid am buidseat seo thairis. |
| `enable_safety_checker` |  | boolean | no | `true` |  | Toglaich airson sgrùdadh sàbhailteachd nan ìomhaighean agus a’ bhidio san in-chur. |

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 | Às-chur neul-phuing a thèid a thilleadh nuair a tha `export_point_cloud` fìor; bidh an sealladh GLB aige a’ co-mheasgachadh an neul le cònaichean nan camarathan. |
| `depth_maps` | array of object {url, content_type, file_name, file_size, width, height} | Às-chur mapa-doimhneachd ri fhaighinn nuair a tha `export_depth_maps` fìor. Bidh na h-inntrigidhean a’ leantainn sreath nam frèamaichean tùsail, le gach frèam air a riochdachadh mar raster PNG liath-sgèile aig doimhneachd 16-bit. |
| `prediction_data` | array of object {url, content_type, file_name, file_size} | Às-chur ro-innse amh: nuair a tha `export_prediction_data` fìor, bidh am faidhle JSON aige fhèin aig gach frèam, agus bidh na faidhlichean a’ leantainn sreath nam frèamaichean. |
| `num_frames` | integer | Àireamh iomlan nam frèamaichean ath-thogte, a’ gabhail a-steach ìomhaighean agus frèamaichean air an samplachadh bhon bhidio. |
| `depth_range` | array of number | Crìochan doimhneachd [min, max] a thèid a chleachdadh airson tomhas `depth_maps`. Faigh air ais doimhneachd mar min + pixel * (max - min) / 65535. |
| `extrinsics` | array of array of array of number | Matrices taobh-a-muigh camara-bho-shaoghal, meud 3x4, airson gach frèam; tha na h-aisean OpenCV a’ comharrachadh deas air x, sìos air y, agus air adhart air z. |
| `intrinsics` | array of array of array of number | Matrices gnèitheach pinhole, meud 3x3, airson gach frèam, air an cur an cèill ann an co-chomharran piogsail frèam 518x518 a’ mhodail. |
| `timings` | object | Ùine a chaidh seachad airson gach ìre, ann an diogan. |

## 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
