Pricing
Pay per event
Thingiverse Scraper
Scrape Thingiverse models, creators, tags, licenses, likes, makes, file counts, and 3D-print metadata from searches or model URLs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Scrape public Thingiverse search results and model detail pages into a clean Apify dataset.
Use this actor to collect 3D printable model metadata such as model names, URLs, creators, tags, thumbnails, likes, collects, comments, makes, file counts, remix counts, licenses, descriptions, and creation dates.
What does Thingiverse Scraper do?
Thingiverse Scraper turns public Thingiverse model pages into structured data.
It can:
- π Search Thingiverse by keyword.
- π Scrape specific Thingiverse model URLs.
- π§βπ¨ Extract creator profile metadata.
- π·οΈ Collect tags and license information.
- π Capture engagement proxies such as likes, collects, comments, and makes.
- πΌοΈ Save thumbnails and preview image URLs.
- π§Ύ Export results to JSON, CSV, Excel, XML, or via API.
Who is this Thingiverse scraper for?
This actor is useful for:
- 3D-print marketplace sellers researching printable product ideas.
- Maker teams monitoring popular Thingiverse model categories.
- Hardware startups tracking printable accessory trends.
- Product researchers comparing niches such as phone stands, Raspberry Pi cases, miniatures, or printer calibration models.
- Data teams building dashboards for 3D model popularity and creator activity.
Why use this actor?
Thingiverse is a large public repository of printable designs, but manually checking search results and detail pages is slow.
This actor helps you:
- Find model ideas faster.
- Compare creators and engagement signals.
- Track tags and license terms for research.
- Build recurring monitoring jobs.
- Feed model metadata into spreadsheets, BI tools, or enrichment pipelines.
What data can you extract?
| Field | Description |
|---|---|
thingId | Thingiverse model ID |
name | Model title |
url | Public Thingiverse model URL |
searchQuery | Keyword that produced the result |
sourceType | search or thing |
position | Result position in the run |
creator | Creator ID, name, URL, image, verification flags, and profile counts when available |
likeCount | Public like count |
collectCount | Public collect count |
commentCount | Public comment count |
makeCount | Public make count from detail payloads |
fileCount | Number of public files from detail payloads |
remixCount | Remix count from detail payloads |
license | Public license text |
tags | Model tags |
descriptionText | Cleaned model description text |
thumbnail | Thumbnail image URL |
previewImage | Preview image URL |
createdAt | Thingiverse creation timestamp |
scrapedAt | Timestamp when the actor saved the record |
How much does it cost to scrape Thingiverse?
This actor uses pay-per-event pricing.
- A small start event is charged once per run.
- A result event is charged for each model record saved.
- You can keep costs predictable with
maxItems.
Before publishing, live pricing is calculated from cloud run costs and shown on the Apify Store pricing tab.
Input options
You can provide one or more of the following:
searchQueriesβ keywords such asbenchy,phone stand, orraspberry pi case.startUrlsβ Thingiverse search URLs or model URLs.thingUrlsβ direct model URLs or numeric Thingiverse thing IDs.maxItemsβ maximum records to save.sortβ search sorting mode.includeDetailsβ fetch richer model detail payloads.
Example input
{"searchQueries":["benchy","phone stand"],"maxItems":50,"sort":"popular","includeDetails":true}
Scrape a specific Thingiverse model
{"thingUrls":["https://www.thingiverse.com/thing:763622"],"maxItems":1,"includeDetails":true}
Scrape a Thingiverse search URL
{"startUrls":[{"url":"https://www.thingiverse.com/search?q=benchy&type=things&sort=relevant"}],"maxItems":20,"includeDetails":true}
Example output
{"searchQuery":"benchy","sourceType":"search","position":1,"thingId":763622,"name":"#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se","url":"https://www.thingiverse.com/thing:763622","creator":{"id":1336,"name":"CreativeTools","url":"https://www.thingiverse.com/CreativeTools"},"likeCount":90836,"collectCount":138061,"commentCount":994,"fileCount":24,"license":"Creative Commons - Public Domain Dedication","tags":["Benchy","calibration","test"],"scrapedAt":"2026-06-20T19:49:35.601Z"}
Step-by-step usage
- Open the actor on Apify.
- Add search terms, model URLs, or Thingiverse search URLs.
- Set
maxItemsto the number of model records you need. - Keep
includeDetailsenabled for tags, license, file counts, and descriptions. - Run the actor.
- Download the dataset or connect it to your workflow.
Tips for better results
- Use specific product nouns such as
phone stand,desk organizer, orraspberry pi case. - Use
popularsorting when you want demand signals. - Use
newestsorting when monitoring fresh uploads. - Keep
maxItemslow for quick tests. - Use direct model URLs when you only need a known model.
Integrations
You can connect the dataset to:
- Google Sheets for model research lists.
- Airtable for maker product pipelines.
- BI dashboards for engagement tracking.
- Webhooks for recurring monitoring.
- AI tools that summarize popular tags and model niches.
API usage with Node.js
import{ ApifyClient }from'apify-client';const client =newApifyClient({token: process.env.APIFY_TOKEN});const run =await client.actor('automation-lab/thingiverse-scraper').call({searchQueries:['benchy'],maxItems:20,includeDetails:true,});const{ items }=await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/thingiverse-scraper').call(run_input={'searchQueries':['benchy'],'maxItems':20,'includeDetails':True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl"https://api.apify.com/v2/acts/automation-lab~thingiverse-scraper/runs?token=$APIFY_TOKEN"\-H'Content-Type: application/json'\-d'{"searchQueries":["benchy"],"maxItems":20,"includeDetails":true}'
MCP usage
Use Apify MCP from Claude Code or Claude Desktop with:
https://mcp.apify.com/?tools=automation-lab/thingiverse-scraper
Example prompts:
- "Scrape the top 25 Thingiverse results for phone stand models."
- "Extract metadata for this Thingiverse model URL and summarize its license and tags."
- "Compare popular Thingiverse Raspberry Pi case models by likes, collects, and file counts."
How this actor works
Thingiverse renders search pages with a browser app. The actor starts a browser session, uses the public Thingiverse view API used by the website, and saves normalized model records to the default dataset.
Data quality notes
Counts are public Thingiverse counters at the time of the run. They may change later. Some optional detail fields depend on the public model payload and may be missing for deleted, moderated, private, or restricted models.
Troubleshooting
If a run returns fewer models than expected:
- Increase
maxItems. - Try a broader search query.
- Use
popularorrelevantsorting. - Confirm that direct URLs are public Thingiverse model pages.
If a specific model URL fails, it may be private, removed, moderated, or temporarily unavailable on Thingiverse.
Is scraping Thingiverse legal?
This actor extracts public metadata. You are responsible for using the data in a way that respects Thingiverse terms, copyright, licenses, privacy, and applicable laws. Do not use scraped data for spam, abusive automation, or license violations.
Related scrapers
Other Automation Lab actors that can complement Thingiverse Scraper:
automation-lab/kickstarter-scraperfor hardware and maker campaign research.automation-lab/etsy-scraperfor handmade and printable product market research.- Future MakerWorld, Printables, and 3D model marketplace scrapers can be used for cross-platform comparison.
FAQ
Can I scrape only one Thingiverse model?
Yes. Put the model URL in thingUrls and set maxItems to 1.
Can I monitor new models?
Yes. Schedule the actor and use sort: "newest" with a focused query.
Does it download STL files?
No. The actor extracts public model metadata. It does not download model files.
Does it require a Thingiverse login?
No. It uses public pages and public view access used by the website.
Why do some fields appear empty?
Some models do not expose every field, and search-only runs may have fewer fields when includeDetails is disabled.
