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

API изменения размера позволяет изменить размер существующих 3D моделей до реальных размеров. Вы можете указать точную высоту, ограничение на самую длинную сторону или позволить ИИ автоматически оценить подходящий размер.


POST/openapi/v1/resize

Создать задачу изменения размера

Этот эндпоинт создает новую задачу изменения размера.

Параметры

  • 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. Формат вывода сохранит оригинальный формат входной модели.

  • 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

Вы превысили ваше ограничение частоты.

Запрос

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"
  }'

Ответ

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

GET/openapi/v1/resize/:id

Получить задачу изменения размера

Этот эндпоинт получает задачу изменения размера по её ID.

Параметры

  • Name
    id
    Type
    path
    Description

    ID задачи изменения размера, которую нужно получить.

Возвращает

Объект задачи изменения размера.

Запрос

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

DELETE/openapi/v1/resize/:id

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

Этот эндпоинт навсегда удаляет задачу изменения размера, включая все связанные модели и данные. Это действие необратимо.

Параметры пути

  • Name
    id
    Type
    path
    Description

    ID задачи изменения размера, которую нужно удалить.

Возвращает

Возвращает 200 OK в случае успеха.

Запрос

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}"

Ответ

// Returns 200 Ok on success.

GET/openapi/v1/resize

Список задач изменения размера

Этот эндпоинт позволяет получить список задач изменения размера.

Параметры

  • 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: Сортировать по времени создания в порядке убывания.

Возвращает

Возвращает список с пагинацией Объектов задачи изменения размера.

Запрос

GET
/openapi/v1/resize
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
  }
]

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

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

Этот эндпоинт передает обновления в реальном времени для задачи изменения размера с использованием Server-Sent Events (SSE).

Параметры

  • Name
    id
    Type
    path
    Description

    Уникальный идентификатор для задачи изменения размера, которую нужно передать.

Возвращает

Возвращает поток Объектов задачи изменения размера как Server-Sent Events.

Для задач со статусом PENDING или IN_PROGRESS поток ответа будет включать только необходимые поля progress и status.

Запрос

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}"

Поток ответа

// 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.