lowpoly будет отключён 30 окт. 2026 г.. Перейдите на другую модель до этих дат, чтобы избежать ошибок в запросах. Все устаревшие функции

API изменения размера

Измените размер 3D-модели до реального размера в метрах. Задайте её высоту или длину самой длинной стороны, либо позвольте Meshy самостоятельно оценить реальную высоту объекта.


POST/openapi/v1/resize

Создать задачу Resize

Создаёт задачу Resize. Задача выполняется в фоновом режиме. О том, сколько обычно занимает выполнение задачи, см. Время обработки.

Request

POST
/openapi/v1/resize
# 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"
  }'

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 или Retexture. Задача должна быть создана через API и иметь статус SUCCEEDED. Meshy возвращает изменённую по размеру модель в виде GLB-файла.

  • Name
    model_url
    Type
    string
    Обязательный
    Description

    Обязателен, если вы не отправляете input_task_id. Модель для изменения размера — публичный URL или data URI. Если отправлены оба, Meshy использует input_task_id.

    Модель должна быть файлом GLB, glTF, OBJ, FBX или STL размером не более 400 МБ по ссылке http или https, либо не более 100 МБ в виде data URI. Для data URI используйте MIME type application/octet-stream.

    Файл размером более 100 МБ также должен соответствовать следующим правилам:

    • Файл GLB, glTF, FBX или OBJ может иметь не более 10 000 000 граней. Meshy считает грани как треугольники, поэтому четырёхугольник считается за 2, а сетка, нарисованная несколько раз, считается один раз за каждую копию.
    • Файл FBX должен быть в бинарном формате FBX 7.1 или новее.
    • Файл GLB или glTF не должен использовать сжатие Draco.

    Файл GLB, OBJ, FBX или STL сохраняет свой формат в результате. Файл .gltf или data URI возвращается в формате GLB.

Отправьте ровно один из параметров resize_height, resize_longest_side или auto_size. Если не отправить ни один из них или отправить больше одного, вернётся 400.

  • Name
    resize_height
    Type
    number
    Description

    Новая высота модели в метрах, больше 0. Отрицательное значение вернёт 400.

  • Name
    resize_longest_side
    Type
    number
    Description

    Новая длина самой длинной стороны модели в метрах, больше 0. Отрицательное значение вернёт 400. Meshy сохраняет соотношение сторон модели.

  • Name
    auto_size
    Type
    boolean
    Description

    Нужно ли оценить реальную высоту объекта с помощью AI-зрения и изменить размер модели в соответствии с ней. Если вы не укажете origin_at, Meshy поместит начало координат внизу.

  • Name
    origin_at
    Type
    string
    по умолчанию bottom
    Description

    Куда поместить начало координат модели после изменения размера: bottom или center.

Возвращаемое значение

Поле result в ответе содержит ID новой задачи Resize.

Режимы сбоя

  • Name
    400 - Bad Request
    Description

    Запрос не может быть выполнен. В сообщении об ошибке указано, какая проблема обнаружена. Например:

    • Отсутствует параметр: не был отправлен ни model_url, ни input_task_id.
    • Отсутствует режим изменения размера: не был отправлен ни один из параметров resize_height, resize_longest_side и auto_size.
    • Взаимоисключающие параметры: в запросе указано более одного из параметров resize_height, resize_longest_side и auto_size. Отправьте только один.
    • Отрицательный размер: resize_height или resize_longest_side имеет отрицательное значение.
    • Недопустимая входная задача: input_task_id не является успешной задачей API с файлом модели.
    • Недопустимый формат модели: файл model_url имеет неподдерживаемое расширение.
    • Недоступный URL: Meshy не может загрузить файл model_url.
    • Файл модели слишком большой: файл model_url превышает 400 МБ по ссылке http или https, либо превышает 100 МБ в виде data URI.
    • Слишком много граней: файл model_url превышает 100 МБ и имеет более 10 000 000 граней. Уменьшите количество граней и отправьте файл снова.
    • ASCII FBX более 100 МБ: файл model_url — это ASCII FBX размером более 100 МБ. Отправьте его в виде бинарного FBX или GLB.
    • Нечитаемый файл модели: файл model_url превышает 100 МБ, и Meshy не может прочитать его заголовок. Например, это GLB или glTF со сжатием Draco, либо бинарный 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

    Вы превысили ограничение частоты запросов. Подождите, затем повторите попытку. См. Ограничения частоты.


GET/openapi/v1/resize/:id

Получить задачу Resize

Возвращает задачу Resize по её ID.

Request

GET
/openapi/v1/resize/:id
curl https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "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 задачи из ответа на создание.

Возвращает

Объект задачи Resize.


DELETE/openapi/v1/resize/:id

Удалить задачу Изменить размер

Безвозвратно удаляет задачу Изменить размер, включая её модели и данные. Отменить удаление нельзя.

Request

DELETE
/openapi/v1/resize/:id
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/resize/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.


GET/openapi/v1/resize

Список задач Изменить размер

Возвращает список ваших задач Изменить размер.

Request

GET
/openapi/v1/resize
curl https://api.meshy.ai/openapi/v1/resize?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "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
    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: сначала новые

Возвращает

Постраничный список объектов задач Изменить размер.


GET/openapi/v1/resize/:id/stream

Потоковая передача задачи Resize

Передаёт обновления задачи Resize в виде событий, отправляемых сервером (SSE).

Request

GET
/openapi/v1/resize/:id/stream
curl -N https://api.meshy.ai/openapi/v1/resize/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": "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 задачи из ответа на создание.

Возвращает

Поток объектов задачи Resize в виде событий Server-Sent Events.

Каждое событие содержит полный объект задачи — в том же виде, в котором его возвращает эндпоинт Get. Пока задача находится в состоянии PENDING или IN_PROGRESS, поля результата ещё не имеют значений.


Объект задачи Resize

Объект задачи Resize описывает одно изменение размера 3D-модели. Он содержит статус, progress и файл модели, когда задача завершается успешно.

Свойства

  • Name
    id
    Type
    string
    Description

    ID задачи. Рассматривайте его как непрозрачную строку и не полагайтесь на её формат.

  • Name
    type
    Type
    string
    Description

    Тип задачи, всегда resize.

  • Name
    model_urls
    Type
    object
    Description

    URL для скачивания файла модели с изменённым размером. Для input_task_id файл всегда в формате GLB. Для model_url файлы GLB, OBJ, FBX или STL сохраняют свой формат, а файл .gltf или Data URI возвращается в формате GLB.

  • 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

    Время истечения срока действия URL для скачивания результатов задачи, в миллисекундах Unix. Значение 0, пока задача не завершена.

  • Name
    texture_urls
    Type
    array
    Description

    URL для скачивания текстурных карт модели, когда задача завершена успешно: массив объектов, по одному на каждый набор текстур. Каждый объект содержит URL base_color, а также может содержать URL metallic, roughness, normal, emission и metallic_roughness. Значение null, пока задача не завершена успешно, и пустой массив, если у модели нет текстурных карт.

  • Name
    task_error
    Type
    object
    Description

    Подробности ошибки, если задача завершилась неудачно. См. Ошибки.

  • Name
    consumed_credits
    Type
    integer
    Description

    Количество кредитов, использованных задачей; для задачи Resize это 1. Для задачи со статусом FAILED значение равно 0.