thingiverse.com APIthingiverse.com ↗
Search Thingiverse models, fetch detailed specs, files, tags, and creator info, or aggregate tag trends across up to 50 models with three focused endpoints.
curl -X GET 'https://api.parse.bot/scraper/3a7b9fcd-6b1a-4e4c-9ed0-b9698b260adf/search_models?page=1&sort=popular&query=benchy&per_page=5' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for 3D printable models on Thingiverse. Returns paginated results sorted by the specified criteria.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order. Accepted values: popular, relevant, featured, newest. |
| queryrequired | string | Search query keywords. |
| per_page | integer | Number of results per page. |
{
"type": "object",
"fields": {
"hits": "array of model objects each containing id, name, public_url, created_at, thumbnail, creator, like_count, collect_count, comment_count",
"total": "integer total number of matching results"
},
"sample": {
"data": {
"hits": [
{
"id": 763622,
"name": "#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se",
"creator": {
"id": 1336,
"name": "CreativeTools"
},
"thumbnail": "https://cdn.thingiverse.com/assets/ee/dc/9a/fb/74/1_3D-printed_3DBenchy_by_Creative-Tools.com.JPG",
"created_at": "2015-04-09T12:57:28+00:00",
"like_count": 90558,
"public_url": "https://www.thingiverse.com/thing:763622",
"collect_count": 138043,
"comment_count": 991
}
],
"total": 10000
},
"status": "success"
}
}About the thingiverse.com API
This API exposes three endpoints for accessing Thingiverse's catalog of 3D printable models: search by keyword with sort and pagination controls, retrieve per-model details including files, tags, license, and creator, and aggregate tag usage counts across up to 50 models in a single call. The get_model_details endpoint alone returns over 10 structured fields per model, covering everything from file lists to like counts.
Search and Discovery
The search_models endpoint accepts a required query string and optional parameters for page, per_page, and sort. The sort field accepts four values — popular, relevant, featured, and newest — giving you control over ranking. Each result object in the hits array includes the model's id, name, public_url, thumbnail, creation timestamp, creator details, like_count, collect_count, and comment_count. The total field in the response tells you how many models matched, which you can use to drive pagination logic.
Model Details
The get_model_details endpoint takes a numeric thing_id and returns a structured record for that model. Response fields include tags (array of objects with name and url), files (array with per-file name and url), license, categories, file_count, like_count, created_at, and creator with their public profile URL. This is the right endpoint when you need to inspect a model's actual downloadable files or verify its license before use.
Tag Aggregation
The aggregate_tag_counts endpoint is purpose-built for trend analysis. It processes up to 50 models (controlled by the limit parameter), optionally filtered to a specific query. It returns a tag_aggregations array sorted by count descending, alongside models_processed so you know the sample size. If query is omitted, it aggregates across popular models, making it useful for identifying community-wide printing trends without manual iteration.
- Build a 3D printing catalog app that searches Thingiverse by keyword and displays thumbnails and like counts from
search_models. - Verify the license of a model before commercial use by calling
get_model_detailsand reading thelicensefield. - Download all files for a specific model by iterating the
filesarray returned byget_model_details. - Identify trending maker topics by running
aggregate_tag_countswithout a query and sorting bycount. - Track how many Thingiverse models exist for a niche category by checking the
totalfield fromsearch_models. - Build a creator profile page by extracting
creator.nameandcreator.public_urlfrom model detail responses. - Analyze which tags dominate a keyword niche (e.g. 'miniatures') by passing a query to
aggregate_tag_counts.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Thingiverse have an official developer API?+
What does `get_model_details` return beyond what `search_models` already includes?+
search_models returns a summary per model: id, name, thumbnail, like_count, collect_count, comment_count, and basic creator info. get_model_details adds tags, files (with individual download URLs), license, categories, file_count, and created_at. If you need to know what files are attached to a model or what license it carries, you need get_model_details.Does `aggregate_tag_counts` cover all models on Thingiverse?+
limit parameter. The models_processed field in the response tells you the actual sample size. Results reflect a sample, not a full-corpus count. For a narrow query, 50 models may be most or all of the results; for broad queries it is a sample of the top results.Can I retrieve a model's remix history or see which designs it was derived from?+
thing_id.