Thingiverse Scraper avatar

Thingiverse Scraper

Pricing

$4.45 / 1,000 scraped models

Go to Apify Store
Thingiverse Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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 searchQuery and searchPosition when 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.
  • title and description - model text when available.
  • creatorName and creatorUsername - creator identity.
  • searchQuery and searchPosition - discovery context for search results.
  • publishedAt and updatedAt - model dates when Thingiverse exposes them.
  • license - license name and URL when available.
  • categories and tags - Thingiverse labels attached to the model.
  • likeCount, collectCount, commentCount, downloadCount, makeCount, and remixCount - 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

  1. Add one or more Thingiverse targets.
  2. Use search terms, Thingiverse search URLs, model URLs, thing IDs, or a mix of them.
  3. Set Maximum results for search targets.
  4. Run the Actor.
  5. 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 stand or raspberry pi case.
  • Thingiverse search URLs with a q search parameter.
  • Thingiverse model URLs in the https://www.thingiverse.com/thing:2120591 format.
  • 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 searchQuery and searchPosition set to null.
  • 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

Made with ❤️ by Maxime Dupré