http
Base URL: https://openapi.tripo3d.ai/v3
Endpoint: POST /generation/multiview-to-model
Generate a 3D model from multiview images using P Series. Optimized for low-poly output with clean topology.
Note
- This endpoint requires an API Key. Include it in the Authorization header as Bearer {api_key}.
- This is an asynchronous API. After submitting the request, use the Task Query API to poll for results, or configure a Webhook to receive automatic notifications when the task completes.
Request Parameters
Request Body
inputsobject[] | string[]Required
Three formats — use exactly one, do not mix.
- view-key (recommended) — Array of objects; each object has exactly one key among
front,left,back,right. Values may be a URL,file_token, or nested{url}/{file_token}/{object:{bucket,key}}. Order does not matter; the server canonicalizes to [front, left, back, right]. - legacy positional — Exactly 4 strings in order [front, left, back, right]. Use an empty string
""to skip a view. - task_id — Pass the ID of a previous Image to Multiview or Edit Multiview task to reuse its 4-view output. Only
[{"task_id":"<uuid>"}](single-element array) is accepted — do not mix with view-key or positional slots. The source task must besuccesswith typegenerate_multiview_imageoredit_multiview_image.
For view-key and legacy positional, each image value accepts:
- file_token — Upload an image via the File Upload API first, then pass the returned token.
Example:file_abc123 - URL — A publicly accessible direct link to an image.
Example:https://example.com/front.png
Notes
- The front view cannot be omitted. You may omit other views, but at least 2 images are required.
- All images should depict the same object under consistent lighting.
- Formats:
PNG,JPEG,WebP - Recommended resolution: at least 256 × 256 px.
modelstringRequired
P Series model version.
P1-20260311— optimized for low-poly generation.
texture_alignmentstringdefault: original_image
Texture alignment priority.
original_image— prioritize matching the input image colors.geometry— prioritize matching the generated geometry.
orientationstringdefault: default
Model orientation.
default— automatic orientation.align_image— align the model to the input image viewpoint.
Only effective when
texture is true. Has no effect without texture enabled.model_seedinteger
Random seed for geometry generation. Using the same seed with the same input will produce an identical 3D mesh. If not set, a random seed is used each time.
face_limitinteger
Maximum polycount for the output mesh.
Notes
- Supported range: 50 – 20,000
- If omitted, adaptively determined.
For best quality: simple models start from 150 faces, complex models start from 250 faces. Lower values may result in poor generation quality.
texturebooleandefault: true
Whether to generate texture maps for the model. Set to false to get a bare geometry without any textures. Default is true.
pbrbooleandefault: true
Enable PBR material maps (
base_color, metallic, roughness, normal).When
pbr is set to true, texture will be automatically forced to true.texture_seedinteger
Random seed for texture generation. Using the same seed will produce identical textures. If not set, a random seed will be used each time. To get a model with different textures but the same geometry, keep model_seed unchanged and vary texture_seed.
texture_qualitystringdefault: standard
Texture quality level.
standard— balanced quality and speed.detailed— higher fidelity, slower generation.extreme— 8K textures, highest fidelity. Costs additional credits compared to detailed.
auto_sizebooleandefault: false
Whether to automatically scale the generated model to real-world dimensions. When enabled, the model size will be in meters, suitable for AR/VR or game engine scenes. Default is false.
compressstring
Compression type.
geometry— meshopt compression for reduced file size.
Notes
- The following parameters are only valid when
model ≥ v3.0-20250812:texture_quality,geometry_quality,auto_size,quad,smart_low_poly,generate_parts,compress.
export_uvbooleandefault: true
Controls UV unwrapping. Set
false for faster generation and smaller file size.Examples
View-key with URLs
{
"inputs": [
{
"front": "https://example.com/front.png"},
{
"back": "https://example.com/back.png"},
{
"right": "https://example.com/right.png"}
],
"model": "P1-20260311",
"texture": true,
"pbr": true
}View-key with file_tokens
{
"inputs": [
{
"front": "3154b4b0-4647-4032-aa82-827441ae92ef"},
{
"back": "58ea3eab-6a08-4deb-98f9-e60f1802954d"},
{
"right": "584b0e07-8576-4eb4-bf49-2e149e0252f6"}
],
"model": "P1-20260311",
"texture": true,
"pbr": true
}Legacy positional
{
"inputs": [
"https://example.com/front.png",
"",
"https://example.com/back.png",
"https://example.com/right.png"],
"model": "P1-20260311",
"texture": true,
"pbr": true
}From multiview task
{
"inputs": [
{
"task_id": "550e8400-e29b-41d4-a716-446655440000"}
],
"model": "P1-20260311",
"texture": true,
"pbr": true
}Create task
{
"code": 0,
"data": {
"task_id": "task_abc123"}
}Task result
{
"code": 0,
"data": {
"task_id": "task_abc123",
"type": "text_to_model",
"status": "success",
"progress": 100,
"output": {
"model_url": "https://cdn.tripo3d.ai/output/model_pbr.glb",
"rendered_image_url": "https://cdn.tripo3d.ai/output/preview.png"},
"credits_consumed": 100,
"created_at": "2026-04-28T12:00:00Z",
"completed_at": "2026-04-28T12:01:30Z"}
}