# Rigging automático

> **POST** `/v3/animations/rig`

Agregue automáticamente una plataforma esquelética a un modelo 3D.

## Solicitar parámetros

### Encabezados de solicitud

| Parámetro | Tipo | Requerido | Predeterminado | Descripción |
| :-: | :-: | :-: | :-: | :-: |
| Content-Type | cadena | si | — | `application/json` |
| Authorization | cadena | si | — | `Bearer {api_key}` |

### Cuerpo de solicitud

| Parámetro | Tipo | Requerido | Predeterminado | Descripción |
| :-: | :-: | :-: | :-: | :-: |
| input | cadena | si | — | Fuente del modelo. Acepta un task_id que comienza con `task_` o un file_token que comienza con `file_` |
| model | cadena | No | `rig-v1.0` | Versión del modelo de rigging automático. Valores posibles: `rig-v2.0`, `rig-v1.0` |
| rig_type | cadena | No | `biped` | Tipo de plataforma. Recomendamos llamar primero a `rig-check` para obtener el valor recomendado. Valores posibles: `biped`, `quadruped`, `hexapod`, `octopod`, `avian`, `serpentine`, `aquatic`. |
| spec | cadena | No | `tripo` | Especificaciones de rigging. Valores posibles: `tripo`, `mixamo` |
| out_format | cadena | No | `glb` | Formato de salida. Valores posibles: `glb`, `fbx` |

## Ejemplos de solicitudes

### curl

```bash
curl -X POST https://openapi.tripo3d.ai/v3/animations/rig \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {api_key}" \
  -d '{
    "input": "task_abc123",
    "model": "rig-v2.0",
    "rig_type": "biped",
    "spec": "mixamo",
    "out_format": "glb"
  }'
```

### Python

```python
import requests

url = "https://openapi.tripo3d.ai/v3/animations/rig"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer {api_key}"
}
payload = {
    "input": "task_abc123",
    "model": "rig-v2.0",
    "rig_type": "biped",
    "spec": "mixamo",
    "out_format": "glb"
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())
```

### JavaScript

```javascript
const url = "https://openapi.tripo3d.ai/v3/animations/rig";

const response = await fetch(url, {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer {api_key}"
  },
  body: JSON.stringify({
    input: "task_abc123",
    model: "rig-v2.0",
    rig_type: "biped",
    spec: "mixamo",
    out_format: "glb"
  })
});

const data = await response.json();
console.log(data);
```

## Respuesta

### Respuesta exitosa

```json
{
  "code": 0,
  "data": {
    "task_id": "task_def456"
  }
}
```

### Campos de respuesta

| Parámetro | Tipo | Descripción |
| :-: | :-: | :-: |
| code | entero | Código de estado. `0` indica éxito |
| data.task_id | cadena | Identificador de tarea único utilizado para sondear el progreso y el resultado del rigging automático. |

## Códigos de error

| Código de estado HTTP | Código de error | Descripción | Recomendación |
| :-: | :-: | :-: | :-: |
| 429 | 2000 | Límite de generación excedido | Reduzca la tasa de solicitudes y vuelva a intentarlo más tarde |
| 400 | 2002 | Parámetro de solicitud no admitido | Verifique los nombres de los parámetros del cuerpo de la solicitud y los rangos de valores |
| 400 | 2006 | Tipo de tarea de fuente de entrada no válida | Confirmar que el task_id corresponde a una tarea de modelo 3D |
| 400 | 2007 | El estado de la tarea de origen no es exitoso | Espere hasta que se complete la tarea de origen antes de iniciar la manipulación automática |
| 403 | 2010 | Créditos insuficientes | Recarga créditos y vuelve a intentarlo |
