Creative Lab — API для брелоків

Перетворіть вихідне фото на медальйон-брелок, придатний для 3D-друку — значок у формі кольорового рельєфу — у два етапи: прототип генерує кольорове концептуальне зображення з вашого вхідного фото, потім збірка перетворює це концептуальне зображення на рельєфну 3D-модель. Два етапи пов'язані через input_task_id.

  • POST /openapi/creative-lab/keychain/v1/prototype
  • POST /openapi/creative-lab/keychain/v1/build

POST/openapi/creative-lab/keychain/v1/prototype

Create a Keychain Prototype Task

Згенерує єдине кольорове концептуальне зображення з вихідного фото. Отриманий ID завдання — це те, що ви передаєте як input_task_id до endpoint збірки. Дивіться Об'єкт завдання прототипу брелока для форми відповіді.

Параметри

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

    Вихідне фото, яке Meshy розфарбує в готове до створення брелока концептуальне зображення. Наразі підтримуються формати .jpg, .jpeg, .png та .webp.

    Існує два способи надати зображення:

    • Публічно доступна URL-адреса: URL-адреса, доступна з публічного інтернету.
    • Data URI: закодоване в base64 зображення у вигляді data URI. Приклад data URI: data:image/jpeg;base64,<ваші закодовані в base64 дані зображення>.
  • Name
    name
    Type
    string
    Description

    Необов'язкова назва завдання для відображення. Максимум 100 символів.

    Це позначає завдання у вашій панелі керування та списках завдань. Це не те, що гравірується на брелоку — для цього використовуйте name_text.

  • Name
    name_text
    Type
    string
    Description

    Текст для гравіювання на брелоку, наприклад ім'я домашньої тварини чи людини. Максимум 10 символів, які рахуються як Unicode-символи, а не байти, тому приймається 10-символьне ім'я китайською, японською чи корейською мовою. Пропустіть це поле, щоб отримати брелок без гравіювання.

    Пробіли з обох боків обрізаються, а невидимі символи форматування видаляються перед використанням тексту. Отримане значення повертається як name_text в об'єкті завдання прототипу, тож ви можете підтвердити, що саме буде вигравіювано, перш ніж платити за етап збірки.

    Гравіювання застосовується тут, на етапі прототипу. Етап збірки успадковує його автоматично і не приймає власного name_text.

  • Name
    remove_background
    Type
    boolean
    за замовчуванням false
    Description

    Якщо встановлено true, зображення прототипу повертається як прозоре RGBA PNG з видаленим фоном, тож ви можете компонувати об'єкт на будь-якому фоні.

    Це контролює лише зображення, яке повертає цей endpoint. Це окремо від опції збірки з такою ж назвою (за замовчуванням true), яка контролює видалення фону перед рельєфуванням.

Повертає

Властивість result відповіді містить id завдання щойно створеного прототипу брелока. Опитуйте endpoint Отримати завдання або підпишіться на потік, доки завдання не досягне SUCCEEDED, після чого передайте цей ID до endpoint збірки як input_task_id.

Режими відмови

  • Name
    400 - Bad Request
    Description

    Запит було неприйнятним. Поширені причини:

    • Відсутній параметр: image_url є обов'язковим.
    • Недійсний формат зображення: наданий image_url не має підтримуваного формату (.jpg, .jpeg, .png, .webp).
    • Розміри зображення поза допустимим діапазоном: зображення занадто мале, перевищує максимальний розмір файлу або максимальну кількість пікселів.
    • Недоступна URL-адреса: image_url не вдалося завантажити (404 або timeout).
    • Недійсний Data URI: рядок base64 має неправильний формат.
    • Занадто довге гравіювання: name_text довше за 10 символів. Запит відхиляється, а не обрізається, тому з вас ніколи не стягнуть плату за брелок з гравіюванням із скороченим ім'ям.
    • Позначений контент: вхідне зображення було позначене модерацією NSFW або інтелектуальної власності, або гравіювання name_text було позначене модерацією NSFW. Гравіювання перевіряється лише на NSFW-контент — перевірка на інтелектуальну власність стосується зображення.
  • Name
    401 - Unauthorized
    Description

    Автентифікація не вдалася. Перевірте свій API-ключ.

  • Name
    402 - Payment Required
    Description

    Недостатньо кредитів для виконання цього завдання.

  • Name
    429 - Too Many Requests
    Description

    Ви перевищили своє обмеження частоти.

Request

POST
/openapi/creative-lab/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept image
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json; charset=utf-8' \
  -d '{
    "image_url": "<your publicly accessible image url or base64-encoded data URI>",
    "name_text": "Luna"
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}
Приклад прототипу
Почніть з вихідного фото, а потім згенеруйте зображення прототипу, яке використовується на етапі збірки брелока.
Вихідне фото, використане як вхідні дані Creative Lab Keychain
Вхідні дані прототипу
Результат прототипу Creative Lab Keychain, згенерований з вихідного фото
Результат прототипу

POST/openapi/creative-lab/keychain/v1/build

Створення Завдання на Побудову Брелока

Генеруйте фінальний 3D-друкований медальйон брелока з успішного прототипного завдання. Побудова запускає конвеєр рельєфу на основі карти глибини на кольоровому концептуальному зображенні прототипу та відправляє один артефакт сітки у форматі, який ви запитуєте. Зверніться до Об'єкт Завдання на Побудову Брелока для форми відповіді.

Параметри

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

    Ідентифікатор завдання прототипу, створеного через цю ж кінцеву точку OpenAPI. Прототип повинен бути створений з тим самим API-ключем, досягти SUCCEEDED і мати рівно одне кандидатське зображення.

    Прототипні завдання, створені через веб-додаток, не приймаються — кінцева точка побудови приймає лише прототипні завдання, створені за допомогою POST /openapi/creative-lab/keychain/v1/prototype і відхиляє будь-яке інше джерело з 404.

  • Name
    name
    Type
    string
    Description

    Необов'язкова назва завдання для відображення. Максимум 100 символів.

options

Необов'язкові параметри налаштування для рельєфної геометрії. Кожне поле має розумне значення за замовчуванням — надсилайте лише ті, які ви хочете перевизначити.

  • Name
    badge_shape
    Type
    string
    за замовчуванням circle
    Description

    Контур силуету медальйона брелока. Доступні значення:

    • circle (за замовчуванням)
    • rounded-rect
    • hexagon
    • shield
    • star
  • Name
    size_mm
    Type
    number
    за замовчуванням 40
    Description

    Довжина ребра обмежувального квадрата брелока, в міліметрах. Діапазон: (0, 400].

  • Name
    relief_height_mm
    Type
    number
    за замовчуванням 2.2
    Description

    Максимальна висота рельєфу над основою, в міліметрах. Діапазон: [0, 20].

  • Name
    relief_offset_mm
    Type
    number
    за замовчуванням 0
    Description

    Вертикальне зміщення, застосоване до рельєфу перед екструзією, в міліметрах. Діапазон: [0, 20].

  • Name
    base_thickness_mm
    Type
    number
    за замовчуванням 0.1
    Description

    Товщина плоскої основи за рельєфом, в міліметрах. Діапазон: [0, 20].

  • Name
    has_closed_back
    Type
    boolean
    за замовчуванням true
    Description

    Чи запечатана задня частина медальйона як закрита поверхня. Встановіть false для відкритої оболонки.

  • Name
    relief_curve
    Type
    string
    за замовчуванням linear
    Description

    Крива передачі, що відображає значення карти глибини на висоту рельєфу. Доступні значення:

    • linear (за замовчуванням)
    • gamma
    • s-curve
  • Name
    curve_param
    Type
    number
    за замовчуванням 1.0
    Description

    Параметр форми для кривої передачі (має значення лише коли relief_curve є gamma). Діапазон: (0, 10].

  • Name
    invert_depth
    Type
    boolean
    за замовчуванням false
    Description

    Інвертувати інтерпретацію карти глибини, щоб темніші області ставали вищим рельєфом.

  • Name
    smoothing
    Type
    number
    за замовчуванням 0.24
    Description

    Сила згладжування, застосована до карти глибини перед вилученням рельєфу. Діапазон: [0, 10].

  • Name
    relief_scale
    Type
    number
    за замовчуванням 1.0
    Description

    Множник вертикального масштабу, застосований поверх relief_height_mm. Діапазон: (0, 10].

  • Name
    depth_threshold
    Type
    number
    за замовчуванням 0.1
    Description

    Низькочастотний поріг для значень карти глибини; все, що нижче цього, обрізається до нуля. Діапазон: [0, 1].

  • Name
    remove_background
    Type
    boolean
    за замовчуванням true
    Description

    Автоматично видаляти фон концептуального зображення прототипу перед рельєфом.

    Відрізняється від параметра прототипу з тією ж назвою (за замовчуванням false), який контролює, чи повертається саме зображення прототипу з прозорістю.

  • Name
    export_resolution
    Type
    integer
    за замовчуванням 512
    Description

    Роздільна здатність сітки, використана для експорту. Діапазон: [64, 2048].

output

Необов'язковий селектор формату передачі. За замовчуванням glb.

  • Name
    format
    Type
    string
    за замовчуванням glb
    Description

    Пакет артефактів, повернутий побудовою. Доступні значення:

    • glb (за замовчуванням) — повертає один model.glb під model_urls.glb.
    • obj — архівує model.obj + model.mtl + texture.png і повертає пакет під model_urls.obj.
    • zip — архівує кожен артефакт, який генерує генератор, і повертає пакет під model_urls.bundle_zip.

Повертає

Властивість result відповіді містить ідентифікатор завдання id новоствореного завдання на побудову брелока. Опитуйте кінцеву точку Отримати Завдання або підпишіться на потік, поки завдання не досягне SUCCEEDED, а потім завантажте артефакт з єдиного запису в model_urls.

Режими Помилок

  • Name
    400 - Bad Request
    Description

    Запит був неприйнятним. Поширені причини:

    • Відсутній параметр: input_task_id є обов'язковим.
    • Недійсний UUID: input_task_id не є дійсним UUID.
    • Батьківське завдання не успішне: Зазначене прототипне завдання ще не досягло SUCCEEDED.
    • Немає кандидата: Прототипне завдання успішне, але не створило кандидатського зображення.
    • Параметри поза діапазоном: Одне з полів options вийшло за межі дозволеного діапазону або набору перерахувань.
  • Name
    401 - Unauthorized
    Description

    Автентифікація не вдалася. Будь ласка, перевірте ваш API-ключ.

  • Name
    402 - Payment Required
    Description

    Недостатньо кредитів для виконання цього завдання.

  • Name
    404 - Not Found
    Description

    Зазначене прототипне завдання не існує, належить іншому користувачу або було створено через веб-додаток (лише прототипні завдання в режимі API переходять у побудову).

  • Name
    429 - Too Many Requests
    Description

    Ви перевищили своє обмеження частоти.

Запит

POST
/openapi/creative-lab/keychain/v1/build
# Stage 2: chain build off a succeeded prototype task
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/build \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "options": {
      "badge_shape": "circle",
      "size_mm": 40,
      "relief_height_mm": 2.5
    },
    "output": {
      "format": "glb"
    }
  }'

Відповідь

{
  "result": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb"
}
Приклад побудови
Завдання на побудову перетворює вибране зображення прототипу в 3D-друковану модель брелока.
Попередній перегляд моделі побудови брелока Creative Lab
Попередній перегляд моделі побудови

GET/openapi/creative-lab/keychain/v1/(prototype|build)/:id

Отримання завдання брелока

Отримайте прототип або завдання збірки, вказавши дійсний id завдання. Шлях URL повинен відповідати стадії завдання — завдання збірки, отримане через /prototype/:id, поверне 404, і навпаки.

Зверніться до Об'єкт завдання прототипу брелока та Об'єкт завдання збірки брелока для формату відповіді.

Параметри

  • Name
    id
    Type
    path
    Description

    Унікальний ідентифікатор завдання брелока для отримання.

Повертає

Відповідь містить об'єкт завдання брелока. Формат залежить від запитаної стадії.

Запит

GET
/openapi/creative-lab/keychain/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
# Prototype
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# Build
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Відповідь прототипу

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-keychain-prototype",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Відповідь збірки

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-keychain-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 20,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***"
  }
}

DELETE/openapi/creative-lab/keychain/v1/(prototype|build)/:id

Видалити завдання брелока

Скасувати завдання брелока. Якщо завдання ще PENDING, кредити, спожиті під час створення, повертаються. Завдання, які вже IN_PROGRESS, скасовуються без повернення (виконавець може вже використовувати ресурси). Завдання, які вже досягли кінцевого стану (SUCCEEDED, FAILED, CANCELED), не можуть бути скасовані.

Шлях URL повинен відповідати стадії завдання — DELETE на /prototype/:buildId повертає 404.

Параметри шляху

  • Name
    id
    Type
    path
    Description

    Унікальний ідентифікатор завдання брелока для скасування.

Повертає

Повертає 204 No Content у разі успіху з порожнім тілом.

Режими відмови

  • Name
    400 - Bad Request
    Description

    Завдання вже знаходиться в кінцевому стані і не може бути скасоване.

  • Name
    404 - Not Found
    Description

    Завдання не існує, належить іншому користувачеві або його стадія не відповідає шляху URL.

Запит

DELETE
/openapi/creative-lab/keychain/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Відповідь

// Returns 204 No Content on success (empty body).

GET/openapi/creative-lab/keychain/v1/(prototype|build)/:id/stream

Трансляція завдання брелока

Трансляція оновлень у реальному часі для завдання брелока через Server-Sent Events (SSE). Шлях URL повинен відповідати етапу завдання — відкриття трансляції на /prototype/:buildId/stream видає один event: error корисне навантаження з status_code: 404 і закриває трансляцію.

Параметри

  • Name
    id
    Type
    path
    Description

    Унікальний ідентифікатор для завдання брелока для трансляції.

Повертає

Повертає потік об'єктів завдань Keychain Prototype або Keychain Build як Server-Sent Events. Для завдань зі статусом PENDING або IN_PROGRESS, потік відповіді включатиме лише необхідні поля progress і status.

Запит

GET
/openapi/creative-lab/keychain/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream
curl -N https://api.meshy.ai/openapi/creative-lab/keychain/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Потік відповіді

// Error event example (wrong stage or task not found)
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-keychain-build",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "task_error": null,
  "consumed_credits": 20,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***"
  }
}

GET/openapi/creative-lab/keychain/v1/(prototype|build)

Перелік завдань брелока

Отримайте пагінований список ваших завдань брелока для одного етапу. Шлях URL вибирає етап — /prototype повертає завдання прототипу; /build повертає завдання збірки. Завдання з іншого етапу не включені в жодну з відповідей.

Параметри шляху

  • Name
    stage
    Type
    path
    Обов'язковий
    Description

    Або prototype, або build. Колекція повертає лише завдання, етап яких відповідає URL — запит /prototype ніколи не повертає завдання збірки і навпаки.

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

  • Name
    page_num
    Type
    integer
    за замовчуванням 1
    Description

    Номер сторінки для пагінації.

  • Name
    page_size
    Type
    integer
    за замовчуванням 10
    Description

    Обмеження розміру сторінки. Максимально дозволено 50 елементів.

  • Name
    sort_by
    Type
    string
    за замовчуванням -created_at
    Description

    Поле для сортування. Доступні значення:

    • +created_at: Сортувати за часом створення у зростаючому порядку.
    • -created_at: Сортувати за часом створення у спадному порядку.

Повертає

Повертає пагінований список об'єктів завдань за етапами — або об'єкт завдання прототипу брелока при переліку /prototype, або об'єкт завдання збірки брелока при переліку /build.

Запит

GET
/openapi/creative-lab/keychain/v1/prototype
# List prototype tasks
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/prototype?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# List build tasks
curl https://api.meshy.ai/openapi/creative-lab/keychain/v1/build?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Відповідь (Перелік завдань прототипу)

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "creative-lab-keychain-prototype",
    "name": "",
    "status": "SUCCEEDED",
    "progress": 100,
    "created_at": 1729123456000,
    "started_at": 1729123460000,
    "finished_at": 1729123486000,
    "expires_at": 1729382686000,
    "preceding_tasks": 0,
    "task_error": null,
    "consumed_credits": 6,
    "image_urls": [
      "https://assets.meshy.ai/***/concept.png?Expires=***"
    ]
  }
]

Об'єкт Keychain Prototype Task

Об'єкт Keychain Prototype Task — це одиниця роботи, яку Meshy відстежує для генерації розфарбованого концептуального зображення з вихідної фотографії. Результат цього етапу передається у етап побудови через input_task_id.

Властивості

  • Name
    id
    Type
    string
    Description

    Унікальний ідентифікатор завдання. Хоча в якості деталі реалізації ми використовуємо для ідентифікаторів завдань k-сортований UUID, вам не слід робити жодних припущень щодо формату id.

  • Name
    type
    Type
    string
    Description

    Тип завдання. Значення — creative-lab-keychain-prototype.

  • Name
    name
    Type
    string
    Description

    Назва завдання, надана при його створенні. Порожній рядок, якщо назву не було вказано.

  • Name
    name_text
    Type
    string
    Description

    Гравіювання, застосоване до цього брелока, після обрізки та видалення невидимих символів форматування. Відсутнє, якщо завдання було створено без name_text. Порівняйте його з тим, що ви надіслали, щоб переконатися, що текст зберігся після кодування вашого HTTP-клієнта.

  • Name
    status
    Type
    string
    Description

    Статус завдання. Можливі значення: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progress завдання. Якщо завдання ще не розпочато, це значення дорівнюватиме 0. Після успішного завершення завдання воно стане 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Мітка часу створення завдання, у мілісекундах.

  • Name
    started_at
    Type
    timestamp
    Description

    Мітка часу початку виконання завдання, у мілісекундах. Якщо завдання ще не розпочато, це значення дорівнюватиме 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Мітка часу завершення завдання, у мілісекундах. Якщо завдання ще не завершено, це значення дорівнюватиме 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Мітка часу закінчення терміну дії результату завдання, у мілісекундах.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Кількість завдань, що передують цьому.

  • Name
    task_error
    Type
    object
    Description

    Деталі помилки для завдань, що завершилися невдало. Дивіться Помилки для повного опису об'єкта task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Кількість кредитів, витрачених на це завдання. Присутнє, якщо статус завдання — PENDING, IN_PROGRESS або SUCCEEDED. Для завдань зі статусом FAILED повертає 0 (кредити повертаються у разі невдачі).

  • Name
    image_urls
    Type
    array of strings
    Description

    URL-адреси для завантаження варіантів концептуального зображення, згенерованих цим prototype-завданням. Наразі API завжди повертає рівно один варіант; поле є масивом, щоб майбутні версії могли надавати декілька варіантів без порушення сумісності.

Example Keychain Prototype Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-keychain-prototype",
  "name": "",
  "name_text": "Luna",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Об'єкт Завдання Створення Брелока

Об'єкт Завдання Створення Брелока — це одиниця роботи, за якою Meshy стежить для генерації фінальної 3D сітки брелока з успішного прототипного завдання. Створення запускає конвеєр рельєфу карти глибини на концептуальному зображенні прототипу та публікує єдиний артефакт сітки у форматі, запитуваному викликачем.

Властивості

  • Name
    id
    Type
    string
    Description

    Унікальний ідентифікатор для завдання.

  • Name
    type
    Type
    string
    Description

    Тип завдання. Значення — creative-lab-keychain-build.

  • Name
    name
    Type
    string
    Description

    Ім'я завдання, надане при створенні завдання. Порожній рядок, якщо ім'я не було надано.

  • Name
    status
    Type
    string
    Description

    Статус завдання. Можливі значення: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Прогрес завдання. Якщо завдання ще не розпочато, ця властивість буде 0. Після успішного завершення завдання, це значення стане 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Мітка часу створення завдання, у мілісекундах.

  • Name
    started_at
    Type
    timestamp
    Description

    Мітка часу початку завдання, у мілісекундах.

  • Name
    finished_at
    Type
    timestamp
    Description

    Мітка часу завершення завдання, у мілісекундах.

  • Name
    expires_at
    Type
    timestamp
    Description

    Мітка часу, коли результат завдання закінчується, у мілісекундах.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Кількість попередніх завдань. Має значення лише коли статус — PENDING.

  • Name
    task_error
    Type
    object
    Description

    Деталі помилки для невдалих завдань. Дивіться Помилки для повної довідки по об'єкту task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Кількість кредитів, спожитих цим завданням. Повертає 0 для завдань зі статусом FAILED (кредити повертаються у разі невдачі).

  • Name
    model_urls
    Type
    object
    Description

    Завантажувані URL-адреси для згенерованого артефакту, ключовані за назвою артефакту. Завжди містить рівно один запис — формат, запитуваний через output.format запиту створення. Ключ відповідає запитуваному формату:

    • Name
      glb
      Type
      string
      Description

      Завантажувана URL-адреса до GLB файлу. Присутня, коли output.format був glb (за замовчуванням).

    • Name
      obj
      Type
      string
      Description

      Завантажувана URL-адреса до zip-архіву, що містить model.obj, model.mtl та texture.png. Присутня, коли output.format був obj.

    • Name
      bundle_zip
      Type
      string
      Description

      Завантажувана URL-адреса до zip-архіву всіх артефактів, які генерує генератор. Присутня, коли output.format був zip.

Example Keychain Build Task Object

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-keychain-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 20,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***"
  }
}