MakerWorld APIガイド:モデル詳細・コレクション・検索エンドポイント(2026)
公開MakerWorld APIはあるのか?
短い答え:公式のものはありません。MakerWorldはキー、割り当て、ドキュメントを伴うAPIを公開していません。存在するもの——そしてこのプラットフォームを含むすべてのサードパーティツールが依存しているもの——は、MakerWorld自身のWebアプリとBambu Handyが呼び出す内部JSONエンドポイントです。
このガイドでは、MakerWorld Estimatorが本番環境で使用している2つのエンドポイント、信頼できるレスポンスフィールド、そして開発者にとって実際に機能する検索経路を解説します。ここに記載されているものはすべて非公開だが観測可能として扱ってください。エンドポイントは予告なく変更される可能性があるため、常にキャッシュし、穏やかにフォールバックしましょう。
エンドポイント1:モデル詳細
GET https://makerworld.com/api/v1/design-service/design/{modelId}?handle=en
modelIdはモデルURL内の番号です。
https://makerworld.com/en/models/1717122-statue-of-liberty
└── modelId = 1717122
最小限のcurlリクエストは次のようになります。
curl 'https://makerworld.com/api/v1/design-service/design/1717122?handle=en' \
-H 'accept: application/json, text/plain, */*' \
-H 'referer: https://makerworld.com/' \
-H 'origin: https://makerworld.com' \
-H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
知っておく価値のあるレスポンスフィールド
| フィールド | 型 | 意味 |
|---|---|---|
title |
string | モデル名 |
coverUrl |
string | カバー画像URL |
defaultInstanceId |
number | デフォルトの印刷プロファイルID |
instances |
array | すべての印刷プロファイル(下記参照) |
creator.name / creator.avatar |
string | デザイナーの識別情報 |
likeCount、downloadCount、printCount |
number | エンゲージメント統計 |
license |
string | ライセンスタグ(CC BY、Standard Digital File License、…) |
needAms |
boolean | マルチカラー/3D Printing Glossary">AMSが必要かどうか |
ratingScore |
number | 平均評価 |
description |
string | モデルの説明(HTMLを含む場合あり) |
instances[]配列
各インスタンスは印刷プロファイルです。コスト見積もりにとって有用な単位です。
| フィールド | 型 | 意味 |
|---|---|---|
id |
number | プロファイルID(URL内の#profileId-XXXX) |
title |
string | プロファイル名 |
prediction |
number | 印刷時間(秒。時間にするには3600で割る) |
weight |
number | 総フィラメント重量(グラム) |
cover |
string | プロファイル画像 |
instanceFilaments |
array | フィラメントごとの[{ type, color, usedG, usedM }] |
extention.modelInfo.plates |
array | プレートごとの内訳:{ index, name, thumbnail, prediction, weight, filaments } |
plates配列こそがプレート単位のコスト計算を可能にします。プレート数、プレート重量、プレート印刷時間、プレートごとの色です。platesが欠けている場合は、プロファイルレベルの合計にフォールバックします。
エンドポイント2:コレクション(お気に入り)
GET https://makerworld.com/api/v1/design-service/favorites/{collectionId}?handle=en
コレクションIDはコレクションURL内の番号です。
https://makerworld.com/en/collections/27910720-large-prints
└── collectionId = 27910720
このエンドポイントはコレクションのメタデータ(名前、クリエイター、説明、カバー)と、その中のデザイン一覧を返します。これは一括見積もりの基盤です。一度取得し、各デザインをモデル詳細エンドポイントで解決します(またはキャッシュされたデータを再利用します)。
当社独自の一括フローはコレクション価格設定ガイドに記載されています。API側の相当物は推定ツールAPIのGET /api/scrape/collection?url={collectionUrl}です。
検索:代わりに機能する方法
「MakerWorld search models endpoint」というクエリは、公開検索APIを想定しています。ドキュメント化されたものはありません。 サイトの検索はMakerWorld自身のクライアントが使用する内部呼び出しで、公開された契約はありません。
プログラム的な検索には、安定していて規約の範囲内にある経路を使いましょう。
- 推定ツールのディレクトリ検索 —
GET /api/models?q={query}&sort={sort}&page={n}は、事前計算されたコスト付きですでにキャッシュされたモデルを返します。高速で、ドキュメント化されており、キャッシュに優しいです。APIリファレンスをご覧ください。 - MCP
list_models— MCPサーバー経由でAIエージェント向けに同じカタログを提供します。 - 独自のインデックス — MakerWorldの全カタログが必要な場合は、正当に収集したモデルID(自分のアップロード、ユーザーが提供した公開リンク)から構築し、積極的にキャッシュしましょう。
内部検索エンドポイントへの過剰なリクエストは避けましょう。それらは非公開で、実際にはレート制限があり、壊れやすいものです。
信頼性、ヘッダー、エチケット
- ブラウザに似たヘッダーを送信する。
Referer、Origin、accept、そして実際のuser-agentが重要です。一部の環境はフィンガープリントされ、ヘッダーに関係なくCloudflareによってブロックされます。このプラットフォームのローカル開発サーバーでさえ、その理由でcurlにフォールバックします。 - バックオフして再試行する。
403、429、5xxは、最低限1回の遅延再試行で処理しましょう。指数バックオフがより良いです。 - すべてをキャッシュする。 モデルデータはめったに変わりません。当社の本番キャッシュはプロファイルごとの行を保存し、繰り返しのリクエストをメモリ/データベースから提供します。妥当なTTLは分ではなく日単位です。
- 厳格にタイムアウトする。 10秒のリクエストタイムアウトは、ハングした上流がワーカーを占有するのを防ぎます。
- 良き市民であること。 ユーザープロファイルや検索ページの一括クロールはしないこと。ユーザーが開始したアクションに必要なものだけを取得しましょう。
APIデータをコストに変える
生のグラムと秒は、価格モデルによってお金になります。グラムあたりのフィラメント単価、時間あたりの機械単価、プレートごとのセットアップ、マルチカラーのパージ費、そして利益率です。これこそがこのプラットフォームが計算するものです。
- REST:
GET /api/scrape?url={makerworld_url}はモデルと完全なコスト内訳を返します(リファレンス)。 - MCP:
scrape_modelツールがAIエージェント向けに同じことを行います(セットアップ)。 - ブラウザ: MakerWorldのURLを計算ツールに貼り付けると、プレート単位の結果が得られます。
- ライセンス: 商用案件を見積もる前に、
licenseフィールドをライセンスリファレンスと照合しましょう。
当社 APIのフィールドレベルの完全なドキュメント(パラメーター、レスポンス、認証、クレジット)は/apiにあり、機械可読な仕様は/openapi.yamlにあります。