Creative Lab — 折り畳み式フィジェットAPI

被写体の写真を、印刷するだけで組み立て不要の折り畳み式フィジェットトイに変換します。対象のシルエットが入れ子状の同心リングの集合になり、平らに折り畳んだり再び伸ばしたりできる形状として、組み立て不要の一体構造で出力されます。

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

他の Creative Lab エンドポイントとは異なり、このエンドポイントにはプロトタイプ/ビルドの2段階構成がありません——選択すべき中間の候補が存在せず、1つのタスクが画像から3Dモデルまでを一気に生成します。Webアプリが公開しているジオメトリの調整項目(サイズ、レイヤー数、隙間の幅、肉厚、押し出しの深さ、膨らみ)についても、リクエストの一部にはなりません。すべてのタスクは同一のサーバー側デフォルト値でビルドされます。


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

コラプシブルフィジェットタスクを作成する

元となる写真からコラプシブルフィジェットモデルを生成します。レスポンスの形式については The Collapsible Fidget Task Object を参照してください。

タスク1件につき6クレジットが必要で、有料プランが必須です。

パラメータ

  • Name
    image_url
    Type
    string
    必須
    Description

    Meshyがコラプシブルフィジェットに変換する元となる写真です。現在サポートしているのは .jpg.jpeg.png.webp の各形式です。

    画像の提供方法は2通りあります:

    • 公開アクセス可能なURL:インターネット上で公開されアクセス可能なURL。
    • Data URI:画像をBase64エンコードしたデータURI。例:data:image/jpeg;base64,<your base64-encoded image data>

    輪郭がはっきりと閉じた被写体を1つだけ含む画像が最も適しています——このシルエットがそのままリングになります。背景が煩雑だったり、複数の独立した被写体があったり、非常に薄い形状だったりすると、入れ子構造の壁を作るための領域が不足し、タスクエラーで失敗します。

  • Name
    name
    Type
    string
    Description

    表示用の任意のタスク名です。最大100文字。これはタスクのラベルにすぎず、モデルには何も刻印されません。

レスポンス

レスポンスの result プロパティには、新規作成されたコラプシブルフィジェットタスクのタスク id が含まれます。タスクが SUCCEEDED に達するまで Get a Task エンドポイントをポーリングするか、stream を購読し、その後印刷可能なSTLを model_urls.stl からダウンロードしてください(存在する場合は、先にプレビューするためのGLBを model_urls.glb から取得できます)。

失敗モード

  • Name
    400 - Bad Request
    Description

    リクエストが受け付けられませんでした。よくある原因:

    • パラメータの欠落image_url は必須です。
    • 画像形式が無効:指定された image_url がサポート対象外の形式です(.jpg.jpeg.png.webp)。
    • 画像サイズが範囲外:画像が小さすぎる、最大ファイルサイズを超えている、または最大ピクセル数を超えています。
    • URLに到達できないimage_url をダウンロードできませんでした(404またはtimeout)。
    • Data URIが無効:Base64文字列の形式が正しくありません。
    • コンテンツがフラグ対象:入力画像がNSFW moderationによってフラグ付けされました。
  • Name
    401 - Unauthorized
    Description

    認証に失敗しました。APIキーをご確認ください。

  • Name
    402 - Payment Required
    Description

    アカウントが無料プランである(このエンドポイントでのタスク作成には有料プランが必要です)か、クレジットが不足しています。

  • Name
    403 - Forbidden
    Description

    入力画像が知的財産権侵害としてフラグ付けされました。

  • Name
    429 - Too Many Requests
    Description

    レート制限を超過しました。

Request

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

折りたたみ式フィジェットタスクを取得

有効なタスク id を指定して、折りたたみ式フィジェットタスクを取得します。このエンドポイントを通じて作成されたタスクのみがここでアドレス指定可能です。他の Creative Lab エンドポイントから作成されたタスクや、ウェブアプリで作成されたタスクは 404 を返します。

レスポンスの形式については、折りたたみ式フィジェットタスクオブジェクト を参照してください。

パラメータ

  • Name
    id
    Type
    path
    Description

    取得する折りたたみ式フィジェットタスクの一意の識別子。

戻り値

レスポンスには折りたたみ式フィジェットタスクオブジェクトが含まれます。

Request

GET
/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578
curl https://api.meshy.cn/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.cn/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.cn/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}

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

Collapsible Fidgetタスクを削除する

Collapsible Fidgetタスクをキャンセルします。タスクがまだPENDINGの場合、作成時に消費された クレジットは返金されます。すでにIN_PROGRESSのタスクは、返金なしでキャンセルされます (ワーカーがすでにリソースを消費している可能性があるためです)。すでに終了状態 (SUCCEEDEDFAILEDCANCELED)に達したタスクはキャンセルできません。

パスパラメータ

  • Name
    id
    Type
    path
    Description

    キャンセルするCollapsible Fidgetタスクの一意の識別子です。

戻り値

成功時には空のボディとともに204 No Contentを返します。

失敗モード

  • Name
    400 - Bad Request
    Description

    タスクはすでに終了状態にあり、キャンセルできません。

  • Name
    404 - Not Found
    Description

    タスクが存在しないか、別のユーザーに属しているか、またはこのエンドポイントを通じて作成されたものではありません。

Request

DELETE
/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.cn/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

折りたたみ式フィジェットタスクをストリームする

折りたたみ式フィジェットタスクのリアルタイム更新を、Server-Sent Events (SSE) を介してストリーミングします。存在しないタスク、またはこの エンドポイントを通じて作成されなかったタスクの場合、status_code: 404 を伴う 単一の event: error ペイロードが送信され、ストリームは終了します。

パラメータ

  • Name
    id
    Type
    path
    Description

    ストリーミング対象の折りたたみ式フィジェットタスクの一意の識別子。

レスポンス

Collapsible Fidget タスクオブジェクトのストリームを、Server-Sent Events として返します。PENDING または IN_PROGRESS のタスクの場合、レスポンスストリームには必要な progress および status フィールドのみが含まれます。

Request

GET
/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578/stream
curl -N https://api.meshy.cn/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.cn/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.cn/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}

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

折りたたみ式フィジェットタスク一覧の取得

折りたたみ式フィジェットタスクのページネーションされたリストを取得します。この エンドポイントを通じて作成されたタスクのみが含まれます。

クエリパラメータ

  • Name
    page_num
    Type
    integer
    デフォルト 1
    Description

    ページネーション用のページ番号。

  • Name
    page_size
    Type
    integer
    デフォルト 10
    Description

    ページサイズの上限。最大で 100 件まで指定できます。

  • Name
    sort_by
    Type
    string
    デフォルト -created_at
    Description

    ソート対象のフィールド。使用可能な値:

    • +created_at: 作成日時の昇順でソートします。
    • -created_at: 作成日時の降順でソートします。

戻り値

折りたたみ式フィジェットタスクオブジェクトの ページネーションされたリストを返します。

Request

GET
/openapi/creative-lab/fidget-collapsible/v1
curl https://api.meshy.cn/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.cn/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
      "stl": "https://assets.meshy.cn/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
    }
  }
]

折りたたみ式フィジェットタスクオブジェクト

折りたたみ式フィジェットタスクオブジェクトは、Meshy が元となる写真をプリント・イン・プレイスの折りたたみ式フィジェットモデルに変換するために追跡するワークユニットです。これは単一ステージのタスクであり、連鎖元となるプロトタイプは存在せず、中間シルエットもレスポンスには含まれません。

プロパティ

  • Name
    id
    Type
    string
    Description

    タスクの一意な識別子です。実装の詳細としてタスク ID には k-sortable UUID を使用していますが、id の形式についていかなる前提も置くべきではありません。

  • Name
    type
    Type
    string
    Description

    タスクの種類です。値は creative-lab-fidget-collapsible です。

  • Name
    name
    Type
    string
    Description

    タスク作成時に指定されたタスク名です。名前が指定されていない場合は空文字列になります。

  • Name
    status
    Type
    string
    Description

    タスクのステータスです。可能な値は PENDINGIN_PROGRESSSUCCEEDEDFAILEDCANCELED のいずれかです。

  • Name
    progress
    Type
    integer
    Description

    タスクの進捗です。タスクがまだ開始されていない場合、このプロパティは 0 になります。タスクが成功すると 100 になります。

  • Name
    created_at
    Type
    timestamp
    Description

    タスクが作成された時刻のタイムスタンプ(ミリ秒)です。

  • Name
    started_at
    Type
    timestamp
    Description

    タスクが開始された時刻のタイムスタンプ(ミリ秒)です。タスクがまだ開始されていない場合、このプロパティは null になります。

  • Name
    finished_at
    Type
    timestamp
    Description

    タスクが終了した時刻のタイムスタンプ(ミリ秒)です。タスクがまだ終了していない場合、このプロパティは null になります。

  • Name
    expires_at
    Type
    timestamp
    Description

    タスク結果が期限切れになる時刻のタイムスタンプ(ミリ秒)です。

  • Name
    preceding_tasks
    Type
    integer
    Description

    先行タスクの数です。

  • Name
    task_error
    Type
    object
    Description

    失敗したタスクのエラー詳細です。task_error オブジェクトの完全なリファレンスについては、エラーを参照してください。

  • Name
    consumed_credits
    Type
    integer
    Description

    このタスクによって消費されたクレジット数です。タスクのステータスが PENDINGIN_PROGRESS、または SUCCEEDED の場合に存在します。FAILED タスクの場合は 0 を返します(失敗時にはクレジットが返金されます)。

  • Name
    model_urls
    Type
    object
    Description

    生成された3Dモデルのダウンロード可能な URL です。タスクが SUCCEEDED になると入力されます。stl は常に存在し、glb はプレビューレンダリングが成功した場合にのみ存在します。

    • Name
      stl
      Type
      string
      Description

      STL ファイルのダウンロード可能な URL です。これは印刷可能な成果物であり、そのままスライサーに送ることができます。

    • Name
      glb
      Type
      string
      Description

      GLB ファイルのダウンロード可能な URL で、3D ビューアーでモデルをプレビューするためのものです。その色はプレビュー専用です。STL は色情報を持たず、印刷されたフィジェットはフィラメントから色を得ます。GLB はベストエフォートで提供されます。プレビューレンダリングが利用できない場合、そのキーは model_urls から完全に省略されるため、防御的に読み取ってください。stl が成果物であり、SUCCEEDED タスクには常に存在します。

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.cn/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "stl": "https://assets.meshy.cn/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
  }
}