API Konversi
Konversi model 3D ke format file lain, dari task Meshy atau dari file model.
Buat tugas Convert
Membuat tugas Convert. Tugas berjalan di latar belakang. Untuk informasi berapa lama tugas biasanya berlangsung, lihat Waktu pemrosesan.
Request
curl https://api.meshy.ai/openapi/v1/convert \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["fbx", "stl"]
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Parameter
- Name
- input_task_id
- Type
- string
- Wajib
- Description
Wajib diisi kecuali Anda mengirim
model_url. ID dari sebuah tugas yang menghasilkan model 3D, misalnya tugas Teks ke 3D, Gambar ke 3D, Remesh, Ubah ukuran, atau Retexture. Tugas tersebut harus berasal dari API dan memiliki statusSUCCEEDED.
- Name
- model_url
- Type
- string
- Wajib
- Description
Wajib diisi kecuali Anda mengirim
input_task_id. Model yang akan dikonversi, berupa URL publik atau data URI. Jika Anda mengirim keduanya, Meshy akan menggunakaninput_task_id.Model harus berupa file GLB, glTF, OBJ, FBX, atau STL dengan ukuran maksimal 400 MB dari URL
httpatauhttps, atau 100 MB sebagai data URI. Untuk data URI, gunakan MIME typeapplication/octet-stream.File di atas 100 MB juga harus mengikuti aturan berikut:
- File GLB, glTF, FBX, atau OBJ dapat memiliki maksimal 10.000.000 faces. Meshy menghitung faces sebagai segitiga, jadi satu quad dihitung sebagai 2, dan mesh yang digambar lebih dari sekali dihitung sekali per salinan.
- File FBX harus berupa FBX biner versi 7.1 atau lebih baru.
- File GLB atau glTF tidak boleh menggunakan kompresi Draco.
- Name
- target_formats
- Type
- string[]
- Wajib
- Description
Format file yang akan dihasilkan. Cantumkan setidaknya satu. Daftar yang hilang atau kosong akan mengembalikan
400.Nilai yang tersedia:
glbfbxobjusdzblendstl3mf
Hasil
Kolom result pada respons berisi ID dari tugas Convert yang baru.
Mode kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak dapat dijalankan. Pesan kesalahan menunjukkan masalah yang ditemukan. Contohnya:
- Parameter hilang: Baik
model_urlmaupuninput_task_idtidak dikirim. target_formatshilang:target_formatshilang atau tidak mencantumkan format apa pun.- Tugas input tidak valid:
input_task_idbukan merupakan tugas API yang berhasil dengan file model. - Format model tidak valid: File
model_urlmemiliki ekstensi yang tidak didukung. - URL tidak dapat dijangkau: Meshy tidak dapat mengunduh file
model_url. - File model terlalu besar: File
model_urlberukuran di atas 400 MB dari URLhttpatauhttps, atau di atas 100 MB sebagai data URI. - Terlalu banyak faces: File
model_urlberukuran di atas 100 MB dan memiliki lebih dari 10.000.000 faces. Kurangi jumlah faces, lalu kirim ulang file tersebut. - FBX ASCII di atas 100 MB: File
model_urladalah FBX ASCII di atas 100 MB. Kirim sebagai FBX biner atau GLB. - File model tidak dapat dibaca: File
model_urlberukuran di atas 100 MB, dan Meshy tidak dapat membaca headernya. Misalnya, file tersebut adalah GLB atau glTF yang dikompresi dengan Draco, atau FBX biner yang lebih lama dari versi 7.1. - Header model terlalu kompleks: File
model_urlberukuran di atas 100 MB, dan headernya memiliki terlalu banyak mesh, node, atau record untuk diperiksa. Kurangi jumlah objek dalam file, lalu kirim ulang.
Perbaiki permintaan, lalu kirim ulang. Lihat Kesalahan.
- Parameter hilang: Baik
- Name
401 - Unauthorized- Description
Kunci API hilang atau tidak valid. Periksa header
Authorization.
- Name
402 - Payment Required- Description
Contohnya:
- Kredit tidak cukup: Akun tidak memiliki cukup kredit untuk tugas ini, atau akun telah mencapai batas kredit. Periksa saldo kredit Anda, lalu coba lagi.
- Paket gratis: Membuat tugas memerlukan paket berbayar. Tingkatkan paket Anda di pengaturan langganan, lalu coba lagi.
- Name
403 - Forbidden- Description
input_task_idadalah model bas-relief, yang tidak dapat dikonversi oleh endpoint ini. Pesannya adalahThis model type does not support this operation. Kirim model yang berbeda.
- Name
404 - Not Found- Description
input_task_idtidak cocok dengan tugas Anda mana pun. Periksa ID tugas, lalu kirim ulang permintaan.
- Name
429 - Too Many Requests- Description
Anda melampaui batas laju Anda. Tunggu, lalu coba lagi. Lihat Batas laju.
Mendapatkan task Convert
Mengembalikan task Convert berdasarkan ID-nya.
Request
curl https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Hapus task Convert
Menghapus task Convert secara permanen, termasuk model dan datanya. Anda tidak bisa membatalkan penghapusan ini.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
Parameter path
- Name
- id
- Type
- path
- Description
ID task yang akan dihapus.
Status task
Menghapus task PENDING akan mengembalikan kredit yang digunakan saat Anda membuatnya.
Task IN_PROGRESS tidak dapat dihapus. Permintaan akan mengembalikan 409 Conflict,
dan task tersebut tetap berjalan. Meshy tidak mengembalikan kredit untuk task yang sudah dimulai,
sehingga menghapusnya akan membuat Anda kehilangan kredit sekaligus hasilnya. Tunggu hingga task
mencapai status SUCCEEDED, FAILED, atau CANCELED, baru kemudian hapus.
Menghapus task yang berada dalam status akhir (SUCCEEDED, FAILED, atau CANCELED)
tidak akan mengembalikan kreditnya.
Returns
200 OK ketika task berhasil dihapus, atau 409 Conflict ketika task
berstatus IN_PROGRESS.
List Convert tasks
Mengembalikan daftar tugas Konversi Anda.
Request
curl https://api.meshy.ai/openapi/v1/convert?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
]
Parameter
- Name
- page_num
- Type
- integer
- default 1
- Description
Nomor halaman yang akan dikembalikan, hingga
255. Nilai yang lebih besar akan mengembalikan400.
- Name
- page_size
- Type
- integer
- default 10
- Description
Jumlah tugas per halaman, hingga
100.
- Name
- sort_by
- Type
- string
- Description
Urutan pengurutan.
Nilai yang tersedia:
+created_at: terlama lebih dulu-created_at: terbaru lebih dulu
Returns
Daftar berhalaman dari objek tugas Konversi.
Stream Tugas Convert
Melakukan streaming pembaruan tugas Convert sebagai Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Message event examples illustrate task progress.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Parameter
- Name
- id
- Type
- path
- Description
ID tugas dari respons pembuatan.
Returns
Sebuah stream objek tugas Convert sebagai Server-Sent Events.
Setiap event memuat objek tugas secara lengkap, dalam bentuk yang sama seperti yang dikembalikan oleh endpoint Get. Selama tugas berstatus PENDING atau IN_PROGRESS, kolom hasilnya belum memiliki nilai.
Objek task Convert
Objek task Convert menjelaskan satu konversi format dari sebuah model 3D. Objek ini menyimpan status, progress, dan file model saat task berhasil.
Properties
- Name
- id
- Type
- string
- Description
ID task. Perlakukan sebagai string buram, dan jangan bergantung pada formatnya.
- Name
- type
- Type
- string
- Description
Tipe task, selalu
convert.
- Name
- model_urls
- Type
- object
- Description
URL unduhan untuk model yang telah dikonversi, satu per format file. Hanya format dalam
target_formatsyang memiliki URL. Format yang tidak Anda minta tidak memiliki key, bukannya string kosong.
- Name
- progress
- Type
- integer
- Description
Seberapa banyak task telah selesai, dalam persentase. Nilainya
0sampai task dimulai dan100saat task berhasil.
- Name
- status
- Type
- string
- Description
Status task, salah satu dari
PENDING,IN_PROGRESS,SUCCEEDED,FAILED, atauCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Jumlah task yang berada di depan task ini dalam antrean. Nilai ini hanya bermakna selama task masih
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Waktu task dibuat, dalam milidetik Unix.
- Name
- started_at
- Type
- timestamp
- Description
Waktu task dimulai, dalam milidetik Unix. Nilainya
0sampai task dimulai.
- Name
- finished_at
- Type
- timestamp
- Description
Waktu task selesai, dalam milidetik Unix. Nilainya
0sampai task selesai.
- Name
- expires_at
- Type
- timestamp
- Description
Waktu URL unduhan task ini kedaluwarsa, dalam milidetik Unix. Nilainya
0sampai task selesai.
- Name
- texture_urls
- Type
- array
- Description
URL unduhan untuk peta tekstur model, saat task berhasil: sebuah array objek, satu per set tekstur. Setiap objek memiliki URL
base_color, dan juga bisa memiliki URLmetallic,roughness,normal,emission, danmetallic_roughness. Nilainyanullsampai task berhasil, dan array kosong saat model tidak memiliki peta tekstur.
- Name
- task_error
- Type
- object
- Description
Detail kesalahan saat task gagal. Lihat Kesalahan.
- Name
- consumed_credits
- Type
- integer
- Description
Jumlah kredit yang digunakan task, yaitu
1untuk task Convert. Nilainya0untuk taskFAILED.