API для зміни розміру

API для зміни розміру дозволяє змінити розмір існуючих 3D моделей до реальних розмірів. Ви можете вказати точну висоту, обмеження на найдовшу сторону або дозволити AI автоматично оцінити відповідний розмір.


POST/openapi/v1/resize

Створення завдання на зміну розміру

Цей endpoint створює нове завдання на зміну розміру.

Параметри

  • Name
    input_task_id
    Type
    string
    Обов'язковий
    Description

    Ідентифікатор завершеного завдання 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

    Ідентифікатор завдання зміни розміру, яке потрібно видалити.

Повертає

Повертає 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.