Thingiverse Scraper avatar

Thingiverse Scraper

Pricing

from $0.50 / 1,000 3d models

Go to Apify Store
Thingiverse Scraper

Thingiverse Scraper

Collect public Thingiverse 3D models from keywords, search URLs, model URLs, or thing IDs. Export creators, categories, tags, images, engagement metrics, licenses, dates, and file metadata.

Pricing

from $0.50 / 1,000 3d models

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

13 days ago

Last modified

Share

🧩 Collect structured Thingiverse model data

Thingiverse Scraper helps 3D-printing creators, researchers, and developers collect public model data from Thingiverse. Search by keyword or submit known models to export titles, creators, categories, tags, images, engagement metrics, licenses, dates, and file metadata.

📦 Returned data

Each dataset row represents one successfully collected public model and can include:

  • thingId, modelUrl, title, and description
  • creatorName, creatorUsername, and creatorProfileUrl
  • searchQuery and searchPosition for models found through search
  • publishedAt, updatedAt, and license
  • categories and tags
  • likeCount, collectCount, commentCount, downloadCount, makeCount, and remixCount
  • trendScore, based on likes relative to model age when the needed values are available
  • imageUrls and files with file names, source links, and available sizes

Optional values remain null or empty when Thingiverse does not expose them. The Actor emits no error, status, or diagnostic rows.

🚀 Running the Actor

  1. Add one or more Thingiverse targets.
  2. Mix plain search terms, search URLs, model URLs, and numeric thing IDs as needed.
  3. Set the maximum number of rows for search targets and optional search filters.
  4. Run the Actor and open the default dataset.

⚙️ Input

targets accepts one or more search terms, Thingiverse search URLs, model URLs, or numeric thing IDs. maxItems limits rows collected from search targets; direct model targets are each processed once. Search targets can also use sort, maxAgeDays, and minLikes to control ordering and filter models.

{
"targets": ["phone stand"],
"maxItems": 25,
"sort": "likes",
"minLikes": 100
}

Search ordering supports relevance, popularity, newest, most likes, most makes, and trend score. You can collect up to 10,000 search rows per run.

🧾 Output

A typical row looks like this:

{
"thingId": "2120591",
"modelUrl": "https://www.thingiverse.com/thing:2120591",
"title": "Phone Stand",
"description": "A simple phone stand for desk use.",
"creatorName": "GoAftens",
"creatorUsername": "GoAftens",
"creatorProfileUrl": "https://www.thingiverse.com/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": ["Mobile Phone"],
"tags": ["desk", "phone", "stand"],
"likeCount": 37691,
"collectCount": 40091,
"commentCount": 145,
"downloadCount": 410003,
"makeCount": 226,
"remixCount": 156,
"trendScore": 10.5,
"imageUrls": ["https://cdn.thingiverse.com/assets/12/eb/52/8e/15/Phone_stand03.jpg"],
"files": [
{
"name": "Phone_Stand03.STL",
"downloadUrl": "https://www.thingiverse.com/download:3339522",
"sizeBytes": 72784
}
]
}

💳 Pricing

This Actor uses pay-per-event pricing. The scraped-model event is charged once for each successfully saved public model row. Skipped targets, duplicates, no-result searches, and internal diagnostics are not charged as model outcomes. The applicable unit price depends on your Apify plan.

🔌 Integrations

Use the dataset with the Apify API, schedules, webhooks, and supported integrations to automate exports and downstream processing.

❓ FAQ

Why can a model have no categories?

The Actor collects source-supplied categories, including categories Thingiverse exposes separately from its main model details. The array stays empty when Thingiverse supplies no category or that optional category data is unavailable; the Actor does not infer categories from tags or descriptions.

Can I combine searches and known models in one run?

Yes. Put keywords, search URLs, model URLs, and numeric thing IDs in the same targets list. Overlapping discoveries are deduplicated by thingId.

Does it download STL or 3MF files?

No. It returns available file metadata and source links but does not download, archive, host, or mirror model files.

Do I need a Thingiverse account or API key?

No user-provided Thingiverse login, cookie, or API key is required for this public model workflow.

What happens to private, removed, or unavailable models?

They are reported in run logs and are not emitted as dataset rows. Other valid targets can still produce rows.

How can I export the data?

Open the Apify dataset to export JSON, CSV, Excel, XML, RSS, or HTML, or access results through the Apify API.

📝 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 🫡

Made with ❤️ by Maxime Dupré