API Converti
Converti un modello 3D in altri formati di file, da un'attività Meshy o da un file modello.
Crea un task di Convert
Crea un task di Convert. Il task viene eseguito in background. Per sapere quanto tempo richiede solitamente un task, consulta Tempi di elaborazione.
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"
}
Parametri
- Name
- input_task_id
- Type
- string
- Obbligatorio
- Description
Obbligatorio a meno che tu non invii
model_url. L'ID del task Meshy il cui modello vuoi convertire. Il task deve avere lo statoSUCCEEDED.
- Name
- model_url
- Type
- string
- Obbligatorio
- Description
Obbligatorio a meno che tu non invii
input_task_id. Il modello da convertire, come URL pubblico o data URI. Se invii entrambi, Meshy usainput_task_id.Il modello deve essere un file GLB, glTF, OBJ, FBX o STL di al massimo 400 MB proveniente da un URL
httpohttps, oppure di 100 MB come data URI. Per un data URI, usa il MIME typeapplication/octet-stream.Un file di oltre 100 MB deve inoltre rispettare queste regole:
- Un file GLB, glTF, FBX o OBJ può avere al massimo 10.000.000 di facce. Meshy conta le facce come triangoli, quindi un quad conta come 2, e una mesh disegnata più volte conta una volta per copia.
- Un file FBX deve essere binario, FBX 7.1 o versione successiva.
- Un file GLB o glTF non deve usare la compressione Draco.
- Name
- target_formats
- Type
- string[]
- Obbligatorio
- Description
I formati di file da generare. Elencane almeno uno. Un elenco mancante o vuoto restituisce
400.Valori disponibili:
glbfbxobjusdzblendstl3mf
Valori restituiti
Il campo result della risposta contiene l'ID del nuovo task di Convert.
Modalità di errore
- Name
400 - Bad Request- Description
La richiesta non può essere eseguita. Il messaggio di errore indica quale problema è stato rilevato. Ad esempio:
- Parametro mancante: non è stato inviato né
model_urlnéinput_task_id. target_formatsmancante:target_formatsè assente o non elenca alcun formato.- Task di input non valido:
input_task_idnon corrisponde a un task completato con successo. - Formato del modello non valido: il file
model_urlha un'estensione non supportata. - URL irraggiungibile: Meshy non riesce a scaricare il file
model_url. - File del modello troppo grande: il file
model_urlsupera i 400 MB da un URLhttpohttps, oppure supera i 100 MB come data URI. - Troppe facce: il file
model_urlsupera i 100 MB e ha più di 10.000.000 di facce. Riduci il numero di facce, quindi invia nuovamente il file. - FBX ASCII oltre 100 MB: il file
model_urlè un FBX ASCII che supera i 100 MB. Invialo come FBX binario o GLB. - File del modello illeggibile: il file
model_urlsupera i 100 MB e Meshy non riesce a leggerne l'intestazione. Ad esempio, è un GLB o glTF compresso con Draco, oppure un FBX binario precedente alla versione 7.1. - Intestazione del modello troppo complessa: il file
model_urlsupera i 100 MB e la sua intestazione ha troppe mesh, nodi o record da controllare. Riduci il numero di oggetti nel file, quindi invialo nuovamente.
Correggi la richiesta, quindi inviala di nuovo. Consulta Errori.
- Parametro mancante: non è stato inviato né
- Name
401 - Unauthorized- Description
La chiave API è mancante o non valida. Controlla l'header
Authorization.
- Name
402 - Payment Required- Description
Ad esempio:
- Crediti insufficienti: l'account non ha crediti sufficienti per questo task, oppure l'account ha raggiunto un limite di credito. Controlla il tuo saldo crediti, quindi riprova.
- Piano gratuito: la creazione di un task richiede un piano a pagamento. Aggiorna il tuo piano nelle impostazioni dell'abbonamento, quindi riprova.
- Name
403 - Forbidden- Description
input_task_idè un modello bassorilievo, che questo endpoint non può convertire. Il messaggio èThis model type does not support this operation. Invia un modello diverso.
- Name
404 - Not Found- Description
input_task_idnon corrisponde a nessuno dei tuoi task. Controlla l'ID del task, quindi invia di nuovo la richiesta.
- Name
429 - Too Many Requests- Description
Hai superato il tuo limite di frequenza. Attendi, quindi riprova. Consulta Limiti di frequenza.
Recupera un task di Convert
Restituisce un task di Convert tramite il suo ID.
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
}
Parametri
- Name
- id
- Type
- path
- Description
L'ID del task ottenuto dalla risposta di creazione.
Restituisce
Elimina un task di Convert
Elimina definitivamente un task di Convert, inclusi i suoi modelli e dati. Non puoi annullare un'eliminazione.
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."
}
Parametri del percorso
- Name
- id
- Type
- path
- Description
L'ID del task da eliminare.
Stato del task
Eliminare un task PENDING rimborsa i crediti utilizzati al momento della sua creazione.
Un task IN_PROGRESS non può essere eliminato. La richiesta restituisce 409 Conflict,
e il task continua a essere eseguito. Meshy non rimborsa un task già avviato,
quindi eliminarlo ti farebbe perdere sia i crediti che il risultato. Attendi che
raggiunga lo stato SUCCEEDED, FAILED o CANCELED, quindi eliminalo.
Eliminare un task in uno stato finale (SUCCEEDED, FAILED o CANCELED)
non rimborsa i suoi crediti.
Risultati restituiti
200 OK quando il task viene eliminato, oppure 409 Conflict quando il task è
IN_PROGRESS.
Elenca i task di Convert
Restituisce un elenco dei tuoi task di Convert.
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
}
]
Parametri
- Name
- page_num
- Type
- integer
- predefinito 1
- Description
Il numero di pagina da restituire.
- Name
- page_size
- Type
- integer
- predefinito 10
- Description
Il numero di task per pagina, fino a
100.
- Name
- sort_by
- Type
- string
- Description
L'ordine di ordinamento.
Valori disponibili:
+created_at: dal più vecchio-created_at: dal più recente
Restituisce
Un elenco paginato di oggetti task di Convert.
Esegui lo streaming di un'attività di conversione
Esegue lo streaming degli aggiornamenti di un'attività di conversione come 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
}
Parametri
- Name
- id
- Type
- path
- Description
L'ID dell'attività proveniente dalla risposta di creazione.
Risultati restituiti
Uno stream di oggetti attività di conversione come Server-Sent Events.
Ogni evento contiene l'oggetto attività completo, nello stesso formato restituito dall'endpoint Get. Finché l'attività è PENDING o IN_PROGRESS, i suoi campi di risultato non hanno ancora alcun valore.
L'oggetto task Convert
Un oggetto task Convert descrive una conversione di formato di un modello 3D. Contiene lo stato, il progresso e i file del modello quando il task ha successo.
Proprietà
- Name
- id
- Type
- string
- Description
L'ID del task. Trattalo come una stringa opaca e non fare affidamento sul suo formato.
- Name
- type
- Type
- string
- Description
Il tipo di task, sempre
convert.
- Name
- model_urls
- Type
- object
- Description
Gli URL di download per il modello convertito, uno per ogni formato di file. Solo i formati presenti in
target_formatshanno degli URL. Un formato che non hai richiesto non ha una chiave, anziché avere una stringa vuota.
- Name
- progress
- Type
- integer
- Description
Quanta parte del task è stata completata, in percentuale. È
0finché il task non parte ed è100quando ha successo.
- Name
- status
- Type
- string
- Description
Lo stato del task, uno tra
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDoCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Il numero di task che precedono questo nella coda. Il valore è significativo solo mentre il task è
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
L'orario in cui il task è stato creato, in millisecondi Unix.
- Name
- started_at
- Type
- timestamp
- Description
L'orario in cui il task è partito, in millisecondi Unix. È
0finché il task non parte.
- Name
- finished_at
- Type
- timestamp
- Description
L'orario in cui il task è terminato, in millisecondi Unix. È
0finché il task non termina.
- Name
- task_error
- Type
- object
- Description
I dettagli dell'errore quando il task fallisce. Vedi Errori.
- Name
- consumed_credits
- Type
- integer
- Description
Il numero di crediti utilizzati dal task, che è
1per un task Convert. È0per un taskFAILED.