Retexture API

Retexture API è una funzionalità che consente di integrare le capacità di retexturing basate sull'IA di Meshy nella propria applicazione. In questa sezione troverai tutte le informazioni necessarie per iniziare a utilizzare questa API.


POST/openapi/v1/retexture

Create a Retexture Task

Questo endpoint consente di creare una nuova attività di Retexture. Fai riferimento a The Retexture Task Object per vedere quali proprietà sono incluse nell'oggetto attività Retexture.

Parametri

  • Name
    input_task_id
    Type
    string
    Obbligatorio
    Description

    L'ID dell'attività Immagine in 3D o Testo in 3D completata che desideri retexturizzare. Questa attività deve essere una delle seguenti: Testo in 3D Preview, Testo in 3D Refine, Immagine in 3D o Remesh. Inoltre, deve avere uno stato SUCCEEDED.

  • Name
    model_url
    Type
    string
    Obbligatorio
    Description

    Fornisci un modello 3D che Meshy dovrà texturizzare. Formati supportati: .glb, .gltf, .obj, .fbx, .stl.

    Ci sono due modi per fornire il modello:

    • URL pubblicamente accessibile: un URL accessibile da internet pubblicamente.
    • Data URI: un data URI del modello codificato in base64. Usa il MIME type application/octet-stream. Esempio: data:application/octet-stream;base64,<i tuoi dati del modello codificati in base64>.
  • Name
    text_style_prompt
    Type
    string
    Obbligatorio
    Description

    Descrivi lo stile di texture desiderato per l'oggetto usando il testo. Massimo 800 caratteri.

  • Name
    image_style_url
    Type
    string
    Obbligatorio
    Description

    Fornisci un'immagine 2D per guidare il processo di texturizzazione. Attualmente supportiamo i formati .jpg, .jpeg e .png.

    Ci sono due modi per fornire l'immagine:

    • URL pubblicamente accessibile: un URL accessibile da internet pubblicamente
    • Data URI: un data URI dell'immagine codificato in base64. Esempio di data URI: data:image/jpeg;base64,<i tuoi dati dell'immagine codificati in base64>
  • Name
    multiview_image_urls
    Type
    string[]
    Obbligatorio
    Description

    Fornisci da 1 a 4 immagini che mostrano lo stesso oggetto da diverse angolazioni per guidare la texturizzazione. La prima immagine è la vista principale (frontale); l'ordine delle viste rimanenti (sinistra, retro, destra) non conta.

    Ogni elemento accetta gli stessi formati di image_style_url (un URL pubblicamente accessibile o un data URI in base64, .jpg/.jpeg/.png).

  • Name
    ai_model
    Type
    string
    predefinito latest
    Description

    ID del modello AI da usare per la retexturizzazione. Valori disponibili: meshy-6-lite, meshy-6, meshy-7, latest (Meshy 7).

  • Name
    enable_original_uv
    Type
    boolean
    predefinito false
    Description

    Mantieni il layout UV esistente del modello invece di generarne uno nuovo.

    • Se stai retexturizzando un modello generato da Meshy (tramite input_task_id, o un model_url che punta a un output di Meshy), imposta questo su true per riutilizzare il suo layout UV ottimizzato.
    • Se stai retexturizzando un modello di terze parti che hai caricato, imposta true quando ha già buoni UV che desideri mantenere, oppure lascialo su false per lasciare che Meshy generi nuovi UV (ideale per modelli privi di una corretta mappatura UV).
  • Name
    enable_pbr
    Type
    boolean
    predefinito false
    Description

    Genera mappe PBR (metallic, roughness, normal) oltre al colore base. Una mappa di emissione è inclusa anche quando ai_model è meshy-6, tranne quando texture_resolution: 8k. meshy-6-lite, meshy-7 e latest non producono una mappa di emissione.

  • Name
    texture_resolution
    Type
    string
    predefinito 2k
    Description

    Risoluzione della texture del colore base. Una tra 2k (2048×2048), 4k (4096×4096) o 8k (8192×8192). Risoluzioni più elevate catturano più dettagli della superficie.

  • Name
    hd_texture
    Type
    boolean
    deprecato
    predefinito false
    Description

    Usa texture_resolution invece — equivalente a texture_resolution: "4k". Quando entrambi sono impostati, texture_resolution ha la precedenza.

  • Name
    remove_lighting
    Type
    boolean
    predefinito true
    Description

    Rimuove i riflessi e le ombre dalla texture del colore base, producendo un risultato più pulito che funziona meglio con impostazioni di illuminazione personalizzate.

  • Name
    target_formats
    Type
    string[]
    Description

    Specifica quali formati di file 3D includere nell'output. Verranno generati e restituiti solo i formati richiesti, il che può ridurre il tempo di completamento dell'attività. Se omesso, sono inclusi tutti i formati supportati.

    Valori disponibili: glb, obj, fbx, stl, usdz, 3mf

  • Name
    alpha_thumbnail
    Type
    boolean
    predefinito false
    Description

    Quando impostato su true, l'attività renderizza inoltre una versione con sfondo trasparente (RGBA) dell'anteprima e la restituisce come alpha_thumbnail_url nella risposta GET. Il campo esistente thumbnail_url rimane invariato.

Restituisce

La proprietà result della risposta contiene l'id dell'attività Retexture appena creata.

Modalità di errore

  • Name
    400 - Bad Request
    Description

    La richiesta non era accettabile. Cause comuni:

    • Parametro mancante: deve essere fornito model_url oppure input_task_id.
    • Stile mancante: deve essere fornito uno tra text_style_prompt, image_style_url o multiview_image_urls.
    • Input di stile in conflitto: multiview_image_urls non può essere combinato con text_style_prompt o image_style_url.
    • Modello non supportato per multi-vista: multiview_image_urls richiede un ai_model: "meshy-7" esplicito.
    • Modello non disponibile: ai_model: "meshy-7" e ai_model: "meshy-6-lite" vengono distribuiti progressivamente e potrebbero non essere ancora abilitati per il tuo account.
    • Attività di input non valida: input_task_id deve fare riferimento a un'attività riuscita di un modello supportato.
    • Formato del modello non valido: model_url punta a un file con un'estensione non supportata.
    • URL non raggiungibile: non è stato possibile scaricare model_url, image_style_url o un elemento di multiview_image_urls.
  • Name
    401 - Unauthorized
    Description

    Autenticazione non riuscita. Controlla la tua chiave API.

  • Name
    402 - Payment Required
    Description

    Crediti insufficienti per eseguire questa attività.

  • Name
    429 - Too Many Requests
    Description

    Hai superato il tuo limite di frequenza.

Request

POST
/openapi/v1/retexture
# Retexture with text prompt
curl https://api.meshy.ai/openapi/v1/retexture \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "model_url": "https://cdn.meshy.ai/model/example_model_2.glb",
    "text_style_prompt": "red fangs, Samurai outfit that fused with japanese batik style",
    "enable_original_uv": true,
    "enable_pbr": true
  }'

# Retexture with image style and PBR
curl https://api.meshy.ai/openapi/v1/retexture \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "model_url": "https://cdn.meshy.ai/model/example_model_2.glb",
    "image_style_url": "https://cdn.meshy.ai/image/example_image.jpg",
    "ai_model": "latest",
    "enable_pbr": true,
    "enable_original_uv": true
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

GET/openapi/v1/retexture/:id

Recupera un task di Retexture

Questo endpoint consente di recuperare un task di Retexture dato un id di task valido. Consulta L'oggetto task Retexture per vedere quali proprietà sono incluse nell'oggetto task Retexture.

Parametri

  • Name
    id
    Type
    path
    Description

    Identificatore univoco del task di Retexture da recuperare.

Risultati restituiti

La risposta contiene l'oggetto task Retexture. Consulta la sezione L'oggetto task Retexture per i dettagli.

Request

GET
/openapi/v1/retexture/018a210d-8ba4-705c-b111-1f1776f7f578
curl https://api.meshy.ai/openapi/v1/retexture/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "retexture",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "text_style_prompt": "red fangs, Samurai outfit that fused with japanese batik style",
  "texture_image_url": "",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX",
      "emission": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX"
    }
  ],
  "task_error": {

    "message": ""

  },

  "consumed_credits": 10
}

DELETE/openapi/v1/retexture/:id

Elimina un'attività di Retexture

Questo endpoint elimina permanentemente un'attività di retexture, inclusi tutti i modelli e i dati associati. Questa azione è irreversibile.

Parametri del percorso

  • Name
    id
    Type
    path
    Description

    L'ID dell'attività di retexture da eliminare.

Stato dell'attività

Un'attività ancora PENDING viene eliminata e i crediti consumati al momento della creazione vengono rimborsati.

Un'attività già 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à avviato 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_PROGRESS.

Request

DELETE
/openapi/v1/retexture/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/retexture/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."
}

GET/openapi/v1/retexture

List Retexture Tasks

Questo endpoint consente di recuperare un elenco di task Retexture.

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 elementi per pagina. Il massimo consentito è 100 elementi.

  • 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.

Restituisce

Restituisce un elenco paginato di oggetti Retexture Task.

Request

GET
/openapi/v1/retexture
curl https://api.meshy.ai/openapi/v1/retexture?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "retexture",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***"
    },
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
    "text_style_prompt": "red fangs, Samurai outfit that fused with japanese batik style",
    "progress": 100,
    "started_at": 1692771667037,
    "created_at": 1692771650657,
    "expires_at": 1692771679037,
    "finished_at": 1692771669037,
    "status": "SUCCEEDED",
    "texture_urls": [
      {
        "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
        "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
        "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
        "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX",
        "emission": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX"
      }
    ],
    "preceding_tasks": 0,
    "task_error": {

      "message": ""

    },

    "consumed_credits": 10
  }
]

GET/openapi/v1/retexture/:id/stream

Stream di un task di Retexture

Questo endpoint trasmette in streaming gli aggiornamenti in tempo reale di un task di Retexture utilizzando i Server-Sent Events (SSE).

Parametri

  • Name
    id
    Type
    path
    Description

    Identificatore univoco del task di Retexture da trasmettere in streaming.

Restituisce

Restituisce uno stream di oggetti Retexture Task come Server-Sent Events.

Per i task PENDING o IN_PROGRESS, lo stream di risposta includerà solo i campi necessari progress e status.

Request

GET
/openapi/v1/retexture/018a210d-8ba4-705c-b111-1f1776f7f578/stream
curl -N https://api.meshy.ai/openapi/v1/retexture/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 50,
  "status": "IN_PROGRESS"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "retexture",
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1692771650657,
  "started_at": 1692771667037,
  "finished_at": 1692771669037,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.mtl?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  },
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX",
      "emission": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 10
}

L'oggetto Retexture Task

L'oggetto Retexture Task è un'unità di lavoro che Meshy utilizza per generare una texture 3D a partire da input testuali o di immagine. Il modello presenta le seguenti proprietà:

Proprietà

  • Name
    id
    Type
    string
    Description

    Identificatore univoco del task. Sebbene come dettaglio implementativo utilizziamo un UUID k-sortable per gli id dei task, non dovresti fare alcuna assunzione sul formato dell'id.

  • Name
    type
    Type
    string
    Description

    Tipo del task Retexture. Il valore è retexture.

  • Name
    model_urls
    Type
    object
    Description

    URL scaricabile del file del modello 3D con texture generato da Meshy.

    • Name
      glb
      Type
      string
      Description

      URL scaricabile del file GLB.

    • Name
      fbx
      Type
      string
      Description

      URL scaricabile del file FBX.

    • Name
      obj
      Type
      string
      Description

      URL scaricabile del file OBJ.

    • Name
      usdz
      Type
      string
      Description

      URL scaricabile del file USDZ.

    • Name
      mtl
      Type
      string
      Description

      URL scaricabile del file MTL, restituito insieme alle esportazioni OBJ quando sono presenti texture.

    • Name
      stl
      Type
      string
      Description

      URL scaricabile del file STL.

    • Name
      3mf
      Type
      string
      Description

      URL scaricabile del file 3MF. Presente solo quando 3mf è stato richiesto tramite target_formats.

  • Name
    text_style_prompt
    Type
    string
    Description

    Questo è il prompt di testo che è stato utilizzato per creare il task di texturing.

  • Name
    image_style_url
    Type
    string
    Description

    Questo è l'input immagine che è stato utilizzato per creare il task di texturing.

  • Name
    multiview_image_urls
    Type
    string[]
    Description

    URL scaricabili delle immagini di riferimento multi-vista che sono state utilizzate per creare il task di texturing. Presente solo quando il task è stato creato con multiview_image_urls.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL scaricabile dell'immagine di miniatura del file del modello.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    URL scaricabile di una versione con sfondo trasparente (RGBA) di thumbnail_url. Presente solo quando il task è stato creato con alpha_thumbnail: true e l'anteprima trasparente è stata renderizzata con successo; altrimenti questo campo viene omesso.

  • Name
    progress
    Type
    integer
    Description

    Progresso del task. Se il task non è ancora iniziato, questa proprietà sarà 0. Una volta che il task è andato a buon fine, diventerà 100.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp di quando il task è stato avviato, in millisecondi. Se il task non è ancora iniziato, questa proprietà sarà 0.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp di quando il task è stato creato, in millisecondi.

  • Name
    expires_at
    Type
    timestamp
    Description

    Timestamp di quando il risultato del task scade, in millisecondi.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp di quando il task è stato completato, in millisecondi. Se il task non è ancora terminato, questa proprietà sarà 0.

  • Name
    status
    Type
    string
    Description

    Stato del task. I valori possibili sono uno tra PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    texture_urls
    Type
    array
    Description

    Un array di oggetti URL di texture generati dal task. Normalmente questo contiene un solo oggetto URL di texture. Ogni URL di texture ha le seguenti proprietà:

    • Name
      base_color
      Type
      string
      Description

      URL scaricabile dell'immagine della mappa del colore base.

    • Name
      metallic
      Type
      string
      Description

      URL scaricabile dell'immagine della mappa metallica.

    • Name
      normal
      Type
      string
      Description

      URL scaricabile dell'immagine della normal map.

    • Name
      roughness
      Type
      string
      Description

      URL scaricabile dell'immagine della mappa di rugosità.

    • Name
      emission
      Type
      string
      Description

      URL scaricabile dell'immagine della mappa di emissione.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Il conteggio dei task precedenti.

  • Name
    task_error
    Type
    object
    Description

    Dettagli dell'errore per i task falliti. Consulta Errori per il riferimento completo all'oggetto task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Il numero di crediti consumati da questo task. Presente quando lo stato del task è PENDING, IN_PROGRESS, o SUCCEEDED. Restituisce 0 per i task FAILED (i crediti vengono rimborsati in caso di fallimento).

Example Retexture Task Model

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "retexture",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.usdz?Expires=***"
  },
  "text_style_prompt": "red fangs, Samurai outfit that fused with japanese batik style",
  "image_style_url": "https://assets.meshy.ai/***/image/example_image.jpg?Expires=***",
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "progress": 100,
  "started_at": 1692771667037,
  "created_at": 1692771650657,
  "expires_at": 1692771679037,
  "finished_at": 1692771669037,
  "status": "SUCCEEDED",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0.png?Expires=***",
      "metallic": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_metallic.png?Expires=XXX",
      "normal": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_normal.png?Expires=XXX",
      "roughness": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_roughness.png?Expires=XXX",
      "emission": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/texture_0_emission.png?Expires=XXX"
    }
  ],
  "preceding_tasks": 0,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 10
}