API Ridimensiona
L'API Ridimensiona consente di ridimensionare modelli 3D esistenti alle dimensioni del mondo reale. È possibile specificare un'altezza esatta, un vincolo sul lato più lungo, oppure lasciare che l'IA stimi automaticamente le dimensioni appropriate.
Crea un'attività di ridimensionamento
Questo endpoint crea una nuova attività di ridimensionamento.
Parametri
Solo uno tra input_task_id o model_url è obbligatorio. Se vengono forniti entrambi, input_task_id ha la priorità.
- Name
- input_task_id
- Type
- string
- Obbligatorio
- Description
L'ID di un'attività Meshy completata il cui modello si desidera ridimensionare. L'attività deve avere uno stato
SUCCEEDED. Il formato di output sarà GLB.
- Name
- model_url
- Type
- string
- Obbligatorio
- Description
Un URL pubblicamente accessibile o una Data URI che punta a un file di modello 3D. Formati supportati:
.glb,.gltf,.obj,.fbx,.stl. Per le Data URI, utilizzare il MIME type:application/octet-stream. Il formato di output preserverà il formato originale del modello in ingresso.
È obbligatorio esattamente un mode di ridimensionamento: resize_height, resize_longest_side o auto_size. Questi tre parametri sono mutuamente esclusivi.
- Name
- resize_height
- Type
- number
- Description
Ridimensiona il modello a un'altezza specifica misurata in metri.
- Name
- resize_longest_side
- Type
- number
- Description
Ridimensiona il modello in modo che il suo lato più lungo corrisponda a questo valore, misurato in metri. Le proporzioni vengono mantenute.
- Name
- auto_size
- Type
- boolean
- Description
Quando impostato su
true, il servizio utilizza la visione artificiale per stimare automaticamente l'altezza reale dell'oggetto e ridimensionare il modello di conseguenza. L'origine sarà impostata di default subottoma meno cheorigin_atnon venga impostato esplicitamente.
- Name
- origin_at
- Type
- string
- predefinito bottom
- Description
Posizione dell'origine dopo il ridimensionamento.
Valori disponibili:
bottom,center.
Valori restituiti
La proprietà result della risposta contiene l'id della nuova attività di ridimensionamento creata.
Modalità di errore
400 - Bad Request
La richiesta non era accettabile. Cause comuni:
- Parametro mancante: È necessario fornire
model_urloppureinput_task_id. - Mode di ridimensionamento mancante: È necessario specificare almeno uno tra
resize_height,resize_longest_sideoauto_size. - Parametri mutuamente esclusivi:
resize_height,resize_longest_sideeauto_sizenon possono essere combinati. - Attività di input non valida:
input_task_iddeve fare riferimento a un'attività completata con successo. - Formato del modello non valido:
model_urlpunta a un file con un'estensione non supportata. - URL non raggiungibile: Non è stato possibile scaricare
model_url.
401 - Unauthorized
Autenticazione non riuscita. Verifica la tua chiave API.
402 - Payment Required
Crediti insufficienti per eseguire questa attività.
429 - Too Many Requests
Hai superato il tuo limite di frequenza.
Request
# Simple: resize to a specific height
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"resize_height": 1.8
}'
# Advanced: resize longest side with custom origin
curl https://api.meshy.ai/openapi/v1/resize \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/model.glb",
"resize_longest_side": 2.0,
"origin_at": "center"
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Recupera un'attività di ridimensionamento
Questo endpoint recupera un'attività di ridimensionamento tramite il suo ID.
Parametri
- Name
- id
- Type
- path
- Description
L'ID dell'attività di ridimensionamento da recuperare.
Restituisce
L'oggetto Resize Task.
Request
curl https://api.meshy.ai/openapi/v1/resize/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Elimina un'attività di ridimensionamento
Questo endpoint elimina definitivamente un'attività di ridimensionamento, inclusi tutti i modelli e i dati associati. Questa azione è irreversibile.
Parametri del percorso
- Name
- id
- Type
- path
- Description
L'ID dell'attività di ridimensionamento da eliminare.
Stato dell'attività
Un'attività ancora in stato PENDING viene eliminata e i crediti consumati
al momento della creazione vengono rimborsati.
Un'attività già in stato IN_PROGRESS non può essere eliminata: la richiesta
viene rifiutata con 409 Conflict e l'attività continua a essere eseguita.
I crediti per un'attività che il worker ha già iniziato a elaborare non sono
rimborsabili, quindi eliminarla a metà esecuzione ti costerebbe sia i crediti
che il risultato. Attendi che raggiunga lo stato SUCCEEDED, FAILED o
CANCELED, quindi eliminala.
Un'attività in uno stato terminale (SUCCEEDED, FAILED o CANCELED) viene
eliminata senza rimborso.
Restituisce
Restituisce 200 OK in caso di successo, oppure 409 Conflict quando
l'attività è in stato IN_PROGRESS.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/resize/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."
}
Elenca le attività di ridimensionamento
Questo endpoint consente di recuperare un elenco di attività di ridimensionamento.
Parametri
- Name
- page_num
- Type
- integer
- predefinito 1
- Description
Numero di pagina per la paginazione.
- Name
- page_size
- Type
- integer
- predefinito 10
- Description
Limite di dimensione della pagina. Il massimo consentito è
100elementi.
- Name
- sort_by
- Type
- string
- Description
Campo in base al quale ordinare. Valori disponibili:
+created_at: Ordina per data di creazione in ordine crescente.-created_at: Ordina per data di creazione in ordine decrescente.
Valori restituiti
Restituisce un elenco paginato di Oggetti Attività di Ridimensionamento.
Request
curl https://api.meshy.ai/openapi/v1/resize?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
]
Trasmetti in streaming un'attività di ridimensionamento
Questo endpoint trasmette in streaming gli aggiornamenti in tempo reale per un'attività di ridimensionamento utilizzando Server-Sent Events (SSE).
Parametri
- Name
- id
- Type
- path
- Description
Identificatore univoco dell'attività di ridimensionamento da trasmettere in streaming.
Restituisce
Restituisce un flusso di oggetti Attività di Ridimensionamento come Server-Sent Events.
Per le attività PENDING o IN_PROGRESS, il flusso di risposta includerà solo i campi progress e status necessari.
Request
curl -N https://api.meshy.ai/openapi/v1/resize/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": "resize",
"model_urls": {
"glb": "https://assets.meshy.ai/.../model.glb?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
L'oggetto Resize Task
L'oggetto Resize Task rappresenta un lavoro di ridimensionamento.
Proprietà
id· string
Identificatore univoco del task.
type· string
Tipo del task. Il valore è resize.
model_urls· object
URL scaricabile per il file del modello ridimensionato. Quando si utilizza input_task_id, l'output è sempre GLB. Quando si utilizza model_url, l'output preserva il formato originale.
progress· integer
Progress del task (0-100).
status· string
Status del task. Valori possibili: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
preceding_tasks· integer
Il numero di task precedenti. Significativo solo quando lo status è PENDING.
created_at· timestamp
Timestamp di quando il task è stato creato, in millisecondi.
started_at· timestamp
Timestamp di quando il task è stato avviato, in millisecondi. 0 se non è stato avviato.
finished_at· timestamp
Timestamp di quando il task è terminato, in millisecondi. 0 se non è terminato.
task_error· object
Oggetto errore se il task è fallito. Consulta Errori per maggiori dettagli.
consumed_credits· integer
Il numero di crediti consumati da questo task (1 credito per ogni task di ridimensionamento). Restituisce 0 per i task FAILED.