Hunyuan 3D v3.1 Rapid Text to 3D API
hunyuan-3d/v3.1/rapid/text-to-3dHunyuan 3D v3.1 Rapid Text to 3D turns short object descriptions into 3D assets with geometry and PBR material controls. Focus the prompt on the subject and its defining shapes, then choose a white model or textured result.
Hunyuan 3D v3.1 Rapid Text to 3D API
How to Use API
Submit the input, retain the task_id, and retrieve the completed model files.
Authenticate your request
Send your Vidgo API key with Bearer authentication.
- Endpoint
- POST
https://api.vidgo.ai/api/generate/submit - Authentication
- Authorization: Bearer YOUR_API_KEY
Submit the input
Place model at the root and generation settings inside input.
REQUEST_BODY=$(cat <<'JSON'
{
"model": "hunyuan-3d/v3.1/rapid/text-to-3d",
"input": {
"enable_geometry": true,
"enable_pbr": false,
"prompt": "A thick circular millstone with a central square hole, deep radial grinding grooves on its top face, chipped outer rim and rough stone sides. One solid isolated object."
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"Follow the task
Query the returned task_id until the status is finished or failed.
Status endpoint
GET https://api.vidgo.ai/api/generate/status/{task_id}Query the task and read files when its status is finished.
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "P64XP8KA53VPYTMF",
"status": "running",
"created_time": "2026-09-27T22:07:46"
}
}{
"code": 200,
"data": {
"task_id": "P64XP8KA53VPYTMF",
"status": "finished",
"files": [
{
"file_url": "https://cdn.vidgo.ai/apis/models/hunyuan-3d/v3.1/rapid/text-to-3d/v1/02/20S22FU30TGT0O3G_1.png",
"file_type": "image"
},
{
"file_url": "https://cdn.vidgo.ai/apis/models/hunyuan-3d/v3.1/rapid/text-to-3d/v1/02/20S22FU30TGT0O3G_2.glb",
"file_type": "3d"
}
],
"created_time": "2026-09-27T22:07:46",
"error_message": null,
"progress": 100
}
}Read the generated files
Read every files item for its file_url, file_type, label, and format.
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "hunyuan-3d/v3.1/rapid/text-to-3d",
"input": {
"enable_geometry": true,
"enable_pbr": false,
"prompt": "A thick circular millstone with a central square hole, deep radial grinding grooves on its top face, chipped outer rim and rough stone sides. One solid isolated object."
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
doneAPI Request Parameters
Place generation parameters inside input; keep model and callback_url at the root.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| model | string | Yes | — | hunyuan-3d/v3.1/rapid/text-to-3d |
| input | object | Yes | — | Inputs and controls for this generation. |
| input.prompt | string | Yes | — | Describe the object, shape, and materials in 1–200 characters. |
| input.enable_geometry | boolean | No | — | Set true for a geometry-only white model or false for textured generation. |
| input.enable_pbr | boolean | No | — | Set true to generate PBR materials in textured mode. Geometry mode takes precedence. |
| callback_url | string | No | — | Public HTTP(S) URL for task completion notifications. |
API Response Fields
The task response contains status, progress, and generated files.
| Field | Type | Description |
|---|---|---|
| code | integer | Response code. |
| data.task_id | string | Task identifier. |
| data.status | string | not_started, running, finished, failed |
| data.progress | integer | Generation progress from 0 to 100. |
| data.files | array | Generated model, image, and companion files. |
| data.files[].file_url | string | File download URL. |
| data.files[].file_type | string | 3d, image, or other. |
| data.files[].label | string | File role, such as model_glb or thumbnail. |
| data.files[].format | string | File format, such as glb or png. |
| data.files[].file_name | string | File name when provided. |
| data.files[].file_size | integer | File size in bytes when provided. |
| data.error_message | string | null | Task error details. |
API Task Lifecycle
Use the task state to decide when to check again or read the result.
not_startedThe task has been accepted and is waiting to start.
running3D model generation is in progress. Continue checking the same task.
finishedGeneration is complete. Read files to retrieve the 3D assets.
failedGeneration failed. Read error_message before deciding whether to submit a new request.
API Result Handling
- Keep the current task identifierIf a status request is interrupted, query the same task_id again to recover its latest state.
- Read the generated filesUse file_url and file_name to download each returned asset.
- Inspect a failed taskWhen status is failed, read error_message and review the input and settings before submitting a new generation.
API Specifications
| Item | Value | Description |
|---|---|---|
| Input | prompt | Describe the object, shape, and materials in 1–200 characters. |
| Generation mode | enable_geometry | Set true for a geometry-only white model or false for textured generation. |
| Materials | enable_pbr | Set true to generate PBR materials in textured mode. Geometry mode takes precedence. |
Explore More Hunyuan 3D v3.1 Models
Hunyuan 3D v3.1 Rapid Text to 3D API frequently asked questions
What is the Hunyuan 3D v3.1 Rapid Text to 3D API?
Hunyuan 3D v3.1 Rapid Text to 3D is a Tencent model for generating 3D objects from written descriptions. Describe the object and its defining features in a prompt of up to 200 characters. The geometry switch selects white-model output, while PBR settings guide materials in textured mode. You can call it programmatically or try it from the playground above.
How long can a Hunyuan 3D v3.1 Rapid Text to 3D prompt be?
Use a nonblank prompt of up to 200 characters. Prioritize the object, its defining shape, and its principal material so the description stays focused.
How should I describe a prop for Hunyuan 3D v3.1 Rapid Text to 3D?
Start with one subject and two or three visible traits. For example, describe a wooden treasure chest with curved lid and iron bands, then add the material or color that matters most.
How do I study silhouettes with Hunyuan 3D v3.1 Rapid Text to 3D?
Set enable_geometry to true to generate a white model. Use the preview to inspect the object from different angles and compare the shape of its main parts.
How do I add PBR materials in Hunyuan 3D v3.1 Rapid Text to 3D?
Set enable_geometry to false and enable_pbr to true. Include the intended surface material in the short prompt, then retrieve the model and its returned material files.
When should I choose Pro instead of Hunyuan 3D v3.1 Rapid Text to 3D?
Choose Pro Text to 3D for descriptions up to 1024 characters and a target face count from 40000 to 1500000. Rapid uses a concise 200-character description with geometry and material switches.
How can I iterate on an object with Hunyuan 3D v3.1 Rapid Text to 3D?
Keep the main subject fixed and change one feature per prompt, such as the lid shape, handle position, or surface material. Review the generated assets together to select the direction for further work.
How do I inspect the result of Hunyuan 3D v3.1 Rapid Text to 3D?
Rotate and zoom a returned GLB model in the preview, then download the generated model and companion files. Inspect silhouette, proportions, and materials in your target 3D application.