Saltar al contenido principal
Genere modelos 3D a partir de texto o imágenes utilizando Tripo3D y otros proveedores. Esta es una API asíncrona. La respuesta de creación devuelve una identidad de tarea y, cuando está disponible, también puede incluir un poll_url preferido. Las operaciones 3D públicas se infieren a partir de la forma de la solicitud: las solicitudes solo con prompt se resuelven como text-to-3d, y las solicitudes con image o image_url como image-to-3d. Este endpoint no expone un campo de solicitud operation; no envíes el valor legacy 3d-generation.

Cuerpo de la solicitud

model
string
predeterminado:"tripo-h3.1"
Modelo a usar, por ejemplo tripo-h3.1 o tripo-p1.0. Consulta GET /v1/models?recommended_for=3d antes de depender de un tipo de entrada o formato de salida especifico.
prompt
string
requerido
Descripción de texto del modelo 3D a generar.
image
string
Imagen codificada en Base64 para la generación de imagen a 3D.
image_url
string
URL de la imagen para la generación de imagen a 3D.
format
string
predeterminado:"glb"
Formato de salida: glb, fbx, obj o usdz.
quality
string
predeterminado:"standard"
Nivel de calidad: draft, standard o high.
style
string
Preajuste de estilo para el modelo.
seed
integer
Semilla para una generación reproducible.
user
string
Un identificador único para el usuario final.

Respuesta

id
string
ID de la tarea para consultar el estado.
task_id
string
Alias del identificador de tarea asíncrona cuando el adaptador lo devuelve.
poll_url
string
URL de polling prioritaria cuando está disponible.
status
string
Estado de la tarea: pending, processing, completed o failed.
created
integer
Marca de tiempo Unix de la creación de la tarea.
curl -X POST "https://api.tokenlab.sh/v1/3d/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tripo-h3.1",
    "prompt": "A detailed medieval castle with towers",
    "format": "glb",
    "quality": "high"
  }'
import requests

response = requests.post(
    "https://api.tokenlab.sh/v1/3d/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "tripo-h3.1",
        "prompt": "A detailed medieval castle with towers",
        "format": "glb",
        "quality": "high"
    }
)

task_id = response.json()["id"]
print(f"Task ID: {task_id}")
const response = await fetch('https://api.tokenlab.sh/v1/3d/generations', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk-your-api-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'tripo-h3.1',
    prompt: 'A detailed medieval castle with towers',
    format: 'glb',
    quality: 'high'
  })
});

const data = await response.json();
console.log(`Task ID: ${data.id}`);
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "model":   "tripo-h3.1",
        "prompt":  "A detailed medieval castle with towers",
        "format":  "glb",
        "quality": "high",
    }
    body, _ := json.Marshal(payload)

    req, _ := http.NewRequest("POST", "https://api.tokenlab.sh/v1/3d/generations", bytes.NewBuffer(body))
    req.Header.Set("Authorization", "Bearer sk-your-api-key")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Printf("Task ID: %s\n", result["id"])
}
<?php
$ch = curl_init('https://api.tokenlab.sh/v1/3d/generations');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer sk-your-api-key'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'model' => 'tripo-h3.1',
        'prompt' => 'A detailed medieval castle with towers',
        'format' => 'glb',
        'quality' => 'high'
    ])
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
echo "Task ID: " . $data['id'];
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "created": 1706000000,
  "model": "tripo-h3.1"
}