API Конвертировать
Конвертировать 3D-модель в другие форматы файлов — из задачи Meshy или из файла модели.
Создание задачи Convert
Создаёт задачу Convert. Задача выполняется в фоновом режиме. О том, сколько обычно занимает выполнение задачи, см. Время обработки.
Request
curl https://api.meshy.ai/openapi/v1/convert \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["fbx", "stl"]
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Параметры
- Name
- input_task_id
- Type
- string
- Обязательный
- Description
Обязателен, если не отправлен
model_url. ID задачи, в результате которой была создана 3D-модель, например задачи Text to 3D, Image to 3D, Remesh, Resize или Retexture. Задача должна быть создана через API и иметь статусSUCCEEDED.
- Name
- model_url
- Type
- string
- Обязательный
- Description
Обязателен, если не отправлен
input_task_id. Модель для конвертации в виде публичного URL или data URI. Если отправлены оба параметра, Meshy используетinput_task_id.Модель должна быть файлом GLB, glTF, OBJ, FBX или STL размером не более 400 МБ при передаче по URL
httpилиhttps, либо не более 100 МБ в виде data URI. Для data URI используйте MIME typeapplication/octet-stream.Файл размером более 100 МБ также должен соответствовать следующим правилам:
- Файл GLB, glTF, FBX или OBJ может содержать не более 10 000 000 граней. Meshy считает грани как треугольники, поэтому четырёхугольник считается за 2, а сетка, нарисованная несколько раз, считается один раз за каждую копию.
- Файл FBX должен быть в бинарном формате FBX версии 7.1 или новее.
- Файл GLB или glTF не должен использовать сжатие Draco.
- Name
- target_formats
- Type
- string[]
- Обязательный
- Description
Форматы файлов для генерации. Укажите хотя бы один. Отсутствующий или пустой список вернёт
400.Доступные значения:
glbfbxobjusdzblendstl3mf
Возвращаемые значения
Поле result в ответе содержит ID новой задачи Convert.
Виды ошибок
- Name
400 - Bad Request- Description
Запрос не может быть выполнен. Сообщение об ошибке указывает на обнаруженную проблему. Например:
- Отсутствует параметр: не был отправлен ни
model_url, ниinput_task_id. - Отсутствует
target_formats: параметрtarget_formatsотсутствует или не содержит ни одного формата. - Недопустимая исходная задача:
input_task_idне является успешно выполненной задачей API с файлом модели. - Недопустимый формат модели: файл
model_urlимеет неподдерживаемое расширение. - Недоступный URL: Meshy не может загрузить файл по
model_url. - Слишком большой файл модели: файл
model_urlпревышает 400 МБ при передаче по URLhttpилиhttps, либо превышает 100 МБ в виде data URI. - Слишком много граней: файл
model_urlпревышает 100 МБ и содержит более 10 000 000 граней. Уменьшите количество граней и отправьте файл снова. - ASCII FBX более 100 МБ: файл
model_urlпредставляет собой ASCII FBX размером более 100 МБ. Отправьте его в виде бинарного FBX или GLB. - Нечитаемый файл модели: файл
model_urlпревышает 100 МБ, и Meshy не может прочитать его заголовок. Например, это сжатый с помощью Draco файл GLB или glTF, либо бинарный FBX версии старше 7.1. - Слишком сложный заголовок модели: файл
model_urlпревышает 100 МБ, а его заголовок содержит слишком много сеток, узлов или записей для проверки. Уменьшите количество объектов в файле и отправьте его снова.
Исправьте запрос и отправьте его снова. См. Ошибки.
- Отсутствует параметр: не был отправлен ни
- Name
401 - Unauthorized- Description
API-ключ отсутствует или недействителен. Проверьте заголовок
Authorization.
- Name
402 - Payment Required- Description
Например:
- Недостаточно кредитов: на счёте недостаточно кредитов для выполнения этой задачи, либо достигнут лимит кредитов. Проверьте баланс кредитов и повторите попытку.
- Бесплатный план: для создания задачи требуется платный план. Обновите свой план в настройках подписки, затем повторите попытку.
- Name
403 - Forbidden- Description
input_task_idуказывает на модель с барельефом, которую этот эндпоинт не может конвертировать. Сообщение:This model type does not support this operation. Отправьте другую модель.
- Name
404 - Not Found- Description
input_task_idне соответствует ни одной из ваших задач. Проверьте ID задачи и отправьте запрос снова.
- Name
429 - Too Many Requests- Description
Превышено ограничение частоты запросов. Подождите и повторите попытку. См. Ограничения частоты запросов.
Получить задачу Convert
Возвращает задачу Convert по её ID.
Request
curl https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Удаление задачи Convert
Безвозвратно удаляет задачу Convert, включая её модели и данные. Отменить удаление невозможно.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
Параметры пути
- Name
- id
- Type
- path
- Description
ID задачи, которую нужно удалить.
Статус задачи
Удаление задачи со статусом PENDING возвращает кредиты, потраченные при её создании.
Задачу со статусом IN_PROGRESS удалить нельзя. Запрос вернёт 409 Conflict,
и задача продолжит выполняться. Meshy не возвращает кредиты за задачу, которая уже начала выполняться,
поэтому её удаление означало бы потерю и кредитов, и результата. Дождитесь, пока она перейдёт
в статус SUCCEEDED, FAILED или CANCELED, а затем удалите её.
Удаление задачи с финальным статусом (SUCCEEDED, FAILED или CANCELED)
не возвращает потраченные на неё кредиты.
Возвращает
200 OK, когда задача удалена, или 409 Conflict, когда задача имеет статус
IN_PROGRESS.
Список задач Convert
Возвращает список ваших задач Convert.
Request
curl https://api.meshy.ai/openapi/v1/convert?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
]
Параметры
- Name
- page_num
- Type
- integer
- по умолчанию 1
- Description
Номер страницы, которую нужно вернуть, вплоть до
255. При большем значении возвращается400.
- Name
- page_size
- Type
- integer
- по умолчанию 10
- Description
Количество задач на странице, вплоть до
100.
- Name
- sort_by
- Type
- string
- Description
Порядок сортировки.
Доступные значения:
+created_at: сначала самые старые-created_at: сначала самые новые
Возвращаемые значения
Постраничный список объектов задачи Convert.
Потоковая передача задачи Конвертировать
Передаёт обновления задачи Конвертировать в виде событий Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Message event examples illustrate task progress.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Параметры
- Name
- id
- Type
- path
- Description
ID задачи из ответа на создание.
Возвращает
Поток объектов задачи Конвертировать в виде Server-Sent Events.
Каждое событие содержит полный объект задачи в том же формате, в котором его возвращает эндпоинт Get. Пока задача имеет статус PENDING или IN_PROGRESS, поля результата ещё не содержат значений.
Объект задачи Convert
Объект задачи Convert описывает одно преобразование формата 3D-модели. Он содержит статус, progress и файлы модели при успешном завершении задачи.
Свойства
- Name
- id
- Type
- string
- Description
ID задачи. Рассматривайте его как непрозрачную строку и не полагайтесь на её формат.
- Name
- type
- Type
- string
- Description
Тип задачи, всегда
convert.
- Name
- model_urls
- Type
- object
- Description
Ссылки для скачивания преобразованной модели, по одной на каждый формат файла. Ссылки есть только у форматов, указанных в
target_formats. У формата, который вы не запрашивали, ключ отсутствует, а не содержит пустую строку.
- Name
- progress
- Type
- integer
- Description
Насколько выполнена задача, в процентах. Значение равно
0, пока задача не началась, и100, когда она успешно завершена.
- Name
- status
- Type
- string
- Description
Статус задачи, один из
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDилиCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Количество задач перед этой в очереди. Значение имеет смысл только пока задача находится в статусе
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Время создания задачи, в миллисекундах Unix.
- Name
- started_at
- Type
- timestamp
- Description
Время начала задачи, в миллисекундах Unix. Значение равно
0, пока задача не началась.
- Name
- finished_at
- Type
- timestamp
- Description
Время завершения задачи, в миллисекундах Unix. Значение равно
0, пока задача не завершена.
- Name
- expires_at
- Type
- timestamp
- Description
Время истечения срока действия ссылок для скачивания задачи, в миллисекундах Unix. Значение равно
0, пока задача не завершена.
- Name
- texture_urls
- Type
- array
- Description
Ссылки для скачивания текстурных карт модели при успешном завершении задачи: массив объектов, по одному на каждый набор текстур. Каждый объект содержит ссылку
base_color, а также может содержать ссылкиmetallic,roughness,normal,emissionиmetallic_roughness. Значение равноnull, пока задача не завершена успешно, и является пустым массивом, если у модели нет текстурных карт.
- Name
- task_error
- Type
- object
- Description
Подробности ошибки при сбое задачи. См. Ошибки.
- Name
- consumed_credits
- Type
- integer
- Description
Количество кредитов, использованных задачей, которое равно
1для задачи Convert. Для задачи со статусомFAILEDзначение равно0.