API изменения размера
API изменения размера позволяет изменить размер существующих 3D моделей до реальных размеров. Вы можете указать точную высоту, ограничение на самую длинную сторону или позволить ИИ автоматически оценить подходящий размер.
Создать задачу изменения размера
Этот эндпоинт создает новую задачу изменения размера.
Параметры
Только один из input_task_id или model_url является обязательным. Если оба указаны, приоритет имеет input_task_id.
- Name
- input_task_id
- Type
- string
- Обязательный
- Description
ID завершенной задачи Meshy, модель которой вы хотите изменить. Задача должна иметь статус
SUCCEEDED. Формат вывода будет GLB.
- Name
- model_url
- Type
- string
- Обязательный
- Description
Публично доступный URL или Data URI, указывающий на файл 3D модели. Поддерживаемые форматы:
.glb,.gltf,.obj,.fbx,.stl. Для Data URI используйте MIME type:application/octet-stream. Формат вывода сохранит оригинальный формат входной модели.
Точно один режим изменения размера является обязательным: resize_height, resize_longest_side или auto_size. Эти три параметра взаимоисключающие.
- Name
- resize_height
- Type
- number
- Description
Изменить размер модели до определенной высоты, измеренной в метрах.
- Name
- resize_longest_side
- Type
- number
- Description
Изменить размер модели так, чтобы ее самая длинная сторона соответствовала этому значению, измеренному в метрах. Соотношение сторон сохраняется.
- Name
- auto_size
- Type
- boolean
- Description
Если установлено значение
true, сервис использует AI vision для автоматической оценки реальной высоты объекта и изменения размера модели соответственно. Начало координат по умолчанию будетbottom, еслиorigin_atне задан явно.
- Name
- origin_at
- Type
- string
- по умолчанию bottom
- Description
Положение начала координат после изменения размера.
Доступные значения:
bottom,center.
Возвращает
Свойство result ответа содержит id вновь созданной задачи изменения размера.
Режимы отказа
400 - Bad Request
Запрос был неприемлем. Общие причины:
- Отсутствует параметр: Должен быть указан либо
model_url, либоinput_task_id. - Отсутствует режим изменения размера: Должен быть указан хотя бы один из
resize_height,resize_longest_sideилиauto_size. - Взаимоисключающие параметры:
resize_height,resize_longest_sideиauto_sizeне могут быть объединены. - Недопустимая входная задача:
input_task_idдолжен ссылаться на успешную задачу. - Недопустимый формат модели:
model_urlуказывает на файл с неподдерживаемым расширением. - Недоступный URL:
model_urlне может быть загружен.
401 - Unauthorized
Аутентификация не удалась. Пожалуйста, проверьте ваш API key.
402 - Payment Required
Недостаточно кредитов для выполнения этой задачи.
429 - Too Many Requests
Вы превысили ваше ограничение частоты.
Запрос
# Simple: resize to a specific height
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"resize_height": 1.8
}'
# Advanced: resize longest side with custom origin
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/model.glb",
"resize_longest_side": 2.0,
"origin_at": "center"
}'
Ответ
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Получить задачу изменения размера
Этот эндпоинт получает задачу изменения размера по её ID.
Параметры
- Name
- id
- Type
- path
- Description
ID задачи изменения размера, которую нужно получить.
Возвращает
Объект задачи изменения размера.
Запрос
curl https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Ответ
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?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 задачи изменения размера, которую нужно удалить.
Возвращает
Возвращает 200 OK в случае успеха.
Запрос
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Ответ
// Returns 200 Ok on success.
Список задач изменения размера
Этот эндпоинт позволяет получить список задач изменения размера.
Параметры
- Name
- page_num
- Type
- integer
- по умолчанию 1
- Description
Номер страницы для пагинации.
- Name
- page_size
- Type
- integer
- по умолчанию 10
- Description
Лимит размера страницы. Максимально допустимое количество —
50элементов.
- Name
- sort_by
- Type
- string
- Description
Поле для сортировки. Доступные значения:
+created_at: Сортировать по времени создания в порядке возрастания.-created_at: Сортировать по времени создания в порядке убывания.
Возвращает
Возвращает список с пагинацией Объектов задачи изменения размера.
Запрос
curl https://api.meshy.ai/openapi/v1/resize?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Ответ
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
]
Потоковая передача задачи изменения размера
Этот эндпоинт передает обновления в реальном времени для задачи изменения размера с использованием Server-Sent Events (SSE).
Параметры
- Name
- id
- Type
- path
- Description
Уникальный идентификатор для задачи изменения размера, которую нужно передать.
Возвращает
Возвращает поток Объектов задачи изменения размера как Server-Sent Events.
Для задач со статусом PENDING или IN_PROGRESS поток ответа будет включать только необходимые поля progress и status.
Запрос
curl -N https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Поток ответа
// 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": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Объект задачи изменения размера
Объект задачи изменения размера представляет собой задачу изменения размера.
Свойства
id· string
Уникальный идентификатор задачи.
type· string
Тип задачи. Значение — resize.
model_urls· object
Скачиваемый URL для файла модели с измененным размером. При использовании input_task_id выходной формат всегда GLB. При использовании model_url выходной формат сохраняет оригинальный формат.
progress· integer
Прогресс выполнения задачи (0-100).
status· string
Статус задачи. Возможные значения: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
preceding_tasks· integer
Количество предшествующих задач. Имеет значение только при статусе PENDING.
created_at· timestamp
Временная метка создания задачи, в миллисекундах.
started_at· timestamp
Временная метка начала выполнения задачи, в миллисекундах. 0, если не начато.
finished_at· timestamp
Временная метка завершения задачи, в миллисекундах. 0, если не завершено.
task_error· object
Объект ошибки, если задача не выполнена. Подробнее см. в разделе Ошибки.
consumed_credits· integer
Количество кредитов, потребленных этой задачей (1 кредит за задачу изменения размера). Возвращает 0 для задач со статусом FAILED.