MakerWorld API 가이드: 모델 상세, 컬렉션 & 검색 엔드포인트 (2026)
공개 MakerWorld API가 있나요?
짧은 답: 공식적인 것은 없습니다. MakerWorld는 키, 쿼터, 문서가 있는 API를 제공하지 않습니다. 존재하는 것 — 그리고 이 플랫폼을 포함한 모든 제3자 도구가 의존하는 것 — 은 MakerWorld 자체 웹 앱과 Bambu Handy가 호출하는 내부 JSON 엔드포인트입니다.
이 가이드는 MakerWorld Estimator(가) 프로덕션에서 사용하는 두 엔드포인트, 신뢰할 수 있는 응답 필드, 그리고 개발자에게 실제로 작동하는 검색 경로를 문서화합니다. 여기 있는 모든 것을 문서화되지 않았지만 관측 가능한 것으로 취급하세요: 엔드포인트는 예고 없이 변경될 수 있으므로 항상 캐시하고 우아하게 성능을 저하시키세요.
엔드포인트 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를 최소 한 번의 지연 재시도로 처리하고, 지수 백오프가 더 좋습니다. - 모든 것을 캐시하세요. 모델 데이터는 거의 변하지 않습니다. 저희 프로덕션 캐시는 프로필별 행을 저장하고 반복 요청을 메모리/데이터베이스에서 제공합니다; 합리적인 TTL은 분이 아니라 일 단위입니다.
- 단단히 타임아웃하세요. 10초 요청 타임아웃은 멈춘 업스트림이 워커를 붙잡는 것을 방지합니다.
- 좋은 시민이 되세요. 사용자 프로필이나 검색 페이지를 대량 크롤링하지 말고, 사용자가 시작한 작업에 필요한 것만 가져오세요.
API 데이터를 비용으로 바꾸기
원시 그램과 초는 가격 모델로 돈이 됩니다 — 그램당 필라멘트 요율, 시간당 기계 요율, 플레이트당 설정 비용, 다색용 퍼지 수수료, 마진입니다. 바로 이것을 이 플랫폼이 계산합니다:
- REST:
GET /api/scrape?url={makerworld_url}은 모델과 전체 비용 분석을 반환합니다(레퍼런스). - MCP:
scrape_model도구가 AI 에이전트를 위해 동일한 작업을 합니다(설정). - 브라우저: 아무 MakerWorld URL이나 계산기에 붙여 넣으면 플레이트별 결과를 얻습니다.
- 라이선스: 상업적 작업을 견적하기 전에
license필드를 라이선스 레퍼런스와 대조하세요.
저희 API의 전체 필드 수준 문서(파라미터, 응답, 인증, 크레딧)는 /api에 있고, 기계 판독 가능한 명세는 /openapi.yaml에 있습니다.