CyHUB
РусскийGet an API key

Tripo 3.0 API

Tripo 3.0 3D models from a description, from one photo or from several views of an object. Maximum detail and every setting.

Model key in the API: tripo3d

For AI assistants:Download .mdAll documentation .mdOpen as text

Connect in three steps

  1. Get a keyCreate a key in the dashboard after you confirm your email. One key opens every model.
  2. Check the pricePOST /v1/price shows the cost of a run in advance, without charging you.
  3. Run a task and collect the resultPOST /v1/tasks starts a task, GET /v1/tasks/{id} shows its status and files.

Ready-to-use code

Replace YOUR_API_KEY with your key. The code starts a task and waits for the result. In cURL, repeat the second request with the id from the first response instead of TASK_ID until status becomes succeeded.

cURL
curl -X POST "https://api.cyhub.ai/v1/tasks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "tripo3d",
  "settings": {
    "task_type": "text_to_model",
    "prompt": "Деревянный сундук с железными уголками",
    "texture_quality": "standard",
    "model_version": "v3.0-20250812"
  }
}'

curl "https://api.cyhub.ai/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import time

import requests

API = "https://api.cyhub.ai/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

body = {
    "model": "tripo3d",
    "settings": {
        "task_type": "text_to_model",
        "prompt": "Деревянный сундук с железными уголками",
        "texture_quality": "standard",
        "model_version": "v3.0-20250812",
    },
}

response = requests.post(f"{API}/tasks", json=body, headers=HEADERS, timeout=60)
response.raise_for_status()
task = response.json()
while task["status"] in ("queued", "running"):
    time.sleep(5)
    task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()
print(task["status"], task["result"])
Node.js
const API = "https://api.cyhub.ai/v1";
const HEADERS = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };

const body = {
  "model": "tripo3d",
  "settings": {
    "task_type": "text_to_model",
    "prompt": "Деревянный сундук с железными уголками",
    "texture_quality": "standard",
    "model_version": "v3.0-20250812"
  }
};

async function main() {
  let response = await fetch(`${API}/tasks`, { method: "POST", headers: HEADERS, body: JSON.stringify(body) });
  if (!response.ok) throw new Error(await response.text());
  let task = await response.json();
  while (task.status === "queued" || task.status === "running") {
    await new Promise((resolve) => setTimeout(resolve, 5000));
    response = await fetch(`${API}/tasks/${task.id}`, { headers: HEADERS });
    task = await response.json();
  }
  console.log(task.status, task.result);
}

main();
Get a key

Price before the run

Prices as of 15.10.2026: from 15 ₽. POST /v1/price shows the exact price of your settings.

ModePrice
From a descriptionfrom 15 ₽
From a photofrom 29 ₽
From several viewsfrom 29 ₽

Send the same settings to POST /v1/price: the response shows the price of the run without charging you.

cURL
curl -X POST "https://api.cyhub.ai/v1/price" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "tripo3d",
  "settings": {
    "task_type": "text_to_model",
    "prompt": "Деревянный сундук с железными уголками",
    "texture_quality": "standard",
    "model_version": "v3.0-20250812"
  }
}'
  • amount_minor: the price of the run in minor units (kopecks for rubles)
  • currency: the wallet currency
  • available_minor: how much your balance has for new tasks right now

Modes

Each mode has its own parameters and examples. The mode is set by the task_type field.

From a description

A model from a text description, no pictures.

Value of the task_type field: text_to_model

This page is about Tripo 3.0: send model_version = v3.0-20250812. Without the model_version field the task runs on v3.1-20260211.

Price in this mode from 15 ₽.

Parameters

Model parameters go inside settings. Omitted optional fields take their default values.

model_versionOptional

Model version. v3.1 and v3.0 are the most detailed and have every setting. v2.5 and P1 lack some settings, P1 is for low-poly models.

Type: StringAllowed values: v3.0-20250812Default: "v3.1-20260211"
textureOptional

A textured model. Without it, only the shape.

Type: BooleanDefault: true
pbrOptional

Realistic materials with reflections and highlights. Turns the texture on too.

Type: BooleanDefault: true
texture_qualityOptional

Texture quality. HD is more detailed and costs more. HD is available only in versions v3.1, v3.0 and P1.

Type: StringAllowed values: standarddetailedDefault: "standard"
geometry_qualityOptional

Shape quality. Ultra is more detailed, slower and costs more, only in v3.1 and v3.0.

Type: StringAllowed values: standarddetailedDefault: "standard"
face_limitOptional

How many polygons the model has. Not set: chosen automatically. The allowed range depends on the version and settings: 50 to 20,000 for P1, 500 to 20,000 for smart low-poly.

Type: IntegerMinimum: 48Maximum: 2000000
auto_sizeOptional

Scale the model to real-world size in meters. Available only in versions v3.1, v3.0 and P1.

Type: BooleanDefault: false
orientationOptional

Rotation of the finished model: the usual one or as in the source photo. Works only for a model from a photo or from several views, and only with a texture.

Type: StringAllowed values: defaultalign_imageDefault: "default"
quadOptional

A model made of quads, easier to edit and animate. The file will be FBX. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
smart_low_polyOptional

A low-poly model with a clean mesh. Best for simple objects. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
generate_partsOptional

A model made of separate parts. Does not combine with texture, PBR, quads or smart low-poly. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
promptRequired

What object is needed. Any language works.

Type: StringMinimum characters: 1Maximum characters: 1024
negative_promptOptional

What must not be in the model.

Type: StringMaximum characters: 255

Parameters not listed here are not accepted: the response is 422 unknown_setting.

Input

  • Photos are URLs of JPEG or PNG files up to 20 MB.

Request example

Send this JSON to POST /v1/tasks with your API key. To check the price first, send the same JSON to POST /v1/price.

A model from a description

JSON
{
  "model": "tripo3d",
  "settings": {
    "task_type": "text_to_model",
    "prompt": "Деревянный сундук с железными уголками",
    "texture_quality": "standard",
    "model_version": "v3.0-20250812"
  }
}

The price is calculated when the task is accepted, currency RUB.

Complete generation example

Output

  • A GLB 3D model file (FBX with quads) and a preview picture.
  • Generation takes several minutes.
KindFormatsHow manyNote
imagepng, jpg, webp0 or 1A preview picture of the model, when Tripo sends one.
documentglb, fbx1The 3D model file: FBX with quad = true, GLB otherwise.

A finished task as GET /v1/tasks/{id} returns it (some fields left out). The caption may sit on the task or on a single file and may be empty; the model picks the file name.

JSON
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Caption of the result: the model and its settings",
    "texts": [],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "image",
        "filename": "image.png",
        "size": 1843200,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "document",
        "filename": "result.glb",
        "size": 2097152,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
How to read the result and download files

From a photo

A model from one photo of an object. Best with a clean background and the whole object.

Value of the task_type field: image_to_model

This page is about Tripo 3.0: send model_version = v3.0-20250812. Without the model_version field the task runs on v3.1-20260211.

Price in this mode from 29 ₽.

Parameters

Model parameters go inside settings. Omitted optional fields take their default values.

model_versionOptional

Model version. v3.1 and v3.0 are the most detailed and have every setting. v2.5 and P1 lack some settings, P1 is for low-poly models.

Type: StringAllowed values: v3.0-20250812Default: "v3.1-20260211"
textureOptional

A textured model. Without it, only the shape.

Type: BooleanDefault: true
pbrOptional

Realistic materials with reflections and highlights. Turns the texture on too.

Type: BooleanDefault: true
texture_qualityOptional

Texture quality. HD is more detailed and costs more. HD is available only in versions v3.1, v3.0 and P1.

Type: StringAllowed values: standarddetailedDefault: "standard"
geometry_qualityOptional

Shape quality. Ultra is more detailed, slower and costs more, only in v3.1 and v3.0.

Type: StringAllowed values: standarddetailedDefault: "standard"
face_limitOptional

How many polygons the model has. Not set: chosen automatically. The allowed range depends on the version and settings: 50 to 20,000 for P1, 500 to 20,000 for smart low-poly.

Type: IntegerMinimum: 48Maximum: 2000000
auto_sizeOptional

Scale the model to real-world size in meters. Available only in versions v3.1, v3.0 and P1.

Type: BooleanDefault: false
orientationOptional

Rotation of the finished model: the usual one or as in the source photo. Works only for a model from a photo or from several views, and only with a texture.

Type: StringAllowed values: defaultalign_imageDefault: "default"
quadOptional

A model made of quads, easier to edit and animate. The file will be FBX. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
smart_low_polyOptional

A low-poly model with a clean mesh. Best for simple objects. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
generate_partsOptional

A model made of separate parts. Does not combine with texture, PBR, quads or smart low-poly. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
image_urlRequired

One URL of a photo of the object.

Type: List (String, uri)Maximum items: 1
texture_alignmentOptional

How the texture is laid: closer to the photo or closer to the shape of the model.

Type: StringAllowed values: original_imagegeometryDefault: "original_image"
enable_image_autofixOptional

Improve the photo first for a better result.

Type: BooleanDefault: false

Parameters not listed here are not accepted: the response is 422 unknown_setting.

Input

  • Photos are URLs of JPEG or PNG files up to 20 MB.
FieldAcceptsFormatsFilesFile size up to
image_urlImagesjpeg, jpg, png120 MB
How to send files

Request example

Send this JSON to POST /v1/tasks with your API key. To check the price first, send the same JSON to POST /v1/price.

A model from a photo

JSON
{
  "model": "tripo3d",
  "settings": {
    "task_type": "image_to_model",
    "image_url": [
      "https://example.com/chair.png"
    ],
    "model_version": "v3.0-20250812"
  }
}

The price is calculated when the task is accepted, currency RUB.

Complete generation example

Output

  • A GLB 3D model file (FBX with quads) and a preview picture.
  • Generation takes several minutes.
KindFormatsHow manyNote
imagepng, jpg, webp0 or 1A preview picture of the model, when Tripo sends one.
documentglb, fbx1The 3D model file: FBX with quad = true, GLB otherwise.

A finished task as GET /v1/tasks/{id} returns it (some fields left out). The caption may sit on the task or on a single file and may be empty; the model picks the file name.

JSON
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Caption of the result: the model and its settings",
    "texts": [],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "image",
        "filename": "image.png",
        "size": 1843200,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "document",
        "filename": "result.glb",
        "size": 2097152,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
How to read the result and download files

From several views

A model from several photos of one object from different sides: the most accurate shape. Needs the front photo and at least one more, each in the field of its side. The sides are the object's own: left_url takes the photo where it faces left. If the sides are swapped, the model may get a second front instead of a back.

Value of the task_type field: multiview_to_model

This page is about Tripo 3.0: send model_version = v3.0-20250812. Without the model_version field the task runs on v3.1-20260211.

Price in this mode from 29 ₽.

Parameters

Model parameters go inside settings. Omitted optional fields take their default values.

model_versionOptional

Model version. v3.1 and v3.0 are the most detailed and have every setting. v2.5 and P1 lack some settings, P1 is for low-poly models.

Type: StringAllowed values: v3.0-20250812Default: "v3.1-20260211"
textureOptional

A textured model. Without it, only the shape.

Type: BooleanDefault: true
pbrOptional

Realistic materials with reflections and highlights. Turns the texture on too.

Type: BooleanDefault: true
texture_qualityOptional

Texture quality. HD is more detailed and costs more. HD is available only in versions v3.1, v3.0 and P1.

Type: StringAllowed values: standarddetailedDefault: "standard"
geometry_qualityOptional

Shape quality. Ultra is more detailed, slower and costs more, only in v3.1 and v3.0.

Type: StringAllowed values: standarddetailedDefault: "standard"
face_limitOptional

How many polygons the model has. Not set: chosen automatically. The allowed range depends on the version and settings: 50 to 20,000 for P1, 500 to 20,000 for smart low-poly.

Type: IntegerMinimum: 48Maximum: 2000000
auto_sizeOptional

Scale the model to real-world size in meters. Available only in versions v3.1, v3.0 and P1.

Type: BooleanDefault: false
orientationOptional

Rotation of the finished model: the usual one or as in the source photo. Works only for a model from a photo or from several views, and only with a texture.

Type: StringAllowed values: defaultalign_imageDefault: "default"
quadOptional

A model made of quads, easier to edit and animate. The file will be FBX. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
smart_low_polyOptional

A low-poly model with a clean mesh. Best for simple objects. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
generate_partsOptional

A model made of separate parts. Does not combine with texture, PBR, quads or smart low-poly. Available only in versions v3.1 and v3.0.

Type: BooleanDefault: false
front_urlRequired

Photo of the object from the front. Required.

Type: List (String, uri)Maximum items: 1
left_urlOptional

Photo of the object's left side: the object faces left in the photo, a character shows its left arm to the camera.

Type: List (String, uri)Maximum items: 1
back_urlOptional

Photo of the object from the back.

Type: List (String, uri)Maximum items: 1
right_urlOptional

Photo of the object's right side: the object faces right in the photo, a character shows its right arm to the camera.

Type: List (String, uri)Maximum items: 1
texture_alignmentOptional

How the texture is laid: closer to the photo or closer to the shape of the model.

Type: StringAllowed values: original_imagegeometryDefault: "original_image"
enable_image_autofixOptional

Improve the photo first for a better result.

Type: BooleanDefault: false

Parameters not listed here are not accepted: the response is 422 unknown_setting.

Input

  • Photos are URLs of JPEG or PNG files up to 20 MB.
FieldAcceptsFormatsFilesFile size up to
front_urlImagesjpeg, jpg, png120 MB
left_urlImagesjpeg, jpg, png120 MB
back_urlImagesjpeg, jpg, png120 MB
right_urlImagesjpeg, jpg, png120 MB
How to send files

Request example

Send this JSON to POST /v1/tasks with your API key. To check the price first, send the same JSON to POST /v1/price.

A model from the front and back photos

JSON
{
  "model": "tripo3d",
  "settings": {
    "task_type": "multiview_to_model",
    "front_url": [
      "https://example.com/front.png"
    ],
    "back_url": [
      "https://example.com/back.png"
    ],
    "model_version": "v3.0-20250812"
  }
}

The price is calculated when the task is accepted, currency RUB.

Complete generation example

Output

  • A GLB 3D model file (FBX with quads) and a preview picture.
  • Generation takes several minutes.
KindFormatsHow manyNote
imagepng, jpg, webp0 or 1A preview picture of the model, when Tripo sends one.
documentglb, fbx1The 3D model file: FBX with quad = true, GLB otherwise.

A finished task as GET /v1/tasks/{id} returns it (some fields left out). The caption may sit on the task or on a single file and may be empty; the model picks the file name.

JSON
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Caption of the result: the model and its settings",
    "texts": [],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "image",
        "filename": "image.png",
        "size": 1843200,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      },
      {
        "index": 1,
        "kind": "document",
        "filename": "result.glb",
        "size": 2097152,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/1"
      }
    ]
  }
}
How to read the result and download files

See also

Try Tripo 3.0 through the API

One key opens every CyHUB model. Payment in rubles, and you see the price before the run.

Get an API key