Creative Lab — Figuur-API

Zet een bronfoto in twee fasen om in een verzamelbare 3D-figuur in chibi-stijl: prototype genereert een gestileerde conceptafbeelding op basis van je invoerfoto, waarna build die conceptafbeelding omzet in een getextureerd 3D-model. De twee fasen zijn gekoppeld via input_task_id.

  • POST /openapi/creative-lab/figure/v1/prototype
  • POST /openapi/creative-lab/figure/v1/build

POST/openapi/creative-lab/figure/v1/prototype

Een figuur-prototypetaak maken

Genereer één conceptafbeelding in chibi-stijl op basis van de bronfoto. De geretourneerde taak-ID is wat je als input_task_id doorgeeft aan de build endpoint. Raadpleeg Het figuur-prototypetaakobject voor de responsstructuur.

Parameters

  • Name
    image_url
    Type
    string
    Verplicht
    Description

    Bronfoto die Meshy moet stileren als een chibi-figuur. We ondersteunen momenteel de formaten .jpg, .jpeg, .png en .webp.

    Er zijn twee manieren om de afbeelding aan te leveren:

    • Openbaar toegankelijke URL: Een URL die toegankelijk is vanaf het openbare internet.
    • Data URI: Een base64-gecodeerde Data URI van de afbeelding. Voorbeeld van een Data URI: data:image/jpeg;base64,<your base64-encoded image data>.
  • Name
    name
    Type
    string
    Description

    Optionele taaknaam voor weergavedoeleinden. Maximaal 100 tekens.

Retourneert

De eigenschap result van de response bevat de taak-id van de nieuw aangemaakte figuur-prototypetaak. Poll de Een taak ophalen endpoint of abonneer je op de stream totdat de taak SUCCEEDED bereikt, en geef die ID vervolgens door aan de build endpoint als input_task_id.

Foutmodi

  • Name
    400 - Bad Request
    Description

    De request was niet aanvaardbaar. Veelvoorkomende oorzaken:

    • Ontbrekende parameter: image_url is vereist.
    • Ongeldig afbeeldingsformaat: De opgegeven image_url heeft geen ondersteund formaat (.jpg, .jpeg, .png, .webp).
    • Afbeeldingsafmetingen buiten bereik: De afbeelding is te klein, overschrijdt de maximale bestandsgrootte of overschrijdt het maximale aantal pixels.
    • Onbereikbare URL: De image_url kon niet worden gedownload (404 of timeout).
    • Ongeldige Data URI: De base64-tekenreeks is onjuist gevormd.
    • Content gemarkeerd: De invoerafbeelding is gemarkeerd door NSFW- of intellectuele-eigendoms-moderation.
  • Name
    401 - Unauthorized
    Description

    De authenticatie is mislukt. Controleer je API-sleutel.

  • Name
    402 - Payment Required
    Description

    Onvoldoende credits om deze taak uit te voeren.

  • Name
    429 - Too Many Requests
    Description

    Je hebt je rate limit overschreden.

Request

POST
/openapi/creative-lab/figure/v1/prototype
# Stage 1: generate a chibi-style concept image
curl https://api.meshy.ai/openapi/creative-lab/figure/v1/prototype \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "image_url": "<your publicly accessible image url or base64-encoded data URI>"
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}
Prototype example
Start with a source portrait, then generate the prototype image used by the build stage.
Bronportret gebruikt als invoer voor Creative Lab-figuur
Prototype input
Prototypeafbeelding van een figuurtje in chibi-stijl gegenereerd op basis van de bronfoto
Prototype output

POST/openapi/creative-lab/figure/v1/build

Een figuur-buildtaak maken

Genereer de uiteindelijke getextureerde 3D-figuur vanuit een geslaagde prototypetaak. De build gebruikt dezelfde afbeelding-naar-3D-pipeline als Afbeelding naar 3D, dus de indeling van het responsobject en de lijst met output-URL's komen exact overeen. Raadpleeg Het figuur-buildtaakobject voor de vorm van de respons.

Parameters

  • Name
    input_task_id
    Type
    string
    Verplicht
    Description

    De taak-ID van een prototypetaak die via dezelfde OpenAPI-endpoint is aangemaakt. Het prototype moet zijn aangemaakt met dezelfde API-sleutel, moet SUCCEEDED hebben bereikt en moet precies één kandidaatafbeelding hebben geproduceerd.

    Prototypetaken die via de webapp zijn aangemaakt, worden niet geaccepteerd — de build-endpoint accepteert alleen prototypetaken die zijn geproduceerd door POST /openapi/creative-lab/figure/v1/prototype en weigert elke andere bron met 404.

  • Name
    name
    Type
    string
    Description

    Optionele taaknaam voor weergavedoeleinden. Maximaal 100 tekens.

Retourneert

De eigenschap result van de respons bevat de taak-id van de nieuw aangemaakte figuur-buildtaak. Poll de endpoint Een taak ophalen of abonneer je op de stream totdat de taak SUCCEEDED bereikt, en download daarna de getextureerde GLB vanuit model_urls.glb (of het OBJ + MTL-paar vanuit model_urls.obj en model_urls.mtl als je downstream-pipeline de voorkeur geeft aan OBJ).

Foutmodi

  • Name
    400 - Bad Request
    Description

    Het verzoek was onacceptabel. Veelvoorkomende oorzaken:

    • Ontbrekende parameter: input_task_id is vereist.
    • Ongeldige UUID: De input_task_id is geen geldige UUID.
    • Bovenliggende taak niet geslaagd: De gerefereerde prototypetaak heeft SUCCEEDED nog niet bereikt.
    • Geen kandidaat: De prototypetaak is geslaagd, maar heeft geen kandidaatafbeelding geproduceerd.
  • Name
    401 - Unauthorized
    Description

    Authenticatie is mislukt. Controleer je API-sleutel.

  • Name
    402 - Payment Required
    Description

    Onvoldoende credits om deze taak uit te voeren.

  • Name
    404 - Not Found
    Description

    De gerefereerde prototypetaak bestaat niet, behoort toe aan een andere gebruiker of is via de webapp aangemaakt (alleen prototypetaken in API-mode kunnen worden gekoppeld aan build).

  • Name
    429 - Too Many Requests
    Description

    Je hebt je rate limit overschreden.

Request

POST
/openapi/creative-lab/figure/v1/build
# Stage 2: chain build off a succeeded prototype task
curl https://api.meshy.ai/openapi/creative-lab/figure/v1/build \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
  }'

Response

{
  "result": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb"
}
Build example
The build task turns the selected prototype image into a downloadable textured 3D model.
Creative Lab Figure build model preview
Build model preview

GET/openapi/creative-lab/figure/v1/(prototype|build)/:id

Een figuurtaak ophalen

Haal een prototype- of buildtaak op met een geldige taak-id. Het URL-pad moet overeenkomen met de fase van de taak — een buildtaak die via /prototype/:id wordt opgehaald, retourneert 404, en omgekeerd.

Raadpleeg Het figuur-prototypetaakobject en Het figuur-buildtaakobject voor responsevormen.

Parameters

  • Name
    id
    Type
    path
    Description

    Unieke identificatie voor de figuurtaak die moet worden opgehaald.

Retourneert

De response bevat het figuurtaakobject. De vorm hangt af van welke fase is aangevraagd.

Request

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

# Build
curl https://api.meshy.ai/openapi/creative-lab/figure/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Prototype Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-figure-prototype",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Build Response

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-figure-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 20,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}

DELETE/openapi/creative-lab/figure/v1/(prototype|build)/:id

Een figuurtaak verwijderen

Annuleer een figuurtaak. Als de taak nog PENDING is, worden de credits die bij het aanmaken zijn verbruikt terugbetaald. Taken die al IN_PROGRESS zijn, worden geannuleerd zonder terugbetaling (de worker verbruikt mogelijk al bronnen). Taken die al een eindstatus hebben bereikt (SUCCEEDED, FAILED, CANCELED) kunnen niet worden geannuleerd.

Het URL-pad moet overeenkomen met de fase van de taak — DELETE op /prototype/:buildId retourneert 404.

Padparameters

  • Name
    id
    Type
    path
    Description

    Unieke identificatie voor de figuurtaak die moet worden geannuleerd.

Retourneert

Retourneert 204 No Content bij succes met een lege body.

Foutmodi

  • Name
    400 - Bad Request
    Description

    De taak bevindt zich al in een eindstatus en kan niet worden geannuleerd.

  • Name
    404 - Not Found
    Description

    De taak bestaat niet, behoort toe aan een andere gebruiker, of de fase komt niet overeen met het URL-pad.

Request

DELETE
/openapi/creative-lab/figure/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/creative-lab/figure/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// Returns 204 No Content on success (empty body).

GET/openapi/creative-lab/figure/v1/(prototype|build)/:id/stream

Een figuurtaak streamen

Stream realtime updates voor een figuurtaak via Server-Sent Events (SSE). Het URL-pad moet overeenkomen met de fase van de taak — het openen van een stream op /prototype/:buildId/stream verzendt één event: error payload met status_code: 404 en sluit de stream.

Parameters

  • Name
    id
    Type
    path
    Description

    Unieke identificatie voor de figuurtaak die moet worden gestreamd.

Retourneert

Retourneert een stream van figuurprototype- of figuurbuild-taakobjecten als Server-Sent Events. Voor PENDING- of IN_PROGRESS-taken bevat de responsstream alleen de noodzakelijke velden progress en status.

Request

GET
/openapi/creative-lab/figure/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream
curl -N https://api.meshy.ai/openapi/creative-lab/figure/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example (wrong stage or task not found)
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": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-figure-build",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "task_error": null,
  "consumed_credits": 20,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}

GET/openapi/creative-lab/figure/v1/(prototype|build)

Figuurtaken weergeven

Haal een gepagineerde lijst op van je figuurtaken voor één enkele fase. Het URL- pad selecteert de fase — /prototype retourneert prototype-taken; /build retourneert build-taken. Taken uit de andere fase worden in geen van beide responses opgenomen.

Padparameters

  • Name
    stage
    Type
    path
    Verplicht
    Description

    Ofwel prototype of build. De collectie retourneert alleen taken waarvan de fase overeenkomt met de URL — het ophalen van /prototype retourneert nooit build-taken en omgekeerd.

Queryparameters

  • Name
    page_num
    Type
    integer
    standaard 1
    Description

    Paginanummer voor paginering.

  • Name
    page_size
    Type
    integer
    standaard 10
    Description

    Limiet voor paginagrootte. Maximaal toegestaan is 50 items.

  • Name
    sort_by
    Type
    string
    standaard -created_at
    Description

    Veld om op te sorteren. Beschikbare waarden:

    • +created_at: Sorteer op aanmaaktijd in oplopende volgorde.
    • -created_at: Sorteer op aanmaaktijd in aflopende volgorde.

Retourneert

Retourneert een gepagineerde lijst van het taakobject per fase — ofwel het taakobject voor het figuurprototype bij het weergeven van /prototype of het taakobject voor de figuur-build bij het weergeven van /build.

Request

GET
/openapi/creative-lab/figure/v1/prototype
# List prototype tasks
curl https://api.meshy.ai/openapi/creative-lab/figure/v1/prototype?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# List build tasks
curl https://api.meshy.ai/openapi/creative-lab/figure/v1/build?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response (List Prototype Tasks)

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "creative-lab-figure-prototype",
    "name": "",
    "status": "SUCCEEDED",
    "progress": 100,
    "created_at": 1729123456000,
    "started_at": 1729123460000,
    "finished_at": 1729123486000,
    "expires_at": 1729382686000,
    "preceding_tasks": 0,
    "task_error": null,
    "consumed_credits": 6,
    "image_urls": [
      "https://assets.meshy.ai/***/concept.png?Expires=***"
    ]
  }
]

Het figuur-prototypetaakobject

Het figuur-prototypetaakobject is een werkeenheid die Meshy bijhoudt om een conceptafbeelding in chibi-stijl te genereren vanuit een bronfoto. De uitvoer van deze fase wordt doorgeschakeld naar de bouwfase via input_task_id.

Eigenschappen

  • Name
    id
    Type
    string
    Description

    Unieke identifier voor de taak. Hoewel we een k-sorteerbare UUID gebruiken voor taak-id's als implementatiedetail, moet je geen aannames doen over de indeling van de id.

  • Name
    type
    Type
    string
    Description

    Type van de taak. De waarde is creative-lab-figure-prototype.

  • Name
    name
    Type
    string
    Description

    De taaknaam die is opgegeven toen de taak werd aangemaakt. Lege string als er geen naam is opgegeven.

  • Name
    status
    Type
    string
    Description

    Status van de taak. Mogelijke waarden zijn een van PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progress van de taak. Als de taak nog niet is gestart, is deze eigenschap 0. Zodra de taak is geslaagd, wordt dit 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is aangemaakt, in milliseconden.

  • Name
    started_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is gestart, in milliseconden. Als de taak nog niet is gestart, is deze eigenschap 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is voltooid, in milliseconden. Als de taak nog niet is voltooid, is deze eigenschap 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer het taakresultaat verloopt, in milliseconden.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Het aantal voorafgaande taken.

  • Name
    task_error
    Type
    object
    Description

    Foutdetails voor mislukte taken. Zie Fouten voor de volledige task_error-objectreferentie.

  • Name
    consumed_credits
    Type
    integer
    Description

    Het aantal credits dat door deze taak is verbruikt. Aanwezig wanneer de taakstatus PENDING, IN_PROGRESS of SUCCEEDED is. Retourneert 0 voor FAILED-taken (credits worden terugbetaald bij mislukking).

  • Name
    image_urls
    Type
    array of strings
    Description

    Downloadbare URL's voor de conceptafbeeldingskandidaten die door deze prototypetaak zijn gegenereerd. Momenteel retourneert de API altijd precies één kandidaat; het veld is een array zodat toekomstige revisies meerdere kandidaten kunnen tonen zonder een breaking change.

Example Figure Prototype Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-figure-prototype",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Het figuur-buildtaakobject

Het figuur-buildtaakobject is een werkeenheid die Meshy bijhoudt om een getextureerd 3D-figuur te genereren vanuit een geslaagde prototypetaak. Het voert dezelfde Afbeelding naar 3D-pijplijn uit die wordt gebruikt door Afbeelding naar 3D, dus de uitvoervelden weerspiegelen het taakobject van die endpoint.

Eigenschappen

  • Name
    id
    Type
    string
    Description

    Unieke identificatie voor de taak.

  • Name
    type
    Type
    string
    Description

    Type van de taak. De waarde is creative-lab-figure-build.

  • Name
    name
    Type
    string
    Description

    De taaknaam die werd opgegeven toen de taak werd aangemaakt. Lege string als er geen naam is opgegeven.

  • Name
    status
    Type
    string
    Description

    Status van de taak. Mogelijke waarden zijn een van PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progress van de taak. Als de taak nog niet is gestart, is deze eigenschap 0. Zodra de taak is geslaagd, wordt dit 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Tijdstempel waarop de taak werd aangemaakt, in milliseconden.

  • Name
    started_at
    Type
    timestamp
    Description

    Tijdstempel waarop de taak werd gestart, in milliseconden.

  • Name
    finished_at
    Type
    timestamp
    Description

    Tijdstempel waarop de taak werd voltooid, in milliseconden.

  • Name
    expires_at
    Type
    timestamp
    Description

    Tijdstempel waarop het taakresultaat verloopt, in milliseconden.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Het aantal voorafgaande taken. Alleen betekenisvol wanneer de status PENDING is.

  • Name
    task_error
    Type
    object
    Description

    Foutdetails voor mislukte taken. Zie Fouten voor de volledige task_error-objectreferentie.

  • Name
    consumed_credits
    Type
    integer
    Description

    Het aantal credits dat door deze taak is verbruikt. Retourneert 0 voor FAILED-taken (credits worden terugbetaald bij mislukking).

  • Name
    prompt
    Type
    string
    Description

    Altijd leeg voor figuuropbouw. Aanwezig voor cross-endpointcompatibiliteit met de gedeelde V2ImageTo3DTaskResponse-structuur die wordt gebruikt door Afbeelding naar 3D.

  • Name
    negative_prompt
    Type
    string
    Description

    Altijd leeg voor figuuropbouw. Aanwezig voor cross-endpointcompatibiliteit.

  • Name
    texture_prompt
    Type
    string
    Description

    Altijd leeg voor figuuropbouw. Aanwezig voor cross-endpointcompatibiliteit.

  • Name
    texture_image_url
    Type
    string
    Description

    Altijd leeg voor figuuropbouw. Aanwezig voor cross-endpointcompatibiliteit.

  • Name
    model_urls
    Type
    object
    Description

    Downloadbare URL's voor het gegenereerde 3D-model. De figuuropbouw levert een getextureerde GLB plus het OBJ + MTL-paar voor pipelines die de voorkeur geven aan Wavefront OBJ. De veldstructuur komt overeen met het Afbeelding naar 3D model_urls-object, zodat toekomstige formaattoevoegingen kunnen worden ingevoegd zonder een breaking change.

    • Name
      glb
      Type
      string
      Description

      Downloadbare URL naar het getextureerde GLB-bestand.

    • Name
      obj
      Type
      string
      Description

      Downloadbare URL naar het Wavefront OBJ-bestand (geometrie + UV).

    • Name
      mtl
      Type
      string
      Description

      Downloadbare URL naar het bijbehorende MTL-materiaalbestand van OBJ. Koppel met obj en de entry uit texture_urls[0].base_color.

  • Name
    thumbnail_url
    Type
    string
    Description

    Downloadbare URL naar de thumbnail-afbeelding van het modelbestand.

  • Name
    texture_urls
    Type
    array
    Description

    Een array met textuur-URL-objecten die door deze taak zijn gegenereerd. Bevat momenteel één object met de basiskleurmap.

    • Name
      base_color
      Type
      string
      Description

      Downloadbare URL naar de afbeelding van de basiskleurmap.

Example Figure Build Task Object

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-figure-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 20,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}