Thingiverse Scraper
Pricing
$4.45 / 1,000 scraped models
Thingiverse Scraper
Scrape public Thingiverse 3D model data from search terms, search URLs, model URLs, or thing IDs. Export titles, creators, tags, images, likes, downloads, licenses, dates, and file metadata.
Pricing
$4.45 / 1,000 scraped models
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
🧩 Thingiverse scraper for 3D model data
Thingiverse Scraper collects public 3D model data from Thingiverse. Use it to scrape Thingiverse search results, enrich known model URLs, or look up specific thing IDs in one clean Apify dataset.
Start with a plain search term such as phone stand, paste a Thingiverse search URL, add a model URL such as https://www.thingiverse.com/thing:2120591, or enter the numeric thing ID directly. The Actor returns model titles, creators, tags, preview images, engagement metrics, licenses, dates, and file metadata when Thingiverse exposes those values.
For a quick first run, keep the prefilled phone stand target and leave Maximum results at 96. Direct model URLs and thing IDs are processed once, while search targets use the result limit.
✅ What this Actor does
- Scrapes public Thingiverse model search results from plain search terms.
- Accepts Thingiverse search result URLs.
- Accepts direct Thingiverse model URLs.
- Accepts numeric thing IDs.
- Saves one dataset row per successful Thingiverse model.
- Adds search context with
searchQueryandsearchPositionwhen a row comes from a search target. - Returns model identity, title, description, creator, tags, images, metrics, license, dates, and file metadata when available.
- Deduplicates models by stable Thingiverse ID during the run.
- Charges only for saved model rows.
This Actor focuses on public 3D model metadata. It does not scrape Thingiverse blog posts, private or unavailable models, creator profile pages as separate rows, comments as separate rows, or bulk-download and store 3D model files.
📦 Data you can export
Each output row represents one Thingiverse model. Fields include:
thingId- stable Thingiverse model ID.titleanddescription- model text when available.creatorNameandcreatorUsername- creator identity.searchQueryandsearchPosition- discovery context for search results.publishedAtandupdatedAt- model dates when Thingiverse exposes them.license- license name and URL when available.categoriesandtags- Thingiverse labels attached to the model.likeCount,collectCount,commentCount,downloadCount,makeCount, andremixCount- source-backed metrics when available.imageUrls- public preview and model image URLs.files- available file names, URLs, and file sizes when available.
Fields can be null or empty when Thingiverse does not expose a value for a model. The dataset does not include skipped-target rows, error rows, raw payloads, or hidden runtime diagnostics.
🚀 How to run it
- Add one or more Thingiverse targets.
- Use search terms, Thingiverse search URLs, model URLs, thing IDs, or a mix of them.
- Set Maximum results for search targets.
- Run the Actor.
- Open the dataset or export the results.
Good first inputs:
{"targets": ["phone stand"],"maxItems": 25}
For known models:
{"targets": ["https://www.thingiverse.com/thing:2120591","2120591"],"maxItems": 25}
For a source-native search URL:
{"targets": ["https://www.thingiverse.com/search?q=raspberry%20pi%20case&page=1&type=things"],"maxItems": 50}
⚙️ Input options
🎯 Thingiverse targets
Add one target per line. Supported target types are:
- Plain search terms, such as
phone standorraspberry pi case. - Thingiverse search URLs with a
qsearch parameter. - Thingiverse model URLs in the
https://www.thingiverse.com/thing:2120591format. - Numeric thing IDs, such as
2120591.
Empty targets are ignored. Unsupported targets are handled through logs instead of fake dataset rows.
🔢 Maximum results
maxItems controls how many model rows can be saved from search targets in one run. It does not multiply direct model URLs or thing IDs, because each direct target represents one model.
The default is 50, the minimum is 1, and the maximum is 1000.
🧾 Output example
{"thingId": "2120591","title": "Phone Stand","description": "A simple phone stand for desk use.","creatorName": "GoAftens","creatorUsername": "GoAftens","searchQuery": "phone stand","searchPosition": 1,"publishedAt": "2017-02-18T22:33:56.000Z","updatedAt": "2017-02-18T22:33:56.000Z","license": {"name": "Creative Commons - Attribution","url": "https://creativecommons.org/licenses/by/4.0/"},"categories": [],"tags": ["desk", "dock", "iphone", "phone", "stand"],"likeCount": 37691,"collectCount": 40091,"commentCount": 145,"downloadCount": 410003,"makeCount": 226,"remixCount": 156,"imageUrls": ["https://cdn.thingiverse.com/assets/12/eb/52/8e/15/Phone_stand03.jpg"],"files": [{"name": "Phone_Stand03.STL","downloadUrl": "https://cdn.thingiverse.com/assets/0c/60/ed/2e/5a/Phone_Stand03.STL","sizeBytes": null}]}
💳 Pricing
This Actor uses pay-per-event pricing. You are charged for each saved Thingiverse model row through the scraped-model event. Skipped targets, duplicate models, no-result searches, and internal diagnostics are not charged as model results.
The planned local pricing artifact is $0.00445 per saved model.
🧭 Limits and caveats
- The Actor returns public metadata exposed by Thingiverse. It does not invent missing descriptions, dates, licenses, counts, categories, tags, or file sizes.
- File entries are metadata and source URLs. The Actor does not download, zip, host, or mirror model files for you.
- Search order follows the source result order returned for the target search.
- Direct model targets have
searchQueryandsearchPositionset tonull. - Unavailable, private, removed, invalid, or unsupported targets are reported in logs and are not emitted as dataset rows.
❓ FAQ
🔎 Can I scrape both search results and direct model URLs in one run?
Yes. Add search terms, search URLs, model URLs, and numeric thing IDs to the same Thingiverse targets list. The Actor deduplicates models by thingId.
🧱 Does this Actor download STL or 3MF files?
No. It returns file metadata and URLs when Thingiverse exposes them. It does not bulk-download, store, zip, or rehost 3D model files.
🔐 Do I need a Thingiverse account?
No user-provided Thingiverse login, cookie, or source API key is required for the public model metadata workflow.
📊 Can I export the data?
Yes. After the run, open the Apify dataset and export it as JSON, CSV, Excel, XML, RSS, or HTML. You can also use the Apify API, schedules, webhooks, and integrations.
📝 Changelog
- 0.0: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- DeviantArt Scraper ↗ - Scrape public artwork, creator data, images, and contact snippets.
- Unsplash Image Scraper ↗ - Collect public image search results for design and content research.
- Pinterest Keyword Scraper ↗ - Collect Pinterest autocomplete ideas for SEO and content planning.
- Artbreeder AI Image Creator ↗ - Generate image URLs and metadata from Artbreeder prompts.
- Craiyon AI Image Creator ↗ - Generate prompt-based images and export source or Apify download URLs.
Made with ❤️ by Maxime Dupré