API Creative Lab Collapsible Fidget
Ubah sebuah foto menjadi mainan fidget collapsible yang dapat dicetak langsung tanpa rakitan dalam satu tugas. Siluet subjek menjadi cincin-cincin konsentris bersarang yang dapat dilipat rata dan direntangkan kembali. Mainan ini dicetak dalam satu bagian, tanpa perakitan.
POST /openapi/creative-lab/fidget-collapsible/v1
Berbeda dengan endpoint Creative Lab lainnya, endpoint ini tidak memiliki tahap prototype dan build yang terpisah. Tidak ada gambar kandidat untuk dipilih, sehingga satu tugas mengubah foto tersebut menjadi model 3D.
Permintaan ini juga tidak memiliki pengaturan geometri. Aplikasi web memungkinkan Anda mengatur ukuran, jumlah lapisan, lebar celah, ketebalan dinding, kedalaman ekstrusi, dan tonjolan. Setiap tugas API menggunakan nilai default yang sama untuk semuanya.
Buat tugas Collapsible Fidget
Menghasilkan model collapsible fidget dari sebuah foto. Untuk kolom-kolom tugas ini, lihat Objek tugas Collapsible Fidget.
Setiap tugas berbiaya 6 kredit dan memerlukan paket berbayar.
Request
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"
}
Parameter
- Name
- image_url
- Type
- string
- Wajib
- Description
Foto yang akan diubah menjadi collapsible fidget, berupa URL publik atau data URI (
data:image/jpeg;base64,<data gambar Anda yang dienkode base64>).Gambar harus berupa file JPG, JPEG, PNG, atau WebP dengan ukuran maksimal 20 MB.
Siluet subjek akan menjadi cincin-cincinnya, sehingga subjek dengan satu garis luar yang jelas dan tertutup bekerja paling baik. Latar belakang yang ramai, beberapa subjek terpisah, atau bentuk yang sangat tipis dapat menyisakan terlalu sedikit area untuk dinding-dinding bersarang. Dalam kasus itu, tugas akan gagal.
- Name
- name
- Type
- string
- Description
Nama untuk tugas, hingga 100 karakter. Nama ini akan muncul kembali pada kolom
namemilik tugas, dan Meshy tidak mengukirnya pada model. Nama yang lebih panjang akan mengembalikan400.
Returns
Kolom result menyimpan ID tugas baru. Ambil tugas tersebut atau alirkan (stream) hingga status bernilai SUCCEEDED. Kemudian unduh file STL yang siap cetak dari model_urls.stl. Untuk melihat pratinjau model terlebih dahulu, unduh file GLB dari model_urls.glb jika tersedia.
Mode kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak dapat dijalankan. Contohnya:
image_urltidak ada.- Gambar bukan file JPG, JPEG, PNG, atau WebP.
- Gambar terlalu kecil, lebih dari 20 MB, atau melebihi jumlah piksel maksimum.
- Meshy tidak dapat mengunduh gambar, misalnya karena URL mengembalikan
404atau waktu habis (timeout). - Data URI bukan base64 yang valid.
- Gambar ditandai sebagai NSFW.
Pesan error akan menyebutkan masalah apa yang ditemukan. Perbaiki permintaan, lalu kirim ulang.
- Name
401 - Unauthorized- Description
Kunci API tidak ada atau tidak valid. Periksa header
Authorization.
- Name
402 - Payment Required- Description
Salah satu dari hal berikut berlaku:
- Akun tidak memiliki cukup kredit.
- Kunci API, ruang kerja, atau anggota telah mencapai batas kreditnya.
- Akun menggunakan paket gratis.
Periksa kredit dan paket Anda, lalu coba lagi.
- Name
403 - Forbidden- Description
Tim Anda mengaktifkan IP Filtering, dan Meshy menandai gambar tersebut terkait hak kekayaan intelektual pihak ketiga. Kirim gambar yang hak penggunaannya Anda miliki.
- Name
429 - Too Many Requests- Description
Salah satu batas berikut telah tercapai:
- Anda mengirim lebih banyak permintaan daripada yang diizinkan oleh batas laju Anda. Tunggu beberapa detik, lalu coba lagi. Lihat Batas laju.
- Terlalu banyak tugas Anda yang antre atau sedang berjalan. Tunggu hingga beberapa selesai, lalu coba lagi.
- Pada paket tak terbatas tanpa sisa kredit, Anda telah mencapai jumlah tugas yang dapat berjalan tanpa kredit. Tunggu hingga sebuah tugas selesai, atau tambahkan kredit.
- Name
500 - Internal Server Error- Description
Meshy mengalami kesalahan server, misalnya karena tidak dapat menjalankan pemeriksaan kekayaan intelektual pada gambar. Meshy tidak membuat tugas tersebut, dan mengembalikan kredit apa pun yang telah dikenakan. Coba kirim ulang permintaan.
Mengambil task Collapsible Fidget
Mengembalikan task Collapsible Fidget. Hanya task yang dibuat dengan endpoint ini yang dikembalikan. Task dari endpoint Creative Lab lain, atau yang dibuat di aplikasi web, akan mengembalikan 404.
Untuk field-fieldnya, lihat Objek task Collapsible Fidget.
Request
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=***"
}
}
Parameter
- Name
- id
- Type
- path
- Description
ID task dari respons pembuatan.
Returns
Objek task Collapsible Fidget.
Mode kegagalan
- Name
400 - Bad Request- Description
idbukan ID task yang valid. Kirim IDresultdari respons pembuatan.
- Name
403 - Forbidden- Description
Tim Anda mengaktifkan IP Filtering, dan Meshy menandai gambar task tersebut karena kekayaan intelektual pihak ketiga. Tim pada paket Enterprise tidak mendapatkan error ini. Buat task dari gambar yang hak penggunaannya Anda miliki.
- Name
404 - Not Found- Description
Tidak ada task Collapsible Fidget dengan ID ini yang dimiliki akun Anda, atau task tersebut tidak dibuat dengan endpoint ini. Periksa ID-nya.
- Name
500 - Internal Server Error- Description
Meshy tidak dapat menjalankan pemeriksaan kekayaan intelektual. Coba lagi permintaannya.
Menghapus task Collapsible Fidget
Membatalkan task Collapsible Fidget. Membatalkan task dengan status PENDING akan mengembalikan kreditnya. Task dengan status IN_PROGRESS dibatalkan tanpa pengembalian kredit, karena worker sudah mulai mengerjakannya. Task dengan status akhir (SUCCEEDED, FAILED, atau CANCELED) tidak dapat dibatalkan.
Request
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).
Parameter path
- Name
- id
- Type
- path
- Description
ID dari task yang akan dibatalkan.
Hasil yang dikembalikan
204 No Content dengan body kosong.
Mode kegagalan
- Name
400 - Bad Request- Description
Salah satu dari kondisi berikut berlaku:
idbukan ID task yang valid. Kirimkan IDresultdari respons pembuatan task.- Task sudah memiliki status akhir (
SUCCEEDED,FAILED, atauCANCELED), sehingga tidak dapat dibatalkan.
- Name
404 - Not Found- Description
Tidak ada task Collapsible Fidget dengan ID ini yang dimiliki akun Anda, atau task tersebut tidak dibuat dengan endpoint ini. Periksa kembali ID tersebut.
Streaming Tugas Collapsible Fidget
Melakukan streaming pembaruan tugas Collapsible Fidget sebagai Server-Sent Events (SSE). Jika tugas tidak ada atau tidak dibuat dengan endpoint ini, stream akan mengirim satu event error dengan status_code: 404 lalu ditutup.
Request
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.
// Every frame is the full task object; fields not yet populated are null / empty.
// The following PENDING frame is shortened to the fields that change.
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=***"
}
}
Parameter
- Name
- id
- Type
- path
- Description
ID tugas dari respons pembuatan.
Nilai Kembali
Sebuah stream dari objek tugas Collapsible Fidget. Setiap event berisi objek tugas lengkap, seperti yang dikembalikan oleh Dapatkan Tugas Collapsible Fidget. Selama tugas berstatus PENDING atau IN_PROGRESS, kolom output-nya masih kosong (null, [], atau {}), dan finished_at bernilai null.
Jika IP Filtering memblokir hasil tugas, stream akan mengirim satu event error sebagai penggantinya, dengan status_code yang sama seperti yang akan dikembalikan oleh permintaan get.
Daftar tugas Collapsible Fidget
Mengembalikan tugas Collapsible Fidget Anda, satu halaman pada satu waktu. Hanya tugas yang dibuat dengan endpoint ini yang disertakan.
Request
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=***"
}
}
]
Parameter kueri
- Name
- page_num
- Type
- integer
- default 1
- Description
Halaman yang akan dikembalikan, dari
1hingga255.0mengembalikan halaman pertama. Nilai di luar0hingga255mengembalikan400.
- Name
- page_size
- Type
- integer
- default 10
- Description
Jumlah tugas per halaman, hingga
100. Nilai dari101hingga255mengembalikan 100 tugas, dan0menggunakan nilai default. Nilai di luar0hingga255mengembalikan400.
- Name
- sort_by
- Type
- string
- default -created_at
- Description
Urutan pengurutan.
Nilai yang tersedia:
-created_at: terbaru lebih dulu+created_at: terlama lebih dulu
Hasil
Sebuah array dari objek tugas Collapsible Fidget.
Objek task Collapsible Fidget
Task Collapsible Fidget mengubah foto menjadi model fidget collapsible yang bisa dicetak langsung (print-in-place). Ini adalah task satu tahap, jadi tidak ada task prototype untuk dirangkai sebelumnya. Respons tidak menyertakan siluet yang dibuat Meshy di sepanjang proses.
Properties
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=***"
}
}
- Name
- id
- Type
- string
- Description
ID task. Jangan bergantung pada formatnya.
- Name
- type
- Type
- string
- Description
Jenis task, selalu
creative-lab-fidget-collapsible.
- Name
- name
- Type
- string
- Description
nameyang Anda kirim saat membuat task, atau""jika Anda tidak mengirimkannya.
- Name
- status
- Type
- string
- Description
Status task.
Nilai yang tersedia:
PENDING: menunggu dalam antreanIN_PROGRESS: sedang menghasilkan hasilSUCCEEDED: final, dengan hasilFAILED: final, dengan alasan ditask_errorCANCELED: final, tanpa hasil
- Name
- progress
- Type
- integer
- Description
Persentase pekerjaan yang selesai, dari
0hingga100. Nilainya0sampai task dimulai dan100saat berhasil.
- Name
- created_at
- Type
- timestamp
- Description
Waktu task dibuat, dalam milidetik Unix.
- Name
- started_at
- Type
- timestamp
- Description
Waktu worker mulai mengerjakan task, dalam milidetik Unix.
nullsebelum itu.
- Name
- finished_at
- Type
- timestamp
- Description
Waktu task mencapai status final, dalam milidetik Unix.
nullsebelum itu.
- Name
- expires_at
- Type
- timestamp
- Description
Waktu hasil task kedaluwarsa, dalam milidetik Unix. Nilainya 3 hari setelah
finished_at, atau 3 hari setelahcreated_atsampai task selesai. Untuk akun Enterprise, yang menyimpan hasil API tanpa batas waktu, nilainya sekitar 100 tahun kemudian. Lihat Retensi aset.
- Name
- preceding_tasks
- Type
- integer
- Description
Posisi task dalam antrean selama berstatus
PENDING.1berarti task ini akan dimulai berikutnya.0setelah task keluar dari antrean, dan selalu0dalam hasil daftar (list).
- Name
- task_error
- Type
- object
- Description
Alasan task gagal.
nullkecualistatusadalahFAILED. Lihat Kesalahan.
- Name
- consumed_credits
- Type
- integer
- Description
Jumlah kredit yang dikenakan untuk task, setelah pengembalian dana (jika ada). Permintaan yang mengembalikan error tidak dikenakan biaya. Task yang gagal bernilai
0, karena Meshy mengembalikan kreditnya. Membatalkan hanya mengembalikan kredit task selama statusnya masihPENDING. Jika Meshy tidak dapat membaca biaya yang dikenakan, respons get atau stream akan tidak menyertakan field ini, dan permintaan list akan mengembalikan500. Dalam kasus tersebut, coba ulangi permintaannya.
- Name
- model_urls
- Type
- object
- Description
URL unduhan untuk model 3D, kosong sampai task berhasil. Task yang berhasil selalu memiliki
stl, dan hanya memilikiglbjika Meshy merender pratinjaunya.- Name
stl- Type
- string
- Description
URL unduhan untuk file STL, yaitu file yang akan dicetak. Anda bisa membukanya langsung di slicer.
- Name
glb- Type
- string
- Description
URL unduhan untuk file GLB guna melihat pratinjau model di penampil 3D. Warnanya hanya untuk pratinjau. File STL tidak memiliki warna, sehingga fidget yang dicetak mengambil warnanya dari filamen.
Jika Meshy tidak dapat merender pratinjau,
model_urlstidak memiliki kunciglb, jadi periksa dulu keberadaan kunci tersebut sebelum membacanya. Task dengan statusSUCCEEDEDselalu memilikistl.