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

API Конвертировать

Конвертировать 3D-модель в другие форматы файлов — из задачи Meshy или из файла модели.


POST/openapi/v1/convert

Создание задачи Convert

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

Request

POST
/openapi/v1/convert
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 type application/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.

    Доступные значения:

    • glb
    • fbx
    • obj
    • usdz
    • blend
    • stl
    • 3mf

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

Поле 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 МБ при передаче по URL 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 не может прочитать его заголовок. Например, это сжатый с помощью 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

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


GET/openapi/v1/convert/:id

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

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

Request

GET
/openapi/v1/convert/:id
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
}

Параметры

  • Name
    id
    Type
    path
    Description

    ID задачи из ответа на создание.

Возвращает

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


DELETE/openapi/v1/convert/:id

Удаление задачи Convert

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

Request

DELETE
/openapi/v1/convert/:id
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.


GET/openapi/v1/convert

Список задач Convert

Возвращает список ваших задач Convert.

Request

GET
/openapi/v1/convert
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.


GET/openapi/v1/convert/:id/stream

Потоковая передача задачи Конвертировать

Передаёт обновления задачи Конвертировать в виде событий Server-Sent Events (SSE).

Request

GET
/openapi/v1/convert/:id/stream
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.