Tripo H3.1 API reference
Accurate 3D shapes and true colors from one product photo
Call Tripo H3.1 from your own code with one PopNow API key. Below are the exact model IDs to send, every input field the model accepts, what each request costs in USD, and a request you can paste into a terminal.
At a glance
- Made by
- Tripo
- Output
- Image
- From
- $0.288 USD per request
Prices are in USD, charged to your separate API wallet. A task reserves the maximum possible charge when accepted and settles actual usage on completion; any remainder is released. Failed tasks are not charged. Call POST /api/v1/jobs/quote for an exact quote before running.
Image to 3D
tripo/h3.1/image-to-3d
Price
| Option | USD |
|---|---|
Default | $0.432 per request |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
image_urlRequired | string | — | — | The picture to turn into a 3D model: one object or character, fully in frame. JPEG, PNG or WebP up to 10 MB. |
generate_textureOptional | boolean | true | — | Paint a texture onto the mesh. On by default; turning it off only removes texturing if generate_pbr is off too. |
generate_pbrOptional | boolean | true | — | Add PBR material maps (metal-roughness and normal). On by default and switches texturing on. |
texture_qualityOptional | string | standard | standard, detailed, extreme, fast | Texture quality: standard (the default), detailed (higher resolution), extreme (8K) or fast (standard size, generated quicker with the v3.5 texture model). detailed and extreme cost more and only apply to textured meshes. |
texture_versionOptional | string | v3.0-20250812 | v3.0-20250812, v3.5-20260815 | Texture model version: v3.0-20250812 (the default) or the newer v3.5-20260815. texture_quality fast and remove_lighting use v3.5. Does not change the price. |
remove_lightingOptional | boolean | true | — | Remove the lighting and shadows baked into the picture before texturing, so the texture reacts cleanly to scene lights. On by default; only takes effect with the v3.5 texture model. Does not change the price. |
geometry_qualityOptional | string | standard | standard, detailed | Geometry detail: standard (the default) or detailed. detailed builds finer surface detail and costs more. |
quad_meshOptional | boolean | false | — | Return four-sided (quad) polygons instead of triangles, for editing in modelling tools; the file then comes back as FBX instead of GLB. Off by default; adds to the price. Ignored when generate_parts is on. |
low_polyOptional | boolean | false | — | Build a low-poly mesh with clean, hand-modelled-style topology instead of a dense scan-like one. Best for simple objects; keep face_limit at 20,000 or below with it. Off by default; adds to the price. |
generate_partsOptional | boolean | false | — | Return the model split into separate, editable parts. Parts are untextured triangle meshes, so the texture options and quad_mesh are ignored and not charged. Off by default; costs more than the textured default. |
face_limitOptional | integer | — | 1000 to 2000000 | Target face count, 1,000 to 2,000,000. Leave empty to let the model decide (often over a million faces). Does not change the price. |
image_autofixOptional | boolean | false | — | Clean up a blurry, noisy or low-resolution picture before generation. Slower. Off by default; does not change the price. |
model_orientationOptional | string | default | default, align_image | default keeps the standard orientation; align_image rotates the model to match the picture. |
texture_alignmentOptional | string | original_image | original_image, geometry | Align the texture to the original picture (the default) or to the generated geometry. |
auto_sizeOptional | boolean | false | — | Scale the mesh to estimated real-world dimensions. Off by default. |
uv_unwrapOptional | boolean | true | — | Unwrap UV coordinates during generation. On by default; turning it off is faster and gives a smaller file, but the mesh then has no UVs for texturing later. Does not change the price. |
seedOptional | integer | — | 0 to 2147483647 | Seed for the geometry step, for reproducible shapes. |
texture_seedOptional | integer | — | 0 to 2147483647 | Seed for the texture step. Keep seed fixed and change this to try new textures on the same shape. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
The example uses PopNow sample files in image_url. Replace them with your own public HTTPS links, uploads or saved assets.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "tripo/h3.1/image-to-3d",
"input": {
"image_url": "https://media.popnow.ai/influencer/examples/marco.webp",
"generate_parts": false,
"low_poly": false,
"quad_mesh": false,
"geometry_quality": "standard",
"texture_quality": "standard",
"generate_pbr": true,
"generate_texture": true
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"Image to 3D
tripo/h3.1/text-to-3d
Price
| Option | USD |
|---|---|
Default | $0.288 per request |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | up to 1,024 characters | Describe the object to build: shape, material, colour, style and scale. One object, fully visible. Up to 1,024 characters. |
negative_promptOptional | string | — | up to 255 characters | What the object should not have, written as a short list. Up to 255 characters. |
generate_textureOptional | boolean | true | — | Paint a texture onto the mesh. On by default; turning it off only removes texturing if generate_pbr is off too. |
generate_pbrOptional | boolean | true | — | Add PBR material maps (metal-roughness and normal). On by default and switches texturing on. |
texture_qualityOptional | string | standard | standard, detailed, extreme, fast | Texture quality: standard (the default), detailed (higher resolution), extreme (8K) or fast (standard size, generated quicker with the v3.5 texture model). detailed and extreme cost more and only apply to textured meshes. |
texture_versionOptional | string | v3.0-20250812 | v3.0-20250812, v3.5-20260815 | Texture model version: v3.0-20250812 (the default) or the newer v3.5-20260815. texture_quality fast and remove_lighting use v3.5. Does not change the price. |
remove_lightingOptional | boolean | true | — | Remove the lighting and shadows baked into the picture before texturing, so the texture reacts cleanly to scene lights. On by default; only takes effect with the v3.5 texture model. Does not change the price. |
geometry_qualityOptional | string | standard | standard, detailed | Geometry detail: standard (the default) or detailed. detailed builds finer surface detail and costs more. |
quad_meshOptional | boolean | false | — | Return four-sided (quad) polygons instead of triangles, for editing in modelling tools; the file then comes back as FBX instead of GLB. Off by default; adds to the price. Ignored when generate_parts is on. |
low_polyOptional | boolean | false | — | Build a low-poly mesh with clean, hand-modelled-style topology instead of a dense scan-like one. Best for simple objects; keep face_limit at 20,000 or below with it. Off by default; adds to the price. |
generate_partsOptional | boolean | false | — | Return the model split into separate, editable parts. Parts are untextured triangle meshes, so the texture options and quad_mesh are ignored and not charged. Off by default; costs more than the textured default. |
face_limitOptional | integer | — | 1000 to 2000000 | Target face count, 1,000 to 2,000,000. Leave empty to let the model decide (often over a million faces). Does not change the price. |
auto_sizeOptional | boolean | false | — | Scale the mesh to estimated real-world dimensions. Off by default. |
uv_unwrapOptional | boolean | true | — | Unwrap UV coordinates during generation. On by default; turning it off is faster and gives a smaller file, but the mesh then has no UVs for texturing later. Does not change the price. |
seedOptional | integer | — | 0 to 2147483647 | Seed for the geometry step, for reproducible shapes. |
image_seedOptional | integer | — | 0 to 2147483647 | Seed for the first step, which draws a reference picture from the prompt. Keep it fixed to keep the same starting picture. |
texture_seedOptional | integer | — | 0 to 2147483647 | Seed for the texture step. Keep seed fixed and change this to try new textures on the same shape. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "tripo/h3.1/text-to-3d",
"input": {
"prompt": "A bright, cheerful scene with soft natural light",
"generate_parts": false,
"low_poly": false,
"quad_mesh": false,
"geometry_quality": "standard",
"texture_quality": "standard",
"generate_pbr": true,
"generate_texture": true
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"
