Ubah prompt teks atau foto sumber menjadi kap lampu yang dapat dicetak 3D dalam dua
tahap: prototipe menghasilkan gambar konsep matte-putih bergaya, lalu
build mengubah gambar konsep tersebut menjadi kap lampu STL berongga (secara opsional
dipasangkan dengan disk dasar untuk perlengkapan sumber cahaya). Kedua tahap ditautkan
melalui input_task_id.
Hasilkan satu gambar konsep putih-matte untuk kap lampu — baik
dari prompt teks (text-to-3D) atau dari foto referensi (image-to-3D).
ID tugas yang dikembalikan adalah yang Anda teruskan sebagai input_task_id ke endpoint
build. Lihat
Objek Tugas Prototipe lampu
untuk bentuk respons.
Parameter
Tepat salah satu dari text atau image_urlwajib diisi. Mengirim keduanya, atau tidak mengirim keduanya, mengembalikan 400.
Name
text
Type
string
Wajib
Description
Prompt teks yang menjelaskan subjek kap lampu yang diinginkan. Wajib ketika image_url dihilangkan. Maksimum 800 karakter.
Name
image_url
Type
string
Wajib
Description
Foto sumber yang digunakan Meshy sebagai referensi visual untuk kap lampu. Wajib ketika text dihilangkan. Saat ini kami 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,<your base64-encoded image data>.
Name
image_subject
Type
string
default character
Description
Petunjuk kategori subjek untuk jalur image-to-3D. Nilai yang tersedia:
character (default) — subjek karakter / objek tunggal (figur, hewan, maskot, dll.).
Nama tugas opsional untuk tujuan tampilan. Maksimum 100 karakter.
Mengembalikan
Properti result dari respons berisi id tugas dari tugas prototipe lampu yang baru dibuat. Poll endpoint Dapatkan Tugas atau berlangganan ke stream hingga tugas mencapai SUCCEEDED, lalu teruskan ID tersebut ke endpoint build sebagai input_task_id.
Mode Kegagalan
Name
400 - Bad Request
Description
Permintaan tidak dapat diterima. Penyebab umum:
Parameter hilang: Tepat salah satu dari text atau image_url wajib diisi.
Keduanya diberikan: Mengirim text dan image_url sekaligus ditolak — keduanya saling eksklusif.
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 salah format.
Konten ditandai: Gambar input ditandai oleh moderation NSFW atau kekayaan intelektual.
Teks terlalu panjang: text melebihi 800 karakter.
image_subject tidak valid: Bukan salah satu dari character / landscape.
Name
401 - Unauthorized
Description
Autentikasi gagal. Harap periksa kunci API Anda.
Name
402 - Payment Required
Description
Kredit tidak cukup untuk melakukan tugas ini.
Name
429 - Too Many Requests
Description
Anda telah melampaui batas laju Anda.
Request
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1 (image-to-3D): generate a matte-white lampshade concept imagecurl https://api.meshy.ai/openapi/creative-lab/lamp/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>", "image_subject": "character" }'# Stage 1 (text-to-3D): generate from a text promptcurl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \ -X POST \ -H "Authorization: Bearer ${YOUR_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "text": "a stylized owl perched on a tree branch under moonlight" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo, then generate the prototype image used by the lamp build stage.
Hasilkan kap lampu final yang dapat dicetak 3D dari tugas prototipe yang
berhasil. Build menjalankan pipeline image-to-3D pada gambar konsep
prototipe, lalu memproses pasca mesh melalui prosesor lampu untuk
membuatnya berongga, meratakan bagian atas, secara opsional memotong alas,
dan (ketika preset fixture dipilih) menghasilkan disk alas terpisah untuk
sumber cahaya. Lihat
Objek Tugas Build Lampu untuk bentuk
respons.
Parameter
Name
input_task_id
Type
string
Wajib
Description
ID tugas dari tugas prototipe yang dibuat melalui endpoint OpenAPI yang sama ini. Prototipe harus dibuat dengan kunci API yang sama, harus telah mencapai SUCCEEDED, dan harus menghasilkan tepat satu gambar kandidat.
Tugas prototipe yang dibuat melalui webapp tidak diterima — endpoint build hanya menerima tugas prototipe yang dihasilkan oleh POST /openapi/creative-lab/lamp/v1/prototype dan menolak sumber lain apa pun dengan 404.
Name
name
Type
string
Description
Nama tugas opsional untuk tujuan tampilan. Maksimum 100 karakter.
options
Parameter penyetelan opsional untuk geometri kap lampu. Setiap kolom memiliki default yang masuk akal — kirim hanya yang ingin Anda timpa.
Name
diameter_mm
Type
number
default 80
Description
Dimensi maksimum target dari kotak pembatas kap lampu, dalam milimeter. Mesh diskalakan secara seragam agar pas. Rentang: [50, 400].
Name
thickness_mm
Type
number
default 1.5
Description
Ketebalan dinding kap lampu berongga, dalam milimeter. Rentang: (0, 10].
Name
cut_amount_percent
Type
number
default 35
Description
Persentase tinggi kap lampu yang diratakan di bagian atas agar cetakan dapat diletakkan di bed. Rentang: [1, 100].
Name
light_source_preset
Type
string
default bambu_mh001_60mm
Description
Preset fixture sumber cahaya yang menentukan apakah (dan apa) disk alas akan dihasilkan bersama kap lampu. Nilai yang tersedia:
bambu_mh001_60mm (default) — menghasilkan disk alas 60 mm yang berukuran sesuai untuk fixture sumber cahaya yang kompatibel. Hasil menyertakan model_urls.base_stl.
none — tanpa fixture, tanpa disk alas. model_urls.base_stl dihilangkan.
Name
fixture_offset_x_mm
Type
number
default 0
Description
Offset horizontal sumbu X dari cutout fixture relatif terhadap pusat kap lampu, dalam milimeter. Hanya bermakna ketika light_source_preset ≠ none. Rentang: [-80, 80].
Name
fixture_offset_z_mm
Type
number
default 0
Description
Offset vertikal sumbu Z dari cutout fixture relatif terhadap bagian bawah kap lampu, dalam milimeter. Rentang: [-80, 80].
Name
rotate_x_deg
Type
number
default 0
Description
Rotasi di sekitar sumbu X yang diterapkan pada mesh yang diimpor sebelum pemrosesan, dalam derajat. Rentang: [-360, 360].
Name
rotate_y_deg
Type
number
default 0
Description
Rotasi di sekitar sumbu Y yang diterapkan pada mesh yang diimpor sebelum pemrosesan, dalam derajat. Rentang: [-360, 360].
Name
rotate_z_deg
Type
number
default 0
Description
Rotasi di sekitar sumbu Z yang diterapkan pada mesh yang diimpor sebelum pemrosesan, dalam derajat. Rentang: [-360, 360].
Name
include_result_json
Type
boolean
default false
Description
Ketika true dan output.format adalah zip, menyertakan result.json milik prosesor lampu (berisi metrik mesh yang terukur + set opsi yang diselesaikan) di dalam bundle. Diabaikan ketika output.format adalah stl.
output
Selector format wire opsional. Default ke stl.
Name
format
Type
string
default stl
Description
Bundle artefak yang dikembalikan oleh build. Nilai yang tersedia:
stl (default) — mengembalikan kap lampu sebagai model_urls.lamp_stl, ditambah model_urls.base_stl ketika light_source_preset ≠ none.
zip — mengemas setiap artefak yang dihasilkan prosesor (lamp.stl, base.stl opsional, result.json opsional) ke dalam satu zip dan mengembalikannya di bawah model_urls.bundle_zip.
Mengembalikan
Properti result dari respons berisi id tugas dari tugas build lampu yang baru dibuat. Poll endpoint Dapatkan Tugas atau berlangganan ke stream hingga tugas mencapai SUCCEEDED, lalu unduh artefak dari model_urls.
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: Tugas prototipe yang direferensikan belum mencapai SUCCEEDED.
Tidak ada kandidat: Tugas prototipe berhasil tetapi tidak menghasilkan gambar kandidat.
Opsi di luar rentang: Salah satu kolom options berada di luar rentang atau set enum yang diizinkan.
Name
401 - Unauthorized
Description
Autentikasi gagal. Harap periksa kunci API Anda.
Name
402 - Payment Required
Description
Kredit tidak mencukupi untuk melakukan tugas ini.
Name
404 - Not Found
Description
Tugas prototipe yang direferensikan tidak ada, milik pengguna lain, atau dibuat melalui webapp (hanya tugas prototipe mode API yang dapat dirangkai ke build).
Mengambil tugas prototipe atau build berdasarkan id tugas yang valid. Path URL
harus sesuai dengan tahap tugas — tugas build yang diambil melalui
/prototype/:id mengembalikan 404, dan sebaliknya.
Batalkan tugas lampu. Jika tugas masih PENDING, kredit yang digunakan
saat pembuatan akan dikembalikan. Tugas yang sudah IN_PROGRESS akan
dibatalkan tanpa pengembalian dana (worker mungkin sudah menggunakan Sumber Daya).
Tugas yang sudah mencapai status terminal (SUCCEEDED, FAILED,
CANCELED) tidak dapat dibatalkan.
Path URL harus cocok dengan tahap tugas — DELETE pada
/prototype/:buildId mengembalikan 404.
Parameter Path
Name
id
Type
path
Description
Pengidentifikasi unik untuk tugas lampu yang akan dibatalkan.
Mengembalikan
Mengembalikan 204 No Content jika berhasil dengan body kosong.
Mode Kegagalan
Name
400 - Bad Request
Description
Tugas sudah berada dalam status terminal dan tidak dapat dibatalkan.
Name
404 - Not Found
Description
Tugas tidak ada, milik pengguna lain, atau tahapnya tidak cocok dengan path URL.
Streaming pembaruan real-time untuk tugas lampu melalui Server-Sent Events (SSE).
Path URL harus cocok dengan tahap tugas — membuka stream di
/prototype/:buildId/stream menghasilkan satu payload event: error dengan
status_code: 404 dan menutup stream.
Parameter
Name
id
Type
path
Description
Pengidentifikasi unik untuk tugas lampu yang akan di-stream.
Mengembalikan
Mengembalikan stream objek tugas Prototipe lampu
atau Build lampu sebagai
Server-Sent Events. Untuk tugas PENDING atau IN_PROGRESS, stream respons
hanya akan menyertakan field progress dan status yang diperlukan.
// Error event example (wrong stage or task not found)event: errordata: {"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: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 30,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?Expires=***" }}
Ambil daftar tugas lampu Anda yang dipaginasi untuk satu tahap. Path
URL memilih tahap — /prototype mengembalikan tugas prototipe; /build
mengembalikan tugas build. Tugas dari tahap lain tidak disertakan dalam
respons mana pun.
Parameter Path
Name
stage
Type
path
Wajib
Description
Salah satu dari prototype atau build. Koleksi ini hanya mengembalikan tugas
yang tahapnya cocok dengan URL — mengambil /prototype tidak pernah mengembalikan
tugas build dan sebaliknya.
Parameter Kueri
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 50 item.
Name
sort_by
Type
string
default -created_at
Description
Bidang untuk mengurutkan. Nilai yang tersedia:
+created_at: Urutkan berdasarkan waktu pembuatan secara menaik.
-created_at: Urutkan berdasarkan waktu pembuatan secara menurun.
Objek Tugas Prototipe lampu adalah unit kerja yang dilacak oleh Meshy untuk
menghasilkan gambar konsep putih matte bergaya dari prompt teks
atau foto sumber. Output dari tahap ini dirangkai ke
tahap build melalui input_task_id.
Properti
Name
id
Type
string
Description
Pengidentifikasi unik untuk tugas. Meskipun kami menggunakan UUID yang k-sortable untuk id tugas sebagai detail implementasi, Anda tidak boleh membuat asumsi apa pun tentang format id.
Name
type
Type
string
Description
Jenis tugas. Nilainya adalah creative-lab-lamp-prototype.
Name
name
Type
string
Description
Nama tugas yang diberikan saat tugas dibuat. String kosong jika tidak ada nama yang diberikan.
Name
status
Type
string
Description
Status tugas. Nilai yang mungkin adalah salah satu dari PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress tugas. Jika tugas belum dimulai, properti ini akan bernilai 0. Setelah tugas berhasil, nilainya akan menjadi 100.
Name
created_at
Type
timestamp
Description
Stempel waktu saat tugas dibuat, dalam milidetik.
Stempel waktu merepresentasikan jumlah milidetik yang telah berlalu sejak 1 Januari 1970 UTC, mengikuti
standar RFC 3339.
Misalnya, Jumat, 1 September 2023 12:00:00 PM GMT direpresentasikan sebagai 1693569600000. Ini berlaku
untuk semua stempel waktu di Meshy API.
Name
started_at
Type
timestamp
Description
Stempel waktu saat tugas dimulai, dalam milidetik. Jika tugas belum dimulai, properti ini akan bernilai 0.
Name
finished_at
Type
timestamp
Description
Stempel waktu saat tugas selesai, dalam milidetik. Jika tugas belum selesai, properti ini akan bernilai 0.
Name
expires_at
Type
timestamp
Description
Stempel waktu saat hasil tugas kedaluwarsa, dalam milidetik.
Name
preceding_tasks
Type
integer
Description
Jumlah tugas sebelumnya.
Nilai bidang ini hanya bermakna jika status tugas adalah PENDING.
Name
task_error
Type
object
Description
Detail kesalahan untuk tugas yang gagal. Lihat Kesalahan untuk referensi objek task_error lengkap.
Name
consumed_credits
Type
integer
Description
Jumlah kredit yang dikonsumsi oleh tugas ini. Ada saat status tugas adalah PENDING, IN_PROGRESS, atau SUCCEEDED. Mengembalikan 0 untuk tugas FAILED (kredit dikembalikan saat gagal).
Name
image_urls
Type
array of strings
Description
URL yang dapat diunduh untuk kandidat gambar konsep yang dihasilkan oleh tugas prototipe ini. Saat ini API selalu mengembalikan tepat satu kandidat; bidang ini berupa array sehingga revisi mendatang dapat menampilkan beberapa kandidat tanpa perubahan yang merusak kompatibilitas.
Objek Tugas Build lampu adalah unit kerja yang dilacak oleh Meshy untuk
menghasilkan kap lampu akhir yang dapat dicetak 3D dari tugas prototipe yang SUCCEEDED.
Build menjalankan pipeline draf image-to-3D + tekstur pada gambar konsep
prototipe, lalu memproses pasca mesh melalui pemroses lampu untuk
melubangi, meratakan, dan (opsional) memotong dasar fixture.
Properti
Name
id
Type
string
Description
Pengidentifikasi unik untuk tugas.
Name
type
Type
string
Description
Jenis tugas. Nilainya adalah creative-lab-lamp-build.
Name
name
Type
string
Description
Nama tugas yang diberikan saat tugas dibuat. String kosong jika tidak ada nama yang diberikan.
Name
status
Type
string
Description
Status tugas. Nilai yang mungkin adalah salah satu dari PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress tugas. Jika tugas belum dimulai, properti ini akan bernilai 0. Setelah tugas berhasil, nilainya akan menjadi 100.
Name
created_at
Type
timestamp
Description
Stempel waktu saat tugas dibuat, dalam milidetik.
Name
started_at
Type
timestamp
Description
Stempel waktu saat tugas dimulai, dalam milidetik.
Name
finished_at
Type
timestamp
Description
Stempel waktu saat tugas selesai, dalam milidetik.
Name
expires_at
Type
timestamp
Description
Stempel waktu saat hasil tugas kedaluwarsa, dalam milidetik.
Name
preceding_tasks
Type
integer
Description
Jumlah tugas yang mendahului. Bermakna hanya ketika status adalah PENDING.
Name
task_error
Type
object
Description
Detail kesalahan untuk tugas yang gagal. Lihat Kesalahan untuk referensi objek task_error lengkap.
Name
consumed_credits
Type
integer
Description
Jumlah kredit yang dikonsumsi oleh tugas ini. Mengembalikan 0 untuk tugas FAILED (kredit dikembalikan jika gagal).
Name
model_urls
Type
object
Description
URL yang dapat diunduh untuk artefak yang dihasilkan, dikunci berdasarkan nama artefak. Kumpulan kunci bergantung pada output.format dan options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL yang dapat diunduh untuk kap lampu lamp.stl. Ada ketika output.format adalah stl (default).
Name
base_stl
Type
string
Description
URL yang dapat diunduh untuk dasar dudukan base.stl. Ada ketika output.format adalah stldanoptions.light_source_preset bukan none. Dihilangkan ketika preset dudukan adalah none.
Name
bundle_zip
Type
string
Description
URL yang dapat diunduh untuk bundle zip dari setiap artefak yang dihasilkan prosesor (lamp.stl, opsional base.stl, dan — ketika options.include_result_json adalah true — result.json). Ada ketika output.format adalah zip. Ketika bundle_zip ada, lamp_stl / base_stl dihilangkan.