Creative Lab — Collapsible Fidget API

I-convert ang isang source photo tungo sa isang print-in-place na collapsible fidget toy: ang silhouette ng subject ay nagiging isang hanay ng magkakalapat na concentric rings na kumukupas nang patag at muling lumalawak, na naka-print sa iisang piraso nang walang pangangailangang mag-assemble.

  • 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 isang 3D model. Ang mga kontrol sa 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 gumagawa 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 gagawing collapsible fidget ni Meshy. Kasalukuyan naming sinusuportahan ang mga format na .jpg, .jpeg, .png, at .webp.

    May dalawang paraan upang magbigay ng imahe:

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

    Isang subject na may isang malinaw at saradong outline ang pinakamainam — ang silhouette ang siyang magiging mga singsing. Ang gulong background, maraming magkakahiwalay na subject, o napakaninipis na hugis ay maaaring makapag-iwan ng masyadong kaunting espasyo para sa mga nested wall, at mabibigo ang task na may task error.

  • Name
    name
    Type
    string
    Description

    Opsyonal na pangalan ng task para sa layuning display. Maximum na 100 characters. Isa lang itong label ng task; walang naiuukit 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 umabot ang task sa SUCCEEDED, pagkatapos ay i-download ang naiipri-print na STL mula sa model_urls.stl (at, kung mayroon, ang GLB mula sa model_urls.glb upang unang i-preview ito).

Mga Mode ng Kabiguan

  • Name
    400 - Bad Request
    Description

    Hindi katanggap-tanggap ang request. Karaniwang mga dahilan:

    • Kulang na parameter: Kinakailangan ang image_url.
    • Invalid na format ng imahe: Ang ibinigay na image_url ay hindi suportadong format (.jpg, .jpeg, .png, .webp).
    • Sukat ng imahe wala sa saklaw: Masyadong maliit ang imahe, lumampas sa maximum na file size, o lumampas sa maximum na bilang ng pixel.
    • Hindi maabot na URL: Hindi ma-download ang image_url (404 o timeout).
    • Invalid na Data URI: Malformed ang base64 string.
    • Na-flag na content: Na-flag ang input image ng NSFW moderation.
  • Name
    401 - Unauthorized
    Description

    Nabigo ang authentication. Pakisuri ang iyong API key.

  • Name
    402 - Payment Required
    Description

    Alinman ang iyong account ay nasa free plan — ang paggawa ng task sa endpoint na ito ay nangangailangan ng paid plan — 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

    Nalampasan mo na ang 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 isang Collapsible Fidget Task

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

Tingnan ang 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

I-delete 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 kanselahin 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 ito ng ibang user, o hindi ito nalikha 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 Isang Collapsible Fidget Task

Mag-stream ng mga real-time na update para sa isang collapsible fidget task sa pamamagitan ng Server-Sent Events (SSE). Ang isang task na hindi umiiral, o hindi ginawa 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. Bawat frame ay nagdadala ng buong task object para sa yugto — ang parehong hugis na ibinabalik ng Get endpoint — kaya habang ang task ay PENDING o IN_PROGRESS, ang mga output field ay hindi pa lamang napopopulate (null, [] o {}) at ang finished_at ay 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

Ilista ang Collapsible Fidget Tasks

Kunin ang isang paginated na listahan ng iyong collapsible fidget tasks. Tanging ang mga task na ginawa sa pamamagitan ng endpoint na ito ang kasama.

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

  • Name
    sort_by
    Type
    string
    default -created_at
    Description

    Field na gagamitin sa pag-sort. Mga magagamit na value:

    • +created_at: I-sort ayon sa oras ng paggawa sa ascending order.
    • -created_at: I-sort ayon sa oras ng paggawa sa descending order.

Returns

Nagbabalik ng paginated na listahan ng the 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=***"
    }
  }
]

The Collapsible Fidget Task Object

Ang Collapsible Fidget Task object ay isang work unit na sinusubaybayan ng Meshy upang gawing print-in-place na collapsible fidget model ang isang source photo. Ito ay isang single-stage task: walang prototype na maaaring i-chain mula rito, at ang intermediate 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 task ids bilang implementation detail, hindi mo dapat ipagpalagay ang 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. Empty 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 kung kailan ginawa ang task, sa milliseconds.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp 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 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 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 nagamit ng task na ito. Naroroon kapag ang status ng task ay PENDING, IN_PROGRESS, o SUCCEEDED. Nagbabalik ng 0 para sa mga task na FAILED (naibabalik ang credits kapag nabigo).

  • Name
    model_urls
    Type
    object
    Description

    Mga downloadable URL para sa nabuong 3D model. Napupunan kapag SUCCEEDED na ang task: laging naroroon ang stl, at ang glb ay naroroon lamang kapag nagtagumpay ang preview render.

    • Name
      stl
      Type
      string
      Description

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

    • Name
      glb
      Type
      string
      Description

      Downloadable URL patungo sa GLB file, para sa pag-preview ng model sa isang 3D viewer. Ang mga kulay nito ay para lamang sa preview: walang kulay ang STL, at ang kulay ng isang naka-print na fidget ay nagmumula sa filament. Ang GLB ay best-effort: kapag hindi available ang preview render, ganap na tinatanggal ang key mula sa model_urls, kaya basahin ito nang defensive — 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=***"
  }
}