Creative Lab — Collapsible Fidget API

Ubah foto sumber menjadi mainan fidget yang dapat dilipat dan dicetak langsung dalam satu bagian: siluet subjek menjadi serangkaian cincin konsentris bertingkat yang dapat dilipat rata dan direntangkan kembali, dicetak dalam satu bagian tanpa perlu perakitan.

  • POST /openapi/creative-lab/fidget-collapsible/v1

Berbeda dengan endpoint Creative Lab lainnya, endpoint ini tidak memiliki pasangan tahap prototype/build — tidak ada kandidat perantara untuk dipilih, sehingga satu tugas membawa gambar hingga menjadi model 3D secara langsung. Kontrol geometri yang ditampilkan oleh aplikasi web (ukuran, jumlah lapisan, lebar celah, ketebalan dinding, kedalaman ekstrusi, tonjolan) juga bukan bagian dari permintaan: setiap tugas dibangun dengan nilai default sisi server yang sama.


POST/openapi/creative-lab/fidget-collapsible/v1

Buat Tugas Fidget Collapsible

Menghasilkan model fidget collapsible dari foto sumber. Lihat The Collapsible Fidget Task Object untuk bentuk responsnya.

Setiap tugas memerlukan 6 kredit dan mengharuskan paket berbayar.

Parameter

  • Name
    image_url
    Type
    string
    Wajib
    Description

    Foto sumber yang akan diubah Meshy menjadi fidget collapsible. 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 dienkode base64. Contoh data URI: data:image/jpeg;base64,<data gambar Anda yang dienkode base64>.

    Subjek dengan satu garis luar (outline) yang jelas dan tertutup bekerja paling baik — siluetnya adalah yang akan menjadi cincin-cincin. Latar belakang yang ramai, beberapa subjek terpisah, atau bentuk yang sangat tipis dapat menyisakan terlalu sedikit area untuk dinding bersarang (nested walls), dan tugas akan gagal dengan error tugas.

  • Name
    name
    Type
    string
    Description

    Nama tugas opsional untuk keperluan tampilan. Maksimum 100 karakter. Ini hanya label tugas; tidak ada ukiran apa pun pada model.

Returns

Properti result dari respons berisi id tugas dari tugas fidget collapsible yang baru dibuat. Poll endpoint Get a Task atau berlangganan stream sampai tugas mencapai SUCCEEDED, kemudian unduh STL yang dapat dicetak dari model_urls.stl (dan, jika ada, GLB dari model_urls.glb untuk mempratinjaunya terlebih dahulu).

Mode Kegagalan

  • Name
    400 - Bad Request
    Description

    Permintaan tidak dapat diterima. Penyebab umum:

    • Parameter yang hilang: image_url diperlukan.
    • 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 diakses: image_url tidak dapat diunduh (404 atau timeout).
    • Data URI tidak valid: String base64 tidak berformat dengan benar.
    • Konten ditandai: Gambar input ditandai oleh moderation NSFW.
  • Name
    401 - Unauthorized
    Description

    Autentikasi gagal. Silakan periksa kunci API Anda.

  • Name
    402 - Payment Required
    Description

    Akun Anda menggunakan paket gratis — pembuatan tugas pada endpoint ini mengharuskan paket berbayar — atau kredit Anda tidak cukup.

  • 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/fidget-collapsible/v1
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1 \
  -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"
}

GET/openapi/creative-lab/fidget-collapsible/v1/:id

Mengambil Tugas Collapsible Fidget

Ambil tugas collapsible fidget berdasarkan id tugas yang valid. Hanya tugas yang dibuat melalui endpoint ini yang dapat diakses di sini — tugas dari endpoint Creative Lab lainnya, atau yang dibuat di aplikasi web, akan mengembalikan 404.

Lihat The Collapsible Fidget Task Object untuk bentuk responsnya.

Parameter

  • Name
    id
    Type
    path
    Description

    Pengidentifikasi unik untuk tugas collapsible fidget yang akan diambil.

Hasil

Respons berisi objek tugas collapsible fidget.

Request

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

Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-fidget-collapsible",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123512000,
  "expires_at": 1729382712000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}

DELETE/openapi/creative-lab/fidget-collapsible/v1/:id

Menghapus Tugas Collapsible Fidget

Membatalkan tugas collapsible fidget. Jika tugas masih PENDING, kredit yang digunakan saat pembuatan akan dikembalikan. Tugas yang sudah IN_PROGRESS dibatalkan tanpa pengembalian dana (worker mungkin sudah menggunakan sumber daya). Tugas yang sudah mencapai status akhir (SUCCEEDED, FAILED, CANCELED) tidak dapat dibatalkan.

Path Parameters

  • Name
    id
    Type
    path
    Description

    Pengidentifikasi unik untuk tugas collapsible fidget yang akan dibatalkan.

Returns

Mengembalikan 204 No Content jika berhasil dengan isi kosong.

Failure Modes

  • Name
    400 - Bad Request
    Description

    Tugas sudah berada dalam status akhir dan tidak dapat dibatalkan.

  • Name
    404 - Not Found
    Description

    Tugas tidak ada, milik pengguna lain, atau tidak dibuat melalui endpoint ini.

Request

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

Response

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

GET/openapi/creative-lab/fidget-collapsible/v1/:id/stream

Streaming Tugas Fidget Collapsible

Melakukan streaming pembaruan real-time untuk tugas fidget collapsible melalui Server-Sent Events (SSE). Tugas yang tidak ada, atau tidak dibuat melalui endpoint ini, akan mengeluarkan satu event: error payload dengan status_code: 404 dan menutup stream tersebut.

Parameter

  • Name
    id
    Type
    path
    Description

    Pengenal unik untuk tugas fidget collapsible yang akan di-stream.

Returns

Mengembalikan sebuah stream objek tugas Collapsible Fidget sebagai Server-Sent Events. Untuk tugas PENDING atau IN_PROGRESS, stream respons hanya akan menyertakan field progress dan status yang diperlukan.

Request

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

Response Stream

// Error event example (task not found, or not created through this endpoint)
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": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-fidget-collapsible",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123512000,
  "expires_at": 1729382712000,
  "task_error": null,
  "consumed_credits": 6,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}

GET/openapi/creative-lab/fidget-collapsible/v1

Daftar Task Collapsible Fidget

Ambil daftar berpaginasi dari task collapsible fidget Anda. Hanya task yang dibuat melalui endpoint ini yang disertakan.

Parameter Query

  • 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

    Kolom untuk mengurutkan. Nilai yang tersedia:

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

Returns

Mengembalikan daftar berpaginasi dari objek task collapsible fidget.

Request

GET
/openapi/creative-lab/fidget-collapsible/v1
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "creative-lab-fidget-collapsible",
    "name": "",
    "status": "SUCCEEDED",
    "progress": 100,
    "created_at": 1729123456000,
    "started_at": 1729123460000,
    "finished_at": 1729123512000,
    "expires_at": 1729382712000,
    "preceding_tasks": 0,
    "task_error": null,
    "consumed_credits": 6,
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
    }
  }
]

Objek Task Collapsible Fidget

Objek Task Collapsible Fidget adalah unit kerja yang dilacak oleh Meshy untuk mengubah foto sumber menjadi model collapsible fidget yang dapat dicetak langsung (print-in-place). Ini adalah task satu tahap: tidak ada prototipe untuk dirantai, dan siluet perantara bukan bagian dari respons.

Properti

  • Name
    id
    Type
    string
    Description

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

  • Name
    type
    Type
    string
    Description

    Tipe task. Nilainya adalah creative-lab-fidget-collapsible.

  • 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. Kemungkinan nilainya 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. 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 digunakan oleh task ini. Ada saat status task adalah PENDING, IN_PROGRESS, atau SUCCEEDED. Mengembalikan 0 untuk task FAILED (kredit dikembalikan jika gagal).

  • Name
    model_urls
    Type
    object
    Description

    URL yang dapat diunduh untuk model 3D yang dihasilkan. Terisi setelah task berstatus SUCCEEDED: stl selalu ada, glb hanya ada saat render pratinjau berhasil.

    • Name
      stl
      Type
      string
      Description

      URL yang dapat diunduh untuk file STL. Ini adalah hasil akhir yang dapat dicetak — kirim langsung ke slicer.

    • Name
      glb
      Type
      string
      Description

      URL yang dapat diunduh untuk file GLB, untuk melihat pratinjau model di penampil 3D. Warnanya hanya untuk pratinjau: STL tidak memiliki warna, dan fidget yang dicetak mengambil warnanya dari filamen. GLB bersifat best-effort: ketika render pratinjau tidak tersedia, kunci tersebut sepenuhnya dihilangkan dari model_urls, jadi bacalah secara defensif — stl adalah hasil akhirnya dan selalu ada pada task SUCCEEDED.

Example Collapsible Fidget Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-fidget-collapsible",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123512000,
  "expires_at": 1729382712000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}