Ubah foto sumber menjadi medali gantungan kunci yang dapat dicetak 3D — relief
kedalaman berwarna berbentuk lencana — dalam dua tahap: prototype menghasilkan gambar
konsep berwarna dari foto input Anda, lalu build mengubah gambar konsep tersebut
menjadi model 3D relief. Kedua tahap ditautkan melalui input_task_id.
Hasilkan satu gambar konsep berwarna dari foto sumber. ID tugas yang
dikembalikan adalah yang Anda teruskan sebagai input_task_id ke endpoint build.
Lihat
Objek Tugas Prototipe Gantungan Kunci
untuk bentuk respons.
Parameter
Name
image_url
Type
string
Wajib
Description
Foto sumber untuk diwarnai oleh Meshy menjadi gambar konsep yang siap untuk gantungan kunci. 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 dengan base64. Contoh Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
name
Type
string
Description
Nama tugas opsional untuk tujuan tampilan. Maksimum 100 karakter.
Mengembalikan
Properti result dari respons berisi id tugas dari tugas prototipe gantungan kunci 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 tidak ada: 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 memiliki format yang salah.
Konten ditandai: Gambar input ditandai oleh moderation NSFW atau kekayaan intelektual.
Name
401 - Unauthorized
Description
Autentikasi gagal. Harap periksa kunci API Anda.
Name
402 - Payment Required
Description
Kredit tidak mencukupi untuk melakukan tugas ini.
Name
429 - Too Many Requests
Description
Anda telah melampaui batas laju Anda.
Request
POST
/openapi/creative-lab/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept imagecurl https://api.meshy.ai/openapi/creative-lab/keychain/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"}
Prototype example
Start with a source photo, then generate the prototype image used by the keychain build stage.
Hasilkan medali gantungan kunci final yang dapat dicetak 3D dari tugas
prototipe yang berhasil. Build menjalankan pipeline relief depth-map pada
gambar konsep berwarna milik prototipe dan mengirimkan satu artefak mesh dalam
format yang Anda minta. Lihat
Objek Tugas Build Gantungan Kunci 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/keychain/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 relief. Setiap field memiliki default yang masuk akal — kirim hanya yang ingin Anda timpa.
Name
badge_shape
Type
string
default circle
Description
Siluet outline medali gantungan kunci. Nilai yang tersedia:
circle (default)
rounded-rect
hexagon
shield
star
Name
size_mm
Type
number
default 40
Description
Panjang sisi persegi pembatas gantungan kunci, dalam milimeter. Rentang: (0, 400].
Name
relief_height_mm
Type
number
default 2.2
Description
Tinggi relief maksimum di atas dasar, dalam milimeter. Rentang: [0, 20].
Name
relief_offset_mm
Type
number
default 0
Description
Offset vertikal yang diterapkan ke relief sebelum ekstrusi, dalam milimeter. Rentang: [0, 20].
Name
base_thickness_mm
Type
number
default 0.1
Description
Ketebalan pelat dasar datar di belakang relief, dalam milimeter. Rentang: [0, 20].
Name
has_closed_back
Type
boolean
default true
Description
Apakah bagian belakang medali disegel sebagai permukaan tertutup. Atur ke false untuk shell terbuka.
Name
relief_curve
Type
string
default linear
Description
Kurva transfer yang memetakan nilai depth-map ke tinggi relief. Nilai yang tersedia:
linear (default)
gamma
s-curve
Name
curve_param
Type
number
default 1.0
Description
Parameter bentuk untuk kurva transfer (hanya bermakna ketika relief_curve adalah gamma). Rentang: (0, 10].
Name
invert_depth
Type
boolean
default false
Description
Balik interpretasi depth-map sehingga wilayah yang lebih gelap menjadi relief yang lebih tinggi.
Name
smoothing
Type
number
default 0.24
Description
Kekuatan penghalusan yang diterapkan ke depth map sebelum ekstraksi relief. Rentang: [0, 10].
Name
relief_scale
Type
number
default 1.0
Description
Pengali skala vertikal yang diterapkan di atas relief_height_mm. Rentang: (0, 10].
Name
depth_threshold
Type
number
default 0.1
Description
Ambang low-pass untuk nilai depth-map; apa pun di bawah ini diklem ke nol. Rentang: [0, 1].
Name
remove_background
Type
boolean
default true
Description
Hapus latar belakang gambar konsep prototipe secara otomatis sebelum pembuatan relief.
Name
export_resolution
Type
integer
default 512
Description
Resolusi mesh yang digunakan untuk ekspor. Rentang: [64, 2048].
output
Pemilih wire-format opsional. Default ke glb.
Name
format
Type
string
default glb
Description
Bundel artefak yang dikembalikan oleh build. Nilai yang tersedia:
glb (default) — mengembalikan satu model.glb di bawah model_urls.glb.
obj — men-zip model.obj + model.mtl + texture.png dan mengembalikan bundel di bawah model_urls.obj.
zip — men-zip setiap artefak yang dipancarkan generator dan mengembalikan bundel di bawah model_urls.bundle_zip.
Mengembalikan
Properti result dari respons berisi id tugas dari tugas build gantungan kunci yang baru dibuat. Poll endpoint Dapatkan Tugas atau berlangganan ke stream hingga tugas mencapai SUCCEEDED, lalu unduh artefak dari satu entri di model_urls.
Mode Kegagalan
Name
400 - Bad Request
Description
Permintaan tidak dapat diterima. Penyebab umum:
Parameter hilang: input_task_id diperlukan.
UUID tidak valid: input_task_id bukan UUID yang valid.
Parent belum berhasil: Tugas prototipe yang dirujuk belum mencapai SUCCEEDED.
Tidak ada kandidat: Tugas prototipe berhasil tetapi tidak menghasilkan gambar kandidat.
Opsi di luar rentang: Salah satu field options berada di luar rentang yang diizinkan atau kumpulan enum.
Name
401 - Unauthorized
Description
Autentikasi gagal. Harap periksa kunci API Anda.
Name
402 - Payment Required
Description
Kredit tidak mencukupi untuk menjalankan tugas ini.
Name
404 - Not Found
Description
Tugas prototipe yang dirujuk tidak ada, milik pengguna lain, atau dibuat melalui webapp (hanya tugas prototipe mode API yang dapat dirangkai ke build).
Mengambil tugas prototipe atau build dengan id tugas yang valid. Path URL
harus sesuai dengan tahap tugas — tugas build yang diambil melalui
/prototype/:id mengembalikan 404, dan sebaliknya.
Batalkan tugas gantungan kunci. 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 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 gantungan kunci 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 gantungan kunci melalui 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 gantungan kunci yang akan di-stream.
Mengembalikan
Mengembalikan stream objek tugas Prototipe gantungan kunci
atau Build gantungan kunci sebagai
SSE. 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-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=***" }}
Ambil daftar tugas gantungan kunci Anda yang dipaginasi untuk satu tahap. Path
URL memilih tahap — /prototype mengembalikan tugas prototype; /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 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 pengurutan. Nilai yang tersedia:
+created_at: Urutkan berdasarkan waktu pembuatan secara menaik.
-created_at: Urutkan berdasarkan waktu pembuatan secara menurun.
Objek Tugas Prototipe Gantungan Kunci adalah unit kerja yang dilacak oleh Meshy untuk
menghasilkan gambar konsep berwarna dari foto sumber. Output dari
tahap ini dirangkaikan ke tahap pembuatan
melalui input_task_id.
Properti
Name
id
Type
string
Description
Pengidentifikasi unik untuk tugas. Meskipun kami menggunakan UUID 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-keychain-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.
Sebuah stempel waktu merepresentasikan jumlah milidetik yang 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 expires_at, dalam milidetik.
Name
preceding_tasks
Type
integer
Description
Jumlah tugas yang mendahului.
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 terjadi kegagalan).
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 agar revisi mendatang dapat menampilkan beberapa kandidat tanpa perubahan yang merusak kompatibilitas.
Objek Tugas Build Gantungan Kunci adalah unit kerja yang dilacak oleh Meshy untuk
menghasilkan mesh gantungan kunci 3D akhir dari tugas prototipe yang SUCCEEDED. Proses
build menjalankan pipeline relief peta kedalaman pada gambar konsep prototipe dan
menerbitkan satu artefak mesh dalam format yang diminta pemanggil.
Properti
Name
id
Type
string
Description
Pengidentifikasi unik untuk tugas.
Name
type
Type
string
Description
Jenis tugas. Nilainya adalah creative-lab-keychain-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 menjadi 0. Setelah tugas berhasil, ini 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 sebelumnya. 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 saat terjadi kegagalan).
Name
model_urls
Type
object
Description
URL yang dapat diunduh untuk artefak yang dihasilkan, dengan kunci berupa nama artefak. Selalu berisi tepat satu entri — format yang diminta melalui output.format permintaan build. Kunci sesuai dengan format yang diminta:
Name
glb
Type
string
Description
URL yang dapat diunduh ke file GLB. Ada ketika output.format adalah glb (default).
Name
obj
Type
string
Description
URL yang dapat diunduh ke bundel zip yang berisi model.obj, model.mtl, dan texture.png. Ada ketika output.format adalah obj.
Name
bundle_zip
Type
string
Description
URL yang dapat diunduh ke bundel zip dari setiap artefak yang dikeluarkan generator. Ada ketika output.format adalah zip.