Creative Lab — Brick Figure API

Ubah foto sumber menjadi minifigur koleksi 3D bergaya bata dalam dua tahap: prototipe menghasilkan gambar konsep bergaya dari foto input Anda, kemudian build mengubah gambar konsep tersebut menjadi model 3D bertekstur. Kedua tahap ini dihubungkan melalui input_task_id.

  • POST /openapi/creative-lab/brick-figure/v1/prototype
  • POST /openapi/creative-lab/brick-figure/v1/build

POST/openapi/creative-lab/brick-figure/v1/prototype

Membuat Brick Figure Prototype Task

Menghasilkan satu gambar konsep bergaya brick dari foto sumber. Task ID yang dikembalikan adalah yang Anda gunakan sebagai input_task_id untuk endpoint build. Lihat The Brick Figure Prototype Task Object untuk bentuk response-nya.

Parameter

  • Name
    image_url
    Type
    string
    Wajib
    Description

    Foto sumber yang akan distilisasi oleh Meshy menjadi brick minifigure. Kami saat ini mendukung format .jpg, .jpeg, .png, dan .webp.

    Ada dua cara untuk menyediakan gambar:

    • URL yang dapat diakses publik: URL yang dapat diakses dari internet publik.
    • Data URI: Data URI gambar yang dikodekan base64. Contoh Data URI: data:image/jpeg;base64,<data gambar Anda yang dikodekan base64>.
  • Name
    name
    Type
    string
    Description

    Nama task opsional untuk keperluan tampilan. Maksimum 100 karakter.

  • Name
    remove_background
    Type
    boolean
    default false
    Description

    Jika disetel ke true, gambar prototipe dikembalikan sebagai PNG RGBA transparan dengan latar belakang dihapus, sehingga Anda dapat menggabungkan subjek ke latar belakang apa pun.

Returns

Properti result pada response berisi id task dari brick figure prototype task yang baru dibuat. Poll endpoint Get a Task atau berlangganan stream hingga task mencapai SUCCEEDED, lalu teruskan ID tersebut ke build endpoint sebagai input_task_id.

Mode Kegagalan

  • Name
    400 - Bad Request
    Description

    Permintaan tidak dapat diterima. Penyebab umum:

    • Parameter hilang: image_url wajib diisi.
    • Format gambar tidak valid: image_url yang diberikan bukan format yang didukung (.jpg, .jpeg, .png, .webp).
    • Dimensi gambar di luar rentang: Gambar terlalu kecil, melebihi ukuran file maksimum, atau melebihi jumlah piksel maksimum.
    • URL tidak dapat dijangkau: image_url tidak dapat diunduh (404 atau timeout).
    • Data URI tidak valid: String base64 rusak/tidak sesuai format.
    • Konten ditandai: Gambar input ditandai oleh moderation NSFW.
  • Name
    401 - Unauthorized
    Description

    Autentikasi gagal. Silakan periksa kunci API Anda.

  • Name
    402 - Payment Required
    Description

    Kredit tidak mencukupi untuk melakukan task ini.

  • Name
    403 - Forbidden
    Description

    Gambar input ditandai karena pelanggaran hak kekayaan intelektual.

  • Name
    429 - Too Many Requests
    Description

    Anda telah melampaui batas laju Anda.

Request

POST
/openapi/creative-lab/brick-figure/v1/prototype
# Stage 1: generate a brick-style concept image
curl https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/prototype \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "image_url": "<your publicly accessible image url or base64-encoded data URI>"
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

POST/openapi/creative-lab/brick-figure/v1/build

Membuat Task Build Brick Figure

Menghasilkan brick figure 3D bertekstur final dari task prototype yang berhasil (succeeded). Build ini menjalankan pipeline image-to-3D yang sama seperti Gambar ke 3D, sehingga format objek respons dan daftar URL output persis sama. Lihat The Brick Figure Build Task Object untuk bentuk respons.

Parameter

  • Name
    input_task_id
    Type
    string
    Wajib
    Description

    Task ID dari sebuah task prototype yang dibuat melalui endpoint OpenAPI yang sama ini. Prototype tersebut harus dibuat dengan kunci API yang sama, harus telah mencapai SUCCEEDED, dan harus telah menghasilkan tepat satu gambar kandidat.

    Task prototype yang dibuat melalui webapp tidak diterima — endpoint build hanya menerima task prototype yang dihasilkan oleh POST /openapi/creative-lab/brick-figure/v1/prototype dan menolak sumber lain mana pun dengan 404.

  • Name
    name
    Type
    string
    Description

    Nama task opsional untuk keperluan tampilan. Maksimal 100 karakter.

Returns

Properti result pada respons berisi id task dari task build brick figure yang baru dibuat. Poll endpoint Get a Task atau berlangganan ke stream sampai task mencapai SUCCEEDED, kemudian unduh GLB bertekstur dari model_urls.glb (atau pasangan OBJ + MTL dari model_urls.obj dan model_urls.mtl jika pipeline hilir Anda lebih memilih OBJ).

Mode Kegagalan

  • Name
    400 - Bad Request
    Description

    Permintaan tidak dapat diterima. Penyebab umum:

    • Parameter hilang: input_task_id wajib diisi.
    • UUID tidak valid: input_task_id bukan UUID yang valid.
    • Parent belum berhasil: Task prototype yang dirujuk belum mencapai SUCCEEDED.
    • Tidak ada kandidat: Task prototype berhasil tetapi tidak menghasilkan gambar kandidat.
  • Name
    401 - Unauthorized
    Description

    Autentikasi gagal. Silakan periksa kunci API Anda.

  • Name
    402 - Payment Required
    Description

    Kredit tidak mencukupi untuk melakukan task ini.

  • Name
    404 - Not Found
    Description

    Task prototype yang dirujuk tidak ada, milik pengguna lain, atau dibuat melalui webapp (hanya task prototype mode API yang dapat dirangkai ke build).

  • Name
    429 - Too Many Requests
    Description

    Anda telah melampaui batas laju Anda.

Request

POST
/openapi/creative-lab/brick-figure/v1/build
# Stage 2: chain build off a succeeded prototype task
curl https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/build \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
  }'

Response

{
  "result": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb"
}

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

Mengambil Task Figur Bata

Mengambil task prototype atau build berdasarkan id task yang valid. Path URL harus sesuai dengan tahap task tersebut — task build yang diambil melalui /prototype/:id akan mengembalikan 404, dan sebaliknya.

Lihat The Brick Figure Prototype Task Object dan The Brick Figure Build Task Object untuk bentuk respons.

Parameter

  • Name
    id
    Type
    path
    Description

    Identifier unik untuk task figur bata yang ingin diambil.

Returns

Respons berisi objek task figur bata. Bentuknya bergantung pada tahap mana yang diminta.

Request

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

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

Prototype Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-brick-figure-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=***"
  ]
}

Build Response

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-brick-figure-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": 30,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}

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

Menghapus Brick Figure Task

Membatalkan brick figure task. Jika task masih berstatus PENDING, kredit yang digunakan pada saat pembuatan akan dikembalikan. Task yang sudah berstatus IN_PROGRESS akan dibatalkan tanpa pengembalian kredit (worker mungkin sudah menggunakan sumber daya). Task yang telah mencapai status akhir (SUCCEEDED, FAILED, CANCELED) tidak dapat dibatalkan.

Path URL harus sesuai dengan tahap (stage) task tersebut — DELETE pada /prototype/:buildId akan menghasilkan 404.

Path Parameters

  • Name
    id
    Type
    path
    Description

    Identifier unik untuk brick figure task yang akan dibatalkan.

Returns

Mengembalikan 204 No Content jika berhasil dengan body kosong.

Failure Modes

  • Name
    400 - Bad Request
    Description

    Task sudah berada dalam status akhir dan tidak dapat dibatalkan.

  • Name
    404 - Not Found
    Description

    Task tidak ada, dimiliki oleh pengguna lain, atau tahapnya (stage) tidak sesuai dengan path URL.

Request

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

Response

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

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

Stream a Brick Figure Task

Melakukan streaming pembaruan real-time untuk tugas brick figure melalui Server-Sent Events (SSE). Path URL harus sesuai dengan tahap tugas — membuka stream di /prototype/:buildId/stream akan mengeluarkan satu payload event: error dengan status_code: 404 dan menutup stream tersebut.

Parameter

  • Name
    id
    Type
    path
    Description

    Pengenal unik untuk tugas brick figure yang akan di-stream.

Returns

Mengembalikan stream objek tugas Brick Figure Prototype atau Brick Figure Build sebagai Server-Sent Events. Setiap frame membawa objek tugas lengkap untuk tahap tersebut — bentuk yang sama dengan yang dikembalikan oleh endpoint Get — sehingga selama tugas berstatus PENDING atau IN_PROGRESS, field output memang belum terisi (null, [] atau {}) dan finished_at bernilai null.

Request

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

Response Stream

// 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.
// Every frame is the full task object; fields not yet populated are null / empty.
// The PENDING frame below is abbreviated to the fields that change.
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-brick-figure-build",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "task_error": null,
  "consumed_credits": 30,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}

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

List Brick Figure Tasks

Ambil daftar terpaginasi dari tugas figur bata Anda untuk satu tahap. Path URL memilih tahap tersebut — /prototype mengembalikan tugas prototipe; /build mengembalikan tugas build. Tugas dari tahap lainnya tidak disertakan dalam respons apa pun.

Path Parameters

  • Name
    stage
    Type
    path
    Wajib
    Description

    Baik prototype maupun build. Koleksi hanya mengembalikan tugas yang tahapnya sesuai dengan URL — mengambil /prototype tidak akan pernah mengembalikan tugas build, dan sebaliknya.

Query Parameters

  • Name
    page_num
    Type
    integer
    default 1
    Description

    Nomor halaman untuk paginasi.

  • Name
    page_size
    Type
    integer
    default 10
    Description

    Batas ukuran halaman. Maksimum yang diizinkan adalah 100 item.

  • Name
    sort_by
    Type
    string
    default -created_at
    Description

    Bidang untuk diurutkan. Nilai yang tersedia:

    • +created_at: Urutkan berdasarkan waktu pembuatan secara menaik.
    • -created_at: Urutkan berdasarkan waktu pembuatan secara menurun.

Returns

Mengembalikan daftar terpaginasi dari objek tugas per tahap — baik objek tugas prototipe figur bata saat menampilkan daftar /prototype atau objek tugas build figur bata saat menampilkan daftar /build.

Request

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

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

Response (List Prototype Tasks)

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "creative-lab-brick-figure-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=***"
    ]
  }
]

Objek Task Prototipe Brick Figure

Objek Task Prototipe Brick Figure adalah unit kerja yang dilacak oleh Meshy untuk menghasilkan gambar konsep bergaya brick dari sebuah foto sumber. Output dari tahap ini dirangkai ke tahap build melalui input_task_id.

Properti

  • Name
    id
    Type
    string
    Description

    Pengenal unik untuk task. Meskipun kami menggunakan UUID yang dapat diurutkan secara-k (k-sortable) sebagai detail implementasi untuk id task, Anda tidak boleh membuat asumsi apa pun tentang format id tersebut.

  • Name
    type
    Type
    string
    Description

    Tipe dari task. Nilainya adalah creative-lab-brick-figure-prototype.

  • Name
    name
    Type
    string
    Description

    Nama task yang diberikan saat task dibuat. String kosong jika tidak ada nama yang diberikan.

  • Name
    status
    Type
    string
    Description

    Status dari task. Nilai yang mungkin adalah salah satu dari PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progress dari task. Jika task belum dimulai, properti ini akan bernilai 0. Setelah task berhasil, nilai ini akan menjadi 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Stempel waktu saat task dibuat, dalam milidetik.

  • Name
    started_at
    Type
    timestamp
    Description

    Stempel waktu saat task dimulai, dalam milidetik. Jika task belum dimulai, properti ini akan bernilai null.

  • Name
    finished_at
    Type
    timestamp
    Description

    Stempel waktu saat task selesai, dalam milidetik. Jika task belum selesai, properti ini akan bernilai null.

  • Name
    expires_at
    Type
    timestamp
    Description

    Stempel waktu saat hasil task kedaluwarsa, dalam milidetik.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Jumlah task yang mendahului.

  • Name
    task_error
    Type
    object
    Description

    Detail kesalahan untuk task yang gagal. Lihat Kesalahan untuk referensi lengkap objek task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Jumlah kredit yang dikonsumsi oleh task ini. Muncul saat status task adalah PENDING, IN_PROGRESS, atau SUCCEEDED. Mengembalikan 0 untuk task FAILED (kredit dikembalikan jika gagal).

  • Name
    image_urls
    Type
    array of strings
    Description

    URL yang dapat diunduh untuk kandidat gambar konsep yang dihasilkan oleh task prototipe ini. Saat ini API selalu mengembalikan tepat satu kandidat; field ini berupa array agar revisi mendatang dapat menampilkan beberapa kandidat tanpa perubahan yang merusak kompatibilitas.

Example Brick Figure Prototype Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-brick-figure-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=***"
  ]
}

Objek Task Pembuatan Figur Bata

Objek Task Pembuatan Figur Bata adalah unit kerja yang dilacak oleh Meshy untuk menghasilkan figur bata 3D bertekstur dari task prototipe yang berhasil. Task ini menjalankan pipeline image-to-3D yang sama yang digunakan oleh Gambar ke 3D, sehingga field output-nya mencerminkan objek task endpoint tersebut.

Properti

  • Name
    id
    Type
    string
    Description

    Pengidentifikasi unik untuk task.

  • Name
    type
    Type
    string
    Description

    Jenis task. Nilainya adalah creative-lab-brick-figure-build.

  • Name
    name
    Type
    string
    Description

    Nama task yang diberikan saat task dibuat. String kosong jika tidak ada nama yang diberikan.

  • Name
    status
    Type
    string
    Description

    Status task. Nilai yang mungkin adalah salah satu dari PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progress task. Jika task belum dimulai, properti ini akan bernilai 0. Setelah task berhasil, nilainya akan menjadi 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Stempel waktu saat task dibuat, dalam milidetik.

  • Name
    started_at
    Type
    timestamp
    Description

    Stempel waktu saat task dimulai, dalam milidetik.

  • Name
    finished_at
    Type
    timestamp
    Description

    Stempel waktu saat task selesai, dalam milidetik.

  • Name
    expires_at
    Type
    timestamp
    Description

    Stempel waktu saat hasil task kedaluwarsa, dalam milidetik.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Jumlah task yang mendahului. Hanya berarti ketika status adalah PENDING.

  • Name
    task_error
    Type
    object
    Description

    Detail kesalahan untuk task yang gagal. Lihat Kesalahan untuk referensi lengkap objek task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Jumlah kredit yang digunakan oleh task ini. Mengembalikan 0 untuk task FAILED (kredit dikembalikan jika gagal).

  • Name
    prompt
    Type
    string
    Description

    Selalu kosong untuk pembuatan figur bata. Ada untuk kompatibilitas lintas endpoint dengan bentuk V2ImageTo3DTaskResponse bersama yang digunakan oleh Gambar ke 3D.

  • Name
    negative_prompt
    Type
    string
    Description

    Selalu kosong untuk pembuatan figur bata. Ada untuk kompatibilitas lintas endpoint.

  • Name
    texture_prompt
    Type
    string
    Description

    Selalu kosong untuk pembuatan figur bata. Ada untuk kompatibilitas lintas endpoint.

  • Name
    texture_image_url
    Type
    string
    Description

    Selalu kosong untuk pembuatan figur bata. Ada untuk kompatibilitas lintas endpoint.

  • Name
    model_urls
    Type
    object
    Description

    URL yang dapat diunduh untuk model 3D yang dihasilkan. Pembuatan figur bata menghasilkan GLB bertekstur beserta pasangan OBJ + MTL untuk pipeline yang lebih menyukai Wavefront OBJ. Bentuk field ini sesuai dengan objek model_urls Gambar ke 3D sehingga penambahan format di masa depan dapat masuk tanpa perubahan yang bersifat breaking change.

    • Name
      glb
      Type
      string
      Description

      URL yang dapat diunduh untuk file GLB bertekstur.

    • Name
      obj
      Type
      string
      Description

      URL yang dapat diunduh untuk file Wavefront OBJ (geometri + UV).

    • Name
      mtl
      Type
      string
      Description

      URL yang dapat diunduh untuk file material MTL pendamping OBJ. Pasangkan dengan obj dan entri dari texture_urls[0].base_color.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL yang dapat diunduh untuk gambar thumbnail dari file model.

  • Name
    texture_urls
    Type
    array
    Description

    Array objek URL tekstur yang dihasilkan oleh task ini. Saat ini berisi satu objek dengan peta warna dasar.

    • Name
      base_color
      Type
      string
      Description

      URL yang dapat diunduh untuk gambar peta warna dasar.

Example Brick Figure Build Task Object

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-brick-figure-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": 30,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}