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 generates a downloadable 3D model directly from a text description, with optional textures and PBR materials. Describe the object you want to create, then control mesh topology, face count, texture quality, UVs, orientation, and real-world scaling for downstream 3D workflows.

It supports both triangle and quad meshes, multiple texture-quality tiers, and reproducible geometry and texture generation through dedicated seed controls.


Why Choose This?

  • Text-to-3D generation
    Create complete 3D assets directly from natural-language descriptions.

  • Triangle or quad topology
    Generate standard triangle meshes or enable quad for quad-based topology.

  • Flexible texture quality
    Choose fast, standard, detailed, or extreme texture quality depending on speed, cost, and fidelity requirements.

  • Optional PBR materials
    Generate PBR material maps for more realistic rendering and downstream asset workflows.

  • Face-count control
    Set a target mesh complexity with face_limit, or omit it for adaptive face-count selection.

  • UV export
    Generate UV coordinates for texturing and further editing in 3D software.

  • Real-world scaling
    Enable auto_size to automatically scale the generated model to real-world dimensions in meters.

  • Reproducible generation
    Use separate seeds for geometry, texture, and the internal text-to-image stage.


Parameters

ParameterRequiredDescription
promptYesText description of the 3D object to generate. Maximum 1024 characters.
negative_promptNoOptional description of features or characteristics to avoid. Maximum 255 characters.
textureNoGenerate textures for the model. Set both texture=false and pbr=false for untextured generation. Default: true.
pbrNoGenerate PBR material maps. Enabling PBR also enables texture generation and texture billing. Default: true.
texture_qualityNoTexture quality: fast, standard, detailed, or extreme. Default: standard. fast requires texture_version=v3.5-20260815.
texture_versionNoOptional texture model version. Use v3.5-20260815 when selecting fast texture quality.
face_limitNoOptional mesh face limit from 48 to 50000. When quad=true, use at most 25000 faces. Omit for adaptive face-count selection.
quadNoGenerate quad topology instead of triangle topology. Maximum 25000 faces. Default: false.
delightNoRemove baked-in lighting before texturing when using v3.5-20260815. Default: true.
auto_sizeNoAutomatically scale the generated model to real-world dimensions in meters. Default: false.
export_uvNoGenerate UV coordinates for the model. Default: true.
export_orientationNoOptional forward-axis orientation for the exported model.
model_seedNoOptional seed for reproducible geometry generation.
texture_seedNoOptional seed for reproducible texture generation.
image_seedNoOptional seed for the internal text-to-image stage.

How to Use

  1. Describe the object — Write a clear prompt describing the shape, structure, materials, and important visual features.
  2. Add exclusions optional — Use negative_prompt to specify unwanted characteristics.
  3. Configure textures — Enable or disable texture and pbr, then choose the desired texture quality.
  4. Configure geometry optional — Set face_limit and choose triangle or quad topology.
  5. Configure export options optional — Adjust UV export, orientation, and real-world scaling when needed.
  6. Set seeds optional — Use fixed geometry, texture, or image seeds when reproducibility matters.
  7. Submit — Generate and download the completed 3D model.

Pricing

Pricing is based on whether textures are generated and the selected texture_quality.

Texture ConfigurationPrice
No textures$1.20
Fast textures$1.32
Standard textures$1.32
Detailed textures$1.44
Extreme textures$1.56

The base geometry price is $1.20 per generated model.

When either texture or pbr is enabled:

  • fast or standard adds $0.12
  • detailed adds $0.24
  • extreme adds $0.36

Both texture and pbr default to true, while texture_quality defaults to standard, so the default request costs $1.32.

Set both texture=false and pbr=false for the $1.20 untextured price.

quad, face_limit, seeds, delight, auto_size, export_uv, and export_orientation do not add separate charges.


Best Use Cases

  • Game asset prototyping — Quickly create props, objects, environment assets, and concept meshes from text.
  • Product visualization — Generate 3D concepts for products, furniture, devices, packaging, or industrial objects.
  • 3D concept exploration — Turn early design ideas into editable 3D assets.
  • Textured asset generation — Create models with textures and optional PBR materials for rendering workflows.
  • Quad-mesh workflows — Generate quad topology when downstream editing or mesh workflows benefit from it.
  • 3D content production — Create assets for further refinement in modeling, rendering, animation, or game-development tools.

Pro Tips

  • Describe one primary object clearly instead of combining several unrelated objects in the same prompt.
  • Include shape, materials, proportions, structural details, and visual style when they matter.
  • Use standard texture quality for initial iterations and move to detailed or extreme when higher texture fidelity is needed.
  • Disable both texture and pbr when you only need geometry and want the lowest-cost generation.
  • Use quad=true when quad topology is important for downstream editing, and keep face_limit at or below 25000.
  • Omit face_limit when you want the model to choose mesh complexity adaptively.
  • Enable auto_size when real-world scale in meters matters.
  • Use fixed seeds when comparing prompt, geometry, or texture changes.

Notes

  • prompt is required and supports up to 1024 characters.
  • negative_prompt supports up to 255 characters.
  • face_limit supports 48–50000 faces for triangle meshes.
  • Quad meshes support up to 25000 faces.
  • fast texture quality requires texture_version=v3.5-20260815.
  • Other supported texture versions include v3.0-20250812 and v2.5-20250123.
  • texture and pbr both default to true.
  • export_uv defaults to true.
  • The API returns the primary model download URL.
  • The output may be a GLB or FBX model; no output-format selector is exposed.
  • Optional parameters should be omitted when unused rather than passed as null.

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.