# Умная UV-развёртка
> **POST** `/v3/mesh/uv`
Заново разворачивает UV 3D-модели и переносит существующие текстуры, риг и анимации на новую раскладку.
Каждая задача стоит **20** кредитов. Результат содержит `model_url` и превью UV-раскладки `uv_render_url`. Входная модель не должна превышать **80 000 эквивалентных треугольников** (четырёхугольник считается за два); более тяжёлые модели принимаются при создании, но задача завершается ошибкой, а кредиты возвращаются.
## Параметры запроса
### Заголовки запросов
| Параметр | Тип | Требуется | По умолчанию | Описание |
| :-: | :-: | :-: | :-: | :-: |
| Content-Type | строка | Да | — | `application/json` |
| Authorization | строка | Да | — | `Bearer {api_key}` |
### Тело запроса
| Параметр | Тип | Требуется | По умолчанию | Описание |
| :-: | :-: | :-: | :-: | :-: |
| input | строка | Да | — | Источник модели. Принимает task_id, file_token или URL |
| model | строка | Нет | `default` | Версия модели умной UV-развёртки. Поддерживается только `default` |
| bake | логическое значение | Нет | `true` | Запекать существующие текстуры в новую UV-раскладку. При `false` возвращается только геометрия с UV |
| export_orientation | строка | Нет | — | Ориентация экспортируемой модели: `+x`, `-x`, `+y` или `-y` |
| compress | строка | Нет | — | Тип сжатия. `geometry`: сжатие meshopt |
## Примеры запросов
### curl
```bash
curl -X POST https://openapi.tripo3d.ai/v3/mesh/uv \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_key}" \
-d '{
"input": "task_abc123",
"bake": true
}'
```
### Python
```python
import requests
url = "https://openapi.tripo3d.ai/v3/mesh/uv"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {api_key}"
}
payload = {
"input": "task_abc123",
"bake": True
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
```
### JavaScript
```javascript
const url = "https://openapi.tripo3d.ai/v3/mesh/uv";
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer {api_key}"
},
body: JSON.stringify({
input: "task_abc123",
bake: true
})
});
const data = await response.json();
console.log(data);
```
## Ответ
### Успешный ответ
```json
{
"code": 0,
"data": {
"task_id": "task_def456"
}
}
```
### Поля ответа
| Параметр | Тип | Описание |
| :-: | :-: | :-: |
| code | целое число | Код состояния. `0` указывает на успех. |
| data.task_id | строка | Уникальный идентификатор задачи для запроса прогресса и результата |
## Коды ошибок
| HTTP Код состояния | Код ошибки | Описание | Рекомендация |
| :-: | :-: | :-: | :-: |
| 429 | 2000 | Превышен лимит генерации | Уменьшите частоту запросов и повторите попытку позже. |
| 400 | 1004 | Недопустимый параметр или входные данные | Проверьте имена и значения параметров и источник входных данных |
| 403 | 2010 | Недостаточно кредитов | Пополните кредиты и повторите попытку. |
Умная UV-развёртка
POST/v3/mesh/uv
Заново разворачивает UV 3D-модели и переносит существующие текстуры, риг и анимации на новую раскладку.
Каждая задача стоит 20 кредитов. Результат содержит model_url и превью UV-раскладки uv_render_url. Входная модель не должна превышать 80 000 эквивалентных треугольников (четырёхугольник считается за два); более тяжёлые модели принимаются при создании, но задача завершается ошибкой, а кредиты возвращаются.
Параметры запроса
Заголовки запросов
Параметр
Тип
Требуется
По умолчанию
Описание
Content-Type
строка
Да
—
application/json
Authorization
строка
Да
—
Bearer {api_key}
Тело запроса
Параметр
Тип
Требуется
По умолчанию
Описание
input
строка
Да
—
Источник модели. Принимает task_id, file_token или URL
model
строка
Нет
default
Версия модели умной UV-развёртки. Поддерживается только default
bake
логическое значение
Нет
true
Запекать существующие текстуры в новую UV-раскладку. При false возвращается только геометрия с UV
export_orientation
строка
Нет
—
Ориентация экспортируемой модели: +x, -x, +y или -y