Convert API
Convert API vám umožňuje převést existující 3D modely do jiných formátů souborů.
Create a Convert Task
Tento koncový bod vytváří novou úlohu konverze formátu.
Úloha běží na pozadí. Jak dlouho to obvykle trvá, se dozvíte v části Doby zpracování.
Parametry
Povinný je pouze jeden z parametrů input_task_id nebo model_url. Pokud jsou zadány oba, má input_task_id přednost.
- Name
- input_task_id
- Type
- string
- Povinné
- Description
ID dokončené úlohy Meshy, jejíž model chcete převést. Úloha musí mít stav
SUCCEEDED.
- Name
- model_url
- Type
- string
- Povinné
- Description
Veřejně přístupná URL adresa nebo data URI odkazující na soubor 3D modelu. Podporované formáty:
.glb,.gltf,.obj,.fbx,.stl. Pro data URI použijte MIME type:application/octet-stream.Maximální velikost souboru: 400 MB pro
httpnebohttpsURL, 100 MB prodata:URI.Soubor GLB, glTF, FBX nebo OBJ o velikosti nad 100 MB může mít nejvýše 10 000 000 ploch. Plochy se počítají jako trojúhelníky: čtyřúhelník se počítá jako 2 a síť vykreslená vícekrát se počítá jednou za každou kopii. Nad 100 MB musí být soubor FBX binární FBX verze 7.1 nebo novější a soubor GLB nebo glTF nesmí používat kompresi Draco.
- Name
- target_formats
- Type
- string[]
- Povinné
- Description
Seznam výstupních formátů pro převedený model. Dostupné hodnoty:
glb,fbx,obj,usdz,blend,stl,3mf.
Návratové hodnoty
Vlastnost result odpovědi obsahuje id nově vytvořené úlohy konverze.
Režimy selhání
400 - Bad Request
Požadavek byl nepřijatelný. Časté příčiny:
- Chybějící parametr: Musí být zadán buď
model_url, neboinput_task_id. - Chybějící target_formats: Musí být zadán alespoň jeden cílový formát.
- Neplatná vstupní úloha:
input_task_idmusí odkazovat na úspěšně dokončenou úlohu. - Neplatný formát modelu:
model_urlodkazuje na soubor s nepodporovanou příponou. - Nedostupná URL: Soubor na adrese
model_urlse nepodařilo stáhnout. - Soubor modelu je příliš velký: Soubor na
model_urlpřesahuje 400 MB (URLhttpnebohttps) nebo 100 MB (data:URI). - Příliš mnoho ploch: Soubor na
model_urlje větší než 100 MB a má více než 10 000 000 ploch. Snižte počet ploch a soubor odešlete znovu. - ASCII FBX nad 100 MB: Soubor na
model_urlje ASCII FBX větší než 100 MB. Odešlete jej jako binární FBX nebo GLB. - Nečitelný soubor modelu: Soubor na
model_urlje větší než 100 MB a jeho hlavičku nelze přečíst, například v případě GLB nebo glTF komprimovaného pomocí Draco, nebo binárního FBX staršího než 7.1. - Hlavička modelu je příliš složitá: Soubor na
model_urlje větší než 100 MB a jeho hlavička obsahuje příliš mnoho sítí, uzlů nebo záznamů ke kontrole. Snižte počet objektů v souboru a odešlete jej znovu.
401 - Unauthorized
Autentizace selhala. Zkontrolujte prosím svůj API klíč.
402 - Payment Required
Nedostatek kreditů pro provedení této úlohy.
429 - Too Many Requests
Překročili jste svůj limit rychlosti.
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"
}
Načtení úlohy převodu
Tento koncový bod načte úlohu převodu podle jejího ID.
Parametry
- Name
- id
- Type
- path
- Description
ID úlohy převodu, kterou chcete načíst.
Návratová hodnota
Objekt úlohy převodu.
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": {
"glb": "",
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"obj": "",
"usdz": "",
"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
}
Smazání konverzní úlohy
Tento koncový bod trvale smaže konverzní úlohu, včetně všech souvisejících modelů a dat. Tuto akci nelze vrátit zpět.
Parametry cesty
- Name
- id
- Type
- path
- Description
ID konverzní úlohy, která má být smazána.
Stav úlohy
Úloha, která je stále ve stavu PENDING, je smazána a kredity spotřebované
při jejím vytvoření jsou vráceny.
Úlohu, která je již ve stavu IN_PROGRESS, nelze smazat: požadavek je
zamítnut s chybou 409 Conflict a úloha běží dál. Kredity za úlohu, kterou
již worker začal zpracovávat, nelze vrátit, takže její smazání během
zpracování by vás stálo kredity i výsledek zároveň. Počkejte, až dosáhne
stavu SUCCEEDED, FAILED nebo CANCELED, a teprve poté ji smažte.
Úloha v koncovém stavu (SUCCEEDED, FAILED nebo CANCELED) je smazána
bez vrácení kreditů.
Návratové hodnoty
Při úspěchu vrací 200 OK, nebo 409 Conflict, pokud je úloha ve stavu
IN_PROGRESS.
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 is left 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."
}
Seznam úkolů převodu
Tento koncový bod umožňuje načíst seznam úkolů převodu.
Parametry
- Name
- page_num
- Type
- integer
- výchozí 1
- Description
Číslo stránky pro stránkování.
- Name
- page_size
- Type
- integer
- výchozí 10
- Description
Limit velikosti stránky. Maximální povolená hodnota je
100položek.
- Name
- sort_by
- Type
- string
- Description
Pole, podle kterého se má řadit. Dostupné hodnoty:
+created_at: Seřadit podle času vytvoření vzestupně.-created_at: Seřadit podle času vytvoření sestupně.
Návratová hodnota
Vrací stránkovaný seznam objektů úkolu převodu.
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
}
]
Streamování úlohy převodu
Tento koncový bod streamuje aktualizace úlohy převodu v reálném čase pomocí Server-Sent Events (SSE).
Parametry
- Name
- id
- Type
- path
- Description
Jedinečný identifikátor úlohy převodu, kterou chcete streamovat.
Návratová hodnota
Vrací proud objektů úlohy převodu formou Server-Sent Events.
U úloh ve stavu PENDING nebo IN_PROGRESS bude datový proud odpovědi obsahovat pouze nezbytná pole progress a status.
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
}
The Convert Task Object
Objekt Convert Task představuje úlohu převodu formátu.
Properties
id· string
Jedinečný identifikátor úlohy.
type· string
Typ úlohy. Hodnota je convert.
model_urls· object
Stažitelné URL adresy pro převedené soubory modelu. URL adresy budou k dispozici pouze pro formáty uvedené v target_formats. Ostatní vlastnosti formátů budou prázdné řetězce.
progress· integer
Progress úlohy (0–100).
status· string
Stav úlohy. Možné hodnoty: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
preceding_tasks· integer
Počet předcházejících úloh. Má smysl pouze v případě, že stav je PENDING.
created_at· timestamp
Časové razítko okamžiku vytvoření úlohy, v milisekundách.
started_at· timestamp
Časové razítko okamžiku zahájení úlohy, v milisekundách. 0, pokud nebyla zahájena.
finished_at· timestamp
Časové razítko okamžiku dokončení úlohy, v milisekundách. 0, pokud nebyla dokončena.
task_error· object
Objekt chyby, pokud úloha selhala. Další podrobnosti naleznete v části Chyby.
consumed_credits· integer
Počet kreditů spotřebovaných touto úlohou (1 kredit za úlohu převodu). U úloh se stavem FAILED vrací 0.