Руководство по API MakerWorld: детали модели, коллекции и конечные точки поиска (2026)
Существует ли публичный API MakerWorld?
Короткий ответ: официального нет. MakerWorld не публикует API с ключами, квотами или документацией. Что существует — и на что полагается каждый сторонний инструмент, включая эту платформу — это внутренние JSON-конечные точки, которые вызывают собственное веб-приложение MakerWorld и Bambu Handy.
Это руководство документирует две конечные точки, используемые в продакшене 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[]
Каждый instance — это профиль печати — полезная единица для оценки стоимости:
| Поле | Тип | Значение |
|---|---|---|
id |
number | ID профиля (#profileId-XXXX в URL) |
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 — GET /api/scrape/collection?url={collectionUrl} в API оценщика.
Поиск: что работает вместо него
Запрос «конечная точка поиска моделей MakerWorld» подразумевает публичный API поиска. Документированного не существует. Поиск на сайте — это внутренний вызов, используемый собственными клиентами MakerWorld, без опубликованного контракта.
Для программного поиска используйте пути, которые стабильны и в рамках условий:
- Поиск по каталогу оценщика —
GET /api/models?q={query}&sort={sort}&page={n}возвращает уже закешированные модели с предвычисленными затратами. Быстро, документировано и удобно для кеша. См. справочник API. - MCP
list_models— тот же каталог для AI-агентов через сервер MCP. - Ваш собственный индекс — если нужен полный каталог 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-агентов (настройка). - Браузер: вставьте любой URL MakerWorld в калькулятор для результата по каждой платформе.
- Лицензирование: сверьте поле
licenseсо справочником лицензий перед тем, как оценивать коммерческую работу.
Полная документация нашего API по полям (параметры, ответы, аутентификация, кредиты) находится на /api, а машиночитаемая спецификация — на /openapi.yaml.