Creative Lab — Collapsible Fidget API

Gawing isang print-in-place na collapsible fidget toy ang isang source photo: ang silweta ng paksa ay nagiging isang hanay ng magkakaugnay na concentric rings na tumitiklop nang patag at umuunat muli, na naka-print nang buo nang walang assembly.

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

Hindi tulad ng ibang mga endpoint ng Creative Lab, wala itong prototype/build stage pair — walang mga intermediate na kandidato na pagpipilian, kaya ang iisang task ang nagdadala sa larawan hanggang sa maging 3D model. Ang mga kontrol ng heometriya na inilalantad ng web app (laki, bilang ng layer, lapad ng gap, kapal ng dingding, lalim ng extrusion, bulge) ay hindi rin bahagi ng request: bawat task ay bumubuo gamit ang parehong mga default sa server-side.


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

Create a Collapsible Fidget Task

Gumawa ng collapsible fidget model mula sa isang source photo. Sumangguni sa The Collapsible Fidget Task Object para sa hugis ng response.

Ang bawat task ay nagkakahalaga ng 6 credits at nangangailangan ng paid plan.

Mga Parameter

  • Name
    image_url
    Type
    string
    Kinakailangan
    Description

    Source photo na gagawin ni Meshy na collapsible fidget. Kasalukuyang sinusuportahan namin ang mga format na .jpg, .jpeg, .png, at .webp.

    May dalawang paraan para maibigay ang larawan:

    • Publicly accessible URL: Isang URL na naa-access mula sa pampublikong internet.
    • Data URI: Isang base64-encoded data URI ng larawan. Halimbawa ng data URI: data:image/jpeg;base64,<your base64-encoded image data>.

    Pinakamainam ang isang subject na may isang malinaw at sarado na outline — ang silhouette ang magiging mga rings. Ang magulong background, ilang hiwalay na subject, o mga napakanipis na hugis ay maaaring makapabawas ng sapat na espasyo para sa nested walls, at mabibigo ang task na may task error.

  • Name
    name
    Type
    string
    Description

    Opsyonal na pangalan ng task para sa display purposes. Maximum na 100 characters. Ito ay task label lamang; walang kinakatha sa modelo.

Ibinabalik

Ang result property ng response ay naglalaman ng task id ng bagong likhang collapsible fidget task. I-poll ang Get a Task endpoint o mag-subscribe sa stream hanggang maabot ng task ang SUCCEEDED, tapos i-download ang printable STL mula sa model_urls.stl (at, kapag mayroon, ang GLB mula sa model_urls.glb para makita muna ito).

Mga Failure Mode

  • Name
    400 - Bad Request
    Description

    Hindi tanggap ang request. Karaniwang sanhi:

    • Kulang na parameter: Kinakailangan ang image_url.
    • Hindi wastong image format: Ang binigay na image_url ay hindi isang suportadong format (.jpg, .jpeg, .png, .webp).
    • Hindi sakop ang image dimensions: Ang larawan ay masyadong maliit, lumampas sa maximum na file size, o lumampas sa maximum na bilang ng pixel.
    • Hindi ma-access na URL: Hindi ma-download ang image_url (404 o timeout).
    • Hindi wastong Data URI: Malformed ang base64 string.
    • Na-flag ang content: Na-flag ng NSFW moderation ang input image.
  • Name
    401 - Unauthorized
    Description

    Nabigo ang authentication. Paki-check ang iyong API key.

  • Name
    402 - Payment Required
    Description

    Alinman sa free plan ang account mo — nangangailangan ng paid plan ang paggawa ng task sa endpoint na ito — o kulang ang iyong credits.

  • Name
    403 - Forbidden
    Description

    Na-flag ang input image dahil sa paglabag sa intellectual property.

  • Name
    429 - Too Many Requests
    Description

    Lumampas ka sa iyong rate limit.

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

Kunin ang Collapsible Fidget Task

Kunin ang isang collapsible fidget task gamit ang isang valid na task id. Tanging ang mga task na ginawa gamit ang endpoint na ito ang maa-access dito — ang isang task mula sa ibang Creative Lab endpoint, o isang task na ginawa sa web app, ay magbabalik ng 404.

Sumangguni sa The Collapsible Fidget Task Object para sa hugis ng response.

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Natatanging identifier para sa collapsible fidget task na kukunin.

Ibinabalik

Ang response ay naglalaman ng collapsible fidget task object.

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

Burahin ang Collapsible Fidget Task

Kanselahin ang isang collapsible fidget task. Kung ang task ay PENDING pa rin, ang mga credits na nagamit sa oras ng paglikha ay ire-refund. Ang mga task na IN_PROGRESS na ay kinakansela nang walang refund (maaaring ginagamit na ng worker ang mga resources). Ang mga task na nakarating na sa isang terminal state (SUCCEEDED, FAILED, CANCELED) ay hindi na maaaring kanselahin.

Mga Path Parameter

  • Name
    id
    Type
    path
    Description

    Natatanging identifier para sa collapsible fidget task na kakanselahin.

Ibinabalik

Nagbabalik ng 204 No Content kapag matagumpay, na may walang laman na body.

Mga Failure Mode

  • Name
    400 - Bad Request
    Description

    Ang task ay nasa terminal state na at hindi na maaaring kanselahin.

  • Name
    404 - Not Found
    Description

    Ang task ay hindi umiiral, pag-aari ng ibang user, o hindi ginawa sa pamamagitan ng endpoint na ito.

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

I-stream ang Collapsible Fidget Task

Mag-stream ng real-time na mga update para sa isang collapsible fidget task sa pamamagitan ng Server-Sent Events (SSE). Ang isang task na hindi umiiral, o hindi nagawa sa pamamagitan ng endpoint na ito, ay maglalabas ng iisang event: error payload na may status_code: 404 at isasara ang stream.

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Natatanging identifier para sa collapsible fidget task na i-stream.

Ibinabalik

Nagbabalik ng stream ng mga Collapsible Fidget task object bilang Server-Sent Events. Para sa mga task na PENDING o IN_PROGRESS, isasama lamang sa response stream ang mga kinakailangang field na progress at status.

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.
// 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",
  "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

List Collapsible Fidget Tasks

Kunin ang isang paginated na listahan ng iyong mga collapsible fidget task. Kasama lamang dito ang mga task na ginawa gamit ang endpoint na ito.

Query Parameters

  • Name
    page_num
    Type
    integer
    default 1
    Description

    Numero ng pahina para sa pagination.

  • Name
    page_size
    Type
    integer
    default 10
    Description

    Limitasyon sa laki ng pahina. Ang pinakamataas na pinapayagan ay 100 na item.

  • Name
    sort_by
    Type
    string
    default -created_at
    Description

    Field na gagamitin sa pag-sort. Available na mga value:

    • +created_at: Isaayos ayon sa oras ng paggawa nang pataas (ascending).
    • -created_at: Isaayos ayon sa oras ng paggawa nang pababa (descending).

Ibinabalik

Ibinabalik ang isang paginated na listahan ng ang collapsible fidget task object.

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=***"
    }
  }
]

Ang Collapsible Fidget Task Object

Ang Collapsible Fidget Task object ay isang yunit ng trabaho na sinusubaybayan ng Meshy upang i-convert ang isang source photo tungo sa isang print-in-place collapsible fidget model. Isa itong single-stage na task: walang prototype na maaaring i-chain, at ang intermediate na silhouette ay hindi bahagi ng response.

Mga Katangian

  • Name
    id
    Type
    string
    Description

    Natatanging identifier para sa task. Bagaman gumagamit kami ng k-sortable UUID para sa mga task id bilang detalye ng implementasyon, hindi dapat kang gumawa ng anumang palagay tungkol sa format ng id.

  • Name
    type
    Type
    string
    Description

    Uri ng task. Ang value ay creative-lab-fidget-collapsible.

  • Name
    name
    Type
    string
    Description

    Ang pangalan ng task na ibinigay noong ginawa ang task. Walang laman na string kung walang pangalang ibinigay.

  • Name
    status
    Type
    string
    Description

    Status ng task. Ang mga posibleng value ay isa sa PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Progress ng task. Kung hindi pa nasisimulan ang task, ang property na ito ay magiging 0. Kapag nagtagumpay na ang task, ito ay magiging 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp ng kung kailan ginawa ang task, sa milliseconds.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp ng kung kailan sinimulan ang task, sa milliseconds. Kung hindi pa nasisimulan ang task, ang property na ito ay magiging null.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp ng kung kailan natapos ang task, sa milliseconds. Kung hindi pa natatapos ang task, ang property na ito ay magiging null.

  • Name
    expires_at
    Type
    timestamp
    Description

    Timestamp ng kung kailan mag-e-expire ang resulta ng task, sa milliseconds.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Ang bilang ng mga naunang task.

  • Name
    task_error
    Type
    object
    Description

    Mga detalye ng error para sa mga nabigong task. Tingnan ang Errors para sa buong reference ng task_error object.

  • Name
    consumed_credits
    Type
    integer
    Description

    Ang bilang ng credits na ginamit ng task na ito. Naroroon kapag ang status ng task ay PENDING, IN_PROGRESS, o SUCCEEDED. Nagbabalik ng 0 para sa mga FAILED na task (ang credits ay ibinabalik kapag nabigo).

  • Name
    model_urls
    Type
    object
    Description

    Mga downloadable URL para sa nabuong 3D model. Napupunan kapag ang task ay naging SUCCEEDED: laging naroroon ang stl, samantalang ang glb ay lumalabas lamang kapag matagumpay ang preview render.

    • Name
      stl
      Type
      string
      Description

      Downloadable URL sa STL file. Ito ang printable na deliverable — ipadala ito nang direkta sa isang slicer.

    • Name
      glb
      Type
      string
      Description

      Downloadable URL sa GLB file, para sa pag-preview ng model sa isang 3D viewer. Ang kanyang mga kulay ay para sa preview lamang: walang dalang kulay ang STL, at ang isang naka-print na fidget ay kumukuha ng kulay mula sa filament. Ang GLB ay best-effort: kapag hindi available ang preview render, ganap na naaalis ang key mula sa model_urls, kaya basahin ito nang mapag-ingat — ang stl ang deliverable at laging naroroon sa isang SUCCEEDED na task.

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=***"
  }
}