Creative Lab — Collapsible Fidget API

Förvandla ett källfoto till en print-in-place hopfällbar fidget-leksak: motivets silhuett blir en uppsättning nästlade koncentriska ringar som fälls ihop platt och sträcker ut sig igen, utskrivna i ett enda stycke utan montering.

  • POST /openapi/creative-lab/fidget-collapsible/v1

Till skillnad från de andra Creative Lab-slutpunkterna saknar denna ett prototyp-/byggstadiepar — det finns inga mellanliggande kandidater att välja mellan, så en enda uppgift bär bilden hela vägen till en 3D-modell. Geometrikontrollerna som webbappen exponerar (storlek, antal lager, gapbredd, väggtjocklek, extruderingsdjup, utbuktning) är inte heller en del av förfrågan: varje uppgift byggs med samma serversidans standardvärden.


POST/openapi/creative-lab/fidget-collapsible/v1

Skapa en Collapsible Fidget-uppgift

Generera en hopfällbar fidget-modell (collapsible fidget) från ett källfoto. Se The Collapsible Fidget Task Object för hur svaret ser ut.

Varje uppgift kostar 6 credits och kräver en betalplan.

Parametrar

  • Name
    image_url
    Type
    string
    Obligatorisk
    Description

    Källfoto som Meshy ska omvandla till en hopfällbar fidget. Vi stödjer för närvarande formaten .jpg, .jpeg, .png och .webp.

    Det finns två sätt att tillhandahålla bilden:

    • Offentligt tillgänglig URL: En URL som är tillgänglig från det publika internet.
    • Data URI: En base64-kodad data URI av bilden. Exempel på en data URI: data:image/jpeg;base64,<din base64-kodade bilddata>.

    Ett motiv med en tydlig, sluten kontur fungerar bäst — det är silhuetten som blir till ringarna. Röriga bakgrunder, flera separata motiv eller mycket tunna former kan lämna för lite yta för de nästlade väggarna, och uppgiften misslyckas med ett uppgiftsfel.

  • Name
    name
    Type
    string
    Description

    Valfritt uppgiftsnamn för visningsändamål. Max 100 tecken. Detta är endast en etikett för uppgiften; ingenting graveras på modellen.

Returvärden

Egenskapen result i svaret innehåller id för den nyskapade collapsible fidget-uppgiften. Fråga (poll) Get a Task-endpointen eller prenumerera på strömmen tills uppgiften når SUCCEEDED, ladda sedan ner den utskrivbara STL-filen från model_urls.stl (och, när den finns, GLB-filen från model_urls.glb för att förhandsgranska den först).

Felscenarier

  • Name
    400 - Bad Request
    Description

    Begäran var inte godtagbar. Vanliga orsaker:

    • Saknad parameter: image_url krävs.
    • Ogiltigt bildformat: Den angivna image_url har inte ett format som stöds (.jpg, .jpeg, .png, .webp).
    • Bilddimensioner utanför tillåtet intervall: Bilden är för liten, överskrider den maximala filstorleken, eller överskrider det maximala antalet pixlar.
    • Onåbar URL: image_url kunde inte laddas ner (404 eller timeout).
    • Ogiltig Data URI: Base64-strängen är felaktigt formaterad.
    • Innehåll flaggat: Den angivna bilden flaggades av NSFW-moderation.
  • Name
    401 - Unauthorized
    Description

    Autentiseringen misslyckades. Kontrollera din API-nyckel.

  • Name
    402 - Payment Required
    Description

    Antingen har ditt konto en gratisplan — att skapa uppgifter på denna endpoint kräver en betalplan — eller så har du otillräckligt med credits.

  • Name
    403 - Forbidden
    Description

    Den angivna bilden flaggades för intrång i immateriella rättigheter.

  • Name
    429 - Too Many Requests
    Description

    Du har överskridit din hastighetsgräns.

Request

POST
/openapi/creative-lab/fidget-collapsible/v1
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1 \
  -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"
}

GET/openapi/creative-lab/fidget-collapsible/v1/:id

Hämta en Collapsible Fidget-uppgift

Hämta en collapsible fidget-uppgift givet ett giltigt uppgifts-id. Endast uppgifter skapade via denna endpoint kan nås här — en uppgift från en annan Creative Lab-endpoint, eller en som skapats i webbappen, returnerar 404.

Se The Collapsible Fidget Task Object för svarets struktur.

Parametrar

  • Name
    id
    Type
    path
    Description

    Unik identifierare för den collapsible fidget-uppgift som ska hämtas.

Returnerar

Svaret innehåller objektet för collapsible fidget-uppgiften.

Request

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

Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-fidget-collapsible",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123512000,
  "expires_at": 1729382712000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}

DELETE/openapi/creative-lab/fidget-collapsible/v1/:id

Ta bort en hopfällbar Fidget-uppgift

Avbryter en hopfällbar fidget-uppgift. Om uppgiften fortfarande är PENDING återbetalas de credits som förbrukades vid skapandet. Uppgifter som redan är IN_PROGRESS avbryts utan återbetalning (arbetaren kan redan hålla på att förbruka resurser). Uppgifter som redan har nått ett slutgiltigt tillstånd (SUCCEEDED, FAILED, CANCELED) kan inte avbrytas.

Sökvägsparametrar

  • Name
    id
    Type
    path
    Description

    Unik identifierare för den hopfällbara fidget-uppgift som ska avbrytas.

Returer

Returnerar 204 No Content vid lyckad förfrågan med en tom body.

Felmodus

  • Name
    400 - Bad Request
    Description

    Uppgiften befinner sig redan i ett slutgiltigt tillstånd och kan inte avbrytas.

  • Name
    404 - Not Found
    Description

    Uppgiften finns inte, tillhör en annan användare eller skapades inte via denna endpoint.

Request

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

Response

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

GET/openapi/creative-lab/fidget-collapsible/v1/:id/stream

Streama en Collapsible Fidget-uppgift

Streama realtidsuppdateringar för en collapsible fidget-uppgift via Server-Sent Events (SSE). En uppgift som inte finns, eller som inte skapades via denna endpoint, sänder ut en enda event: error-payload med status_code: 404 och stänger sedan strömmen.

Parametrar

  • Name
    id
    Type
    path
    Description

    Unik identifierare för den collapsible fidget-uppgift som ska streamas.

Returer

Returnerar en ström av Collapsible Fidget-uppgiftsobjekt som Server-Sent Events. Varje bildruta innehåller det fullständiga uppgiftsobjektet för det aktuella steget — samma form som Get-endpointen returnerar — så medan uppgiften är PENDING eller IN_PROGRESS är utdatafälten helt enkelt inte ifyllda ännu (null, [] eller {}) och finished_at är null.

Request

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

Response Stream

// Error event example (task not found, or not created through this endpoint)
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// Every frame is the full task object; fields not yet populated are null / empty.
// The PENDING frame below is abbreviated to the fields that change.
event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-fidget-collapsible",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123512000,
  "expires_at": 1729382712000,
  "task_error": null,
  "consumed_credits": 6,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}

GET/openapi/creative-lab/fidget-collapsible/v1

Lista uppfällbara fidget-uppgifter

Hämta en paginerad lista över dina uppfällbara fidget-uppgifter. Endast uppgifter som skapats via denna endpoint ingår.

Frågeparametrar

  • Name
    page_num
    Type
    integer
    standard 1
    Description

    Sidnummer för paginering.

  • Name
    page_size
    Type
    integer
    standard 10
    Description

    Gräns för sidstorlek. Maximalt tillåtet är 100 objekt.

  • Name
    sort_by
    Type
    string
    standard -created_at
    Description

    Fält att sortera efter. Tillgängliga värden:

    • +created_at: Sortera efter skapandetid i stigande ordning.
    • -created_at: Sortera efter skapandetid i fallande ordning.

Returnerar

Returnerar en paginerad lista med objektet för uppfällbara fidget-uppgifter.

Request

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

Response

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "creative-lab-fidget-collapsible",
    "name": "",
    "status": "SUCCEEDED",
    "progress": 100,
    "created_at": 1729123456000,
    "started_at": 1729123460000,
    "finished_at": 1729123512000,
    "expires_at": 1729382712000,
    "preceding_tasks": 0,
    "task_error": null,
    "consumed_credits": 6,
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
    }
  }
]

Objektet Collapsible Fidget Task

Collapsible Fidget Task-objektet är en arbetsenhet som Meshy håller reda på för att omvandla ett källfoto till en utskriftsklar hopfällbar fidget-modell. Det är en enstegsuppgift: det finns ingen prototyp att kedja från, och den mellanliggande silhuetten är inte en del av svaret.

Egenskaper

  • Name
    id
    Type
    string
    Description

    Unik identifierare för uppgiften. Även om vi använder en k-sorterbar UUID för uppgifts-id som ett implementationsdetalj, bör du inte göra några antaganden om formatet på id:t.

  • Name
    type
    Type
    string
    Description

    Typ av uppgift. Värdet är creative-lab-fidget-collapsible.

  • Name
    name
    Type
    string
    Description

    Uppgiftsnamnet som angavs när uppgiften skapades. Tom sträng om inget namn angavs.

  • Name
    status
    Type
    string
    Description

    Uppgiftens status. Möjliga värden är ett av PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Uppgiftens progress. Om uppgiften ännu inte har startat är denna egenskap 0. Så snart uppgiften har lyckats blir den 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Tidsstämpel för när uppgiften skapades, i millisekunder.

  • Name
    started_at
    Type
    timestamp
    Description

    Tidsstämpel för när uppgiften startades, i millisekunder. Om uppgiften ännu inte har startat är denna egenskap null.

  • Name
    finished_at
    Type
    timestamp
    Description

    Tidsstämpel för när uppgiften avslutades, i millisekunder. Om uppgiften ännu inte är avslutad är denna egenskap null.

  • Name
    expires_at
    Type
    timestamp
    Description

    Tidsstämpel för när uppgiftens resultat upphör att gälla, i millisekunder.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Antalet föregående uppgifter.

  • Name
    task_error
    Type
    object
    Description

    Felinformation för misslyckade uppgifter. Se Fel för den fullständiga referensen för objektet task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Antalet credits som förbrukats av denna uppgift. Finns när uppgiftens status är PENDING, IN_PROGRESS eller SUCCEEDED. Returnerar 0 för FAILED-uppgifter (credits återbetalas vid misslyckande).

  • Name
    model_urls
    Type
    object
    Description

    Nedladdningsbara URL:er för den genererade 3D-modellen. Fylls i när uppgiften har SUCCEEDED: stl finns alltid med, glb endast när förhandsgranskningsrenderingen lyckades.

    • Name
      stl
      Type
      string
      Description

      Nedladdningsbar URL till STL-filen. Detta är den utskrivbara leveransen — skicka den direkt till en slicer.

    • Name
      glb
      Type
      string
      Description

      Nedladdningsbar URL till GLB-filen, för att förhandsgranska modellen i en 3D-visare. Dess färger är endast för förhandsgranskning: STL innehåller ingen färg, och en utskriven fidget får sin färg från filamentet. GLB:n tillhandahålls på bästa möjliga sätt: när förhandsgranskningsrenderingen inte är tillgänglig utelämnas nyckeln helt från model_urls, så läs den defensivt — stl är leveransen och finns alltid med i en SUCCEEDED-uppgift.

Example Collapsible Fidget Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-fidget-collapsible",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123512000,
  "expires_at": 1729382712000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}