Tripo3d P2 Text To 3d API Documentation

Tripo3d P2 Text To 3d API Documentation

Playground

Try it on WaveSpeedAI!

Tripo P2 Text-to-3D generates detailed 3D meshes from text prompts, with optional PBR textures, selectable texture quality, and triangle or quad topology for game assets, product visualization, 3D design, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Tripo P2 Text-to-3D creates a downloadable 3D mesh from a text prompt, with optional textures and PBR materials.


Why Choose This?

  • Generate triangle or quad meshes.
  • Choose fast, standard, detailed or extreme texture quality.
  • Control face count, UV export and real-world scaling.

Parameters

ParameterRequiredDescription
promptYesText description of the 3D object to generate. Maximum 1024 characters.
negative_promptNoOptional description of features to avoid. Maximum 255 characters.
textureNoGenerate textures. Disable both texture and pbr for untextured pricing. Default: true.
pbrNoGenerate PBR material maps. Enabling PBR also enables textures and texture billing. Default: true.
texture_qualityNoTexture quality. Fast requires texture_version v3.5-20260815. Default: standard.
texture_versionNoOptional texture model version. Select v3.5-20260815 when using fast quality.
face_limitNoOptional mesh face limit, 48 to 50000. When quad is true, use at most 25000 faces. Omit for adaptive face count.
quadNoGenerate quad rather than triangle topology. Maximum 25000 faces; no additional charge. Default: false.
delightNoRemove baked-in lighting before texturing with v3.5-20260815. Default: true.
auto_sizeNoAuto-scale the model to real-world dimensions in meters. Default: false.
export_uvNoGenerate UV coordinates for the model. Default: true.
export_orientationNoOptional forward axis for the exported model.
model_seedNoOptional seed for geometry generation reproducibility.
texture_seedNoOptional seed for texture generation reproducibility.
image_seedNoOptional seed for the internal text-to-image step.

How to Use

  1. Describe the object in prompt.
  2. Choose texture and PBR options and a texture quality.
  3. Optionally set the face limit and mesh topology.
  4. Submit and download the generated model file.

Pricing

Pricing is per generated 3D model.

Texture ConfigurationPrice
No textures (texture=false and pbr=false)$1.00
Fast or standard textures$1.10
Detailed textures$1.20
Extreme textures$1.30

Billing Rules

  • Base geometry price: $1.00 per request.
  • If either texture or pbr is enabled, add $0.10 for fast/standard, $0.20 for detailed, or $0.30 for extreme textures.
  • Both texture and pbr default to true; texture_quality defaults to standard. The default request costs $1.10.
  • Set both texture and pbr to false for the $1.00 untextured price. Texture quality does not change the price when both are disabled.
  • Quad topology adds no extra charge. Face limit, seeds, delight, auto_size and export options do not add separate charges.

Best Use Cases

  • Game asset prototyping and concept exploration.
  • Product visualization and 3D content workflows.
  • Creating meshes for further editing in 3D software.

Pro Tips

  • Use a clear description or a well-lit image of a single object.
  • Use standard textures for initial iterations and detailed or extreme for higher texture fidelity.
  • For quad meshes, keep face_limit at or below 25000.

Notes

  • The API returns the primary model download URL. The provider may return a GLB or FBX file; no output-format selector is exposed.
  • Fast texture quality requires texture_version=v3.5-20260815. Other supported versions are v3.0-20250812 and v2.5-20250123.
  • face_limit supports 48-50000 for triangle meshes and at most 25000 for quad meshes. Omit it for adaptive selection.
  • Optional parameters should be omitted when unused, rather than passed as null.
  • Provider documentation

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "texture": true,
  "pbr": true,
  "texture_quality": "standard",
  "texture_version": "v3.5-20260815",
  "quad": false,
  "delight": true,
  "auto_size": false,
  "export_uv": true,
  "export_orientation": "+x"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/tripo3d/p2/text-to-3d" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-Text description of the 3D object to generate. Maximum 1024 characters.
negative_promptstringNo-Optional description of features to avoid. Maximum 255 characters.
texturebooleanNotrue-Generate textures. Disable both texture and pbr for untextured pricing.
pbrbooleanNotrue-Generate PBR material maps. Enabling PBR also enables textures and texture billing.
texture_qualitystringNostandardfast, standard, detailed, extremeTexture quality. Fast requires texture_version v3.5-20260815.
texture_versionstringNo-v3.5-20260815, v3.0-20250812, v2.5-20250123Optional texture model version. Select v3.5-20260815 when using fast quality.
face_limitintegerNo-48 ~ 50000Optional mesh face limit, 48 to 50000. When quad is true, use at most 25000 faces. Omit for adaptive face count.
quadbooleanNofalse-Generate quad rather than triangle topology. Maximum 25000 faces; no additional charge.
delightbooleanNotrue-Remove baked-in lighting before texturing with v3.5-20260815.
auto_sizebooleanNofalse-Auto-scale the model to real-world dimensions in meters.
export_uvbooleanNotrue-Generate UV coordinates for the model.
export_orientationstringNo-+x, -x, -y, +yOptional forward axis for the exported model.
model_seedintegerNo--Optional seed for geometry generation reproducibility.
texture_seedintegerNo--Optional seed for texture generation reproducibility.
image_seedintegerNo--Optional seed for the internal text-to-image step.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.statusstringTask status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses.
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.statusstringStatus: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.