lowpoly verrà ritirato il 30 ott 2026. Cambia modello prima di queste date per evitare errori nelle richieste. Vedi tutte le deprecazioni

API Ridimensiona

Ridimensiona un modello 3D a una dimensione reale, in metri. Imposta la sua altezza o la lunghezza del lato più lungo, oppure lascia che Meshy stimi l'altezza reale dell'oggetto.


POST/openapi/v1/resize

Crea un task di Resize

Crea un task di Resize. Il task viene eseguito in background. Per sapere quanto dura di solito un task, consulta Tempi di elaborazione.

Request

POST
/openapi/v1/resize
# 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"
}

Parametri

  • Name
    input_task_id
    Type
    string
    Obbligatorio
    Description

    Obbligatorio a meno che non invii model_url. L'ID del task Meshy il cui modello vuoi ridimensionare. Il task deve avere stato SUCCEEDED. Meshy restituisce il modello ridimensionato come file GLB.

  • Name
    model_url
    Type
    string
    Obbligatorio
    Description

    Obbligatorio a meno che non invii input_task_id. Il modello da ridimensionare, come URL pubblico o data URI. Se invii entrambi, Meshy usa input_task_id.

    Il modello deve essere un file GLB, glTF, OBJ, FBX o STL di al massimo 400 MB da un URL http o https, oppure di 100 MB come data URI. Per un data URI, usa il MIME type application/octet-stream.

    Un file di oltre 100 MB deve anche 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 quadrilatero conta come 2, e una mesh disegnata più volte conta una volta per ogni copia.
    • Un file FBX deve essere FBX binario 7.1 o più recente.
    • Un file GLB o glTF non deve usare la compressione Draco.

    Un file GLB, OBJ, FBX o STL mantiene il proprio formato nel risultato. Un file .gltf o un data URI vengono restituiti come GLB.

Invia esattamente uno tra resize_height, resize_longest_side o auto_size. Se non ne invii nessuno, o più di uno, viene restituito 400.

  • Name
    resize_height
    Type
    number
    Description

    La nuova altezza del modello in metri, maggiore di 0. Un valore negativo restituisce 400.

  • Name
    resize_longest_side
    Type
    number
    Description

    La nuova lunghezza del lato più lungo del modello in metri, maggiore di 0. Un valore negativo restituisce 400. Meshy mantiene le proporzioni del modello.

  • Name
    auto_size
    Type
    boolean
    Description

    Se stimare l'altezza reale dell'oggetto tramite AI vision e ridimensionare il modello di conseguenza. A meno che non imposti origin_at, Meshy colloca l'origine in basso.

  • Name
    origin_at
    Type
    string
    predefinito bottom
    Description

    Dove collocare l'origine del modello dopo il ridimensionamento, bottom o center.

Risultati restituiti

Il campo result della risposta contiene l'ID del nuovo task di Resize.

Modalità di fallimento

  • 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_url né input_task_id.
    • Modalità di ridimensionamento mancante: non è stato inviato nessuno tra resize_height, resize_longest_side e auto_size.
    • Parametri mutuamente esclusivi: la richiesta contiene più di uno tra resize_height, resize_longest_side e auto_size. Invia solo un parametro.
    • Dimensione negativa: resize_height o resize_longest_side è negativo.
    • Task di input non valido: input_task_id non è un task completato con successo.
    • Formato modello non valido: il file model_url ha un'estensione non supportata.
    • URL non raggiungibile: Meshy non riesce a scaricare il file model_url.
    • File del modello troppo grande: il file model_url supera i 400 MB da un URL http o https, oppure i 100 MB come data URI.
    • Troppe facce: il file model_url supera i 100 MB e ha più di 10.000.000 di facce. Riduci il numero di facce, poi invia di nuovo il file.
    • FBX ASCII oltre 100 MB: il file model_url è un FBX ASCII oltre 100 MB. Inviarlo come FBX binario o GLB.
    • File del modello illeggibile: il file model_url supera i 100 MB e Meshy non riesce a leggerne l'header. Ad esempio, è un GLB o glTF compresso con Draco, oppure un FBX binario precedente alla versione 7.1.
    • Header del modello troppo complesso: il file model_url supera i 100 MB e il suo header ha troppe mesh, nodi o record da verificare. Riduci il numero di oggetti nel file, poi invialo di nuovo.

    Correggi la richiesta, poi inviala di nuovo. Vedi Errori.

  • 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 crediti. Controlla il tuo saldo crediti, poi riprova.
    • Piano gratuito: creare un task richiede un piano a pagamento. Aggiorna il tuo piano nelle impostazioni dell'abbonamento, poi riprova.
  • Name
    403 - Forbidden
    Description

    input_task_id è un modello bassorilievo, che questo endpoint non può ridimensionare. Il messaggio è This model type does not support this operation. Invia un modello diverso.

  • Name
    404 - Not Found
    Description

    input_task_id non corrisponde a nessuno dei tuoi task. Controlla l'ID del task, poi invia di nuovo la richiesta.

  • Name
    429 - Too Many Requests
    Description

    Hai superato il tuo limite di frequenza. Attendi, poi riprova. Vedi Limiti di frequenza.


GET/openapi/v1/resize/:id

Ottieni un'attività di Ridimensiona

Restituisce un'attività di Ridimensiona in base al suo ID.

Request

GET
/openapi/v1/resize/:id
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
}

Parametri

  • Name
    id
    Type
    path
    Description

    L'ID dell'attività dalla risposta di creazione.

Restituisce

L'oggetto attività di Ridimensiona.


DELETE/openapi/v1/resize/:id

Elimina un task di Resize

Elimina definitivamente un task di Resize, inclusi i suoi modelli e dati. Non puoi annullare un'eliminazione.

Request

DELETE
/openapi/v1/resize/:id
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 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 che è già iniziato, quindi eliminarlo ti costerebbe 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.


GET/openapi/v1/resize

Elenco attività di Ridimensiona

Restituisce un elenco delle tue attività di Ridimensiona.

Request

GET
/openapi/v1/resize
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
  }
]

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 attività 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 attività Ridimensiona.


GET/openapi/v1/resize/:id/stream

Esegui lo streaming di un task di Ridimensiona

Esegue lo streaming degli aggiornamenti di un task di Ridimensiona come Server-Sent Events (SSE).

Request

GET
/openapi/v1/resize/:id/stream
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
}

Parametri

  • Name
    id
    Type
    path
    Description

    L'ID del task dalla risposta di creazione.

Valori restituiti

Un flusso di oggetti task di Ridimensiona come Server-Sent Events.

Ogni evento contiene l'oggetto task completo, nella stessa forma restituita dall'endpoint Get. Mentre il task è PENDING o IN_PROGRESS, i suoi campi di risultato non hanno ancora valori.


L'oggetto task Resize

Un oggetto task Resize descrive un ridimensionamento di un modello 3D. Contiene lo stato, il progresso e il 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 resize.

  • Name
    model_urls
    Type
    object
    Description

    URL di download per il file del modello ridimensionato. Per input_task_id, il file è sempre GLB. Per model_url, un file GLB, OBJ, FBX o STL mantiene il proprio formato, mentre un file .gltf o una Data URI vengono restituiti come GLB.

  • Name
    progress
    Type
    integer
    Description

    Quanta parte del task è stata completata, in percentuale. È 0 finché il task non inizia e 100 quando ha successo.

  • Name
    status
    Type
    string
    Description

    Lo stato del task, uno tra PENDING, IN_PROGRESS, SUCCEEDED, FAILED o CANCELED.

  • 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

    Ora di creazione del task, in millisecondi Unix.

  • Name
    started_at
    Type
    timestamp
    Description

    Ora di avvio del task, in millisecondi Unix. È 0 finché il task non inizia.

  • Name
    finished_at
    Type
    timestamp
    Description

    Ora di completamento del task, in millisecondi Unix. È 0 finché 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 è 1 per un task Resize. È 0 per un task FAILED.