Printables API — 3D Model Data as JSON | FetchLayer
Unofficial Third-party API
12 endpoints live

Every model. Every maker.
Collections and contests.

Models & print settings Designers & collections Contest winners AI-ready JSON

Search and browse the public 3D models on Printables, read the designers who publish them, follow the collections they curate, and track the design contests the community competes in — as structured JSON. It is the deepest surface on FetchLayer: models, makers, collections and contests — eleven JSON routes plus a media stream, over one Bearer key.

Free tier included No credit card No scraper maintenance

Trusted by developers shipping real products.

493,590 served today

POST /printables/search-models
200 OK

Request

$ curl -X POST \
  https://api.fetchlayer.dev/printables/search-models \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"query":"cable management","sort":"popular"}'

Response

{
  "models": [{
    "id": "512345",
    "name": "Under-desk cable tray",
    "designer": "PrintSmith",
    "license": "CC BY-NC-SA 4.0",
    "stats": { "downloads": 41280,
      "makes": 214, "rating": 4.9 }
  }],
  "totalMatches": 1842,
  "notes": []
}

Used by developers at

Individual developers or teams — not official partnerships

Built for feedback workflows

Fetch the public signal. Use it wherever your team works.

Keyword search with real filters

Search models by keyword, then narrow by category, licence, material, printer, design tool, nozzle size, price, print time, finished weight, filament use, contest placing and publication date.

Trend research without a keyword

Browse a category ordered by trending, newest, rating, makes, views or likes. A keyword search tells you who made a thing; browsing tells you what the community is printing this week.

One model, completely

Description, licence, tags, every gallery image, the full file listing with per-file layer height, nozzle, printer, material, print time and filament weight, remix sources, contest placings, and the whole counter set.

Creator analytics

A designer’s profile, everything they have published newest-first with per-model downloads, likes, makes and ratings, and the public collections they curate — the signal for what they publish next.

Contests, rules and winners

Every design contest with its rules, prize list and entry count, and each contest’s placed entries best-placing-first with the winning model attached. The closest thing Printables has to an editorial ranking.

The filter vocabulary, on tap

Filters take ids, not names — 639 printers alone, plus the category tree, licences, materials and design tools. One free call returns the whole vocabulary so you never guess a value that silently matches nothing.

AI-ready JSON

Hand model descriptions, print settings, designer stats and contest results to an LLM or an MCP agent to cluster demand, rank makers, and write the brief — no HTML parsing, no wrapper code.

FetchLayer Research Chat

Find what the 3D printing community is actually printing.

Prefer not to write code? Give FetchLayer Research Chat a category, ask what is trending and who keeps publishing the hits, and turn the whole set into a structured file for your product research, roadmap, or store listing.

  • Ask questions in plain English
  • Analyze themes, sentiment, and pain points
  • Download the structured results as CSV or JSON
Research models in Chat

No code or setup required · Uses your FetchLayer credits

Printables research

What is trending in this Printables category right now? Group the top models by designer, show downloads and makes per model, and flag which ones placed in a contest. Then export it as CSV.

Y

I pulled the trending models in that category, grouped them across 28 designers, and marked the six that placed in a contest. Downloads, makes and ratings are on every row, and the file is ready to download.

printables-trending-models.csv

240 models · 14 columns · ready to download

CSV

From raw feedback to action

One request is the start of the workflow.

Store the structured response, run it on a schedule, pass it to an LLM, or feed it into the system your team already uses. FetchLayer handles retrieval so you can focus on the outcome.

  1. 01

    Read the filter ids

    Call /filter-values once and cache it: the category tree, the licences, the materials, all 639 printers and the design tools, each with the id every search filter expects.

  2. 02

    Search or browse

    Query by keyword with filters, or browse a category by trending, makes, views or rating. Page with a cursor, and check notes[] to see whether a listing was capped.

  3. 03

    Follow it to the people

    Take a model to its full detail, its designer’s catalogue and collections, or the contest it placed in — and build the trend report, the creator shortlist, or the product brief.

MCP & agents

Live

Your AI already knows how to use this.

Use the Printables endpoint directly from your MCP-compatible agent. Ask it to retrieve public feedback, identify patterns, and turn the result into a useful brief without writing integration glue.

1
Pick your editor
2
Agent discovers 12+ tools
3
Query any platform instantly
connect your agent ~30s

Pick your editor and we hand you the config with your key already in it — no JSON to hand-edit, no wrapper code.

Get your free API key

Free tier · no credit card · any MCP host

New chat fetchlayer connected

What is trending in functional prints on Printables right now, who publishes the most-downloaded ones, and which of them won a contest?

Used fetchlayer.printables_browse_models

Pulled 240 trending models in that category. Downloads concentrate in 12 designers, six of the top models carry a contest placing, and every row has print time, filament weight and licence attached.

Ask a follow-up…

Works with every MCP-compatible tool

Cursor
Claude
VS Code
Windsurf
Cline
Hermes
OpenClaw
Kiro
No wrapper code
All 12 endpoints exposed as tools
Official & maintained
Free to install

Use cases

What makers build with Printables data.

Same API, endless applications. Here is what teams ship with public 3D model data.

01

Model discovery

Search public 3D models by keyword, then narrow by category, licence, printer, material, nozzle and print time.

searchmodelsfilters
02

AI agent context

Give Claude, Codex, or your MCP agent structured model descriptions, print settings and designer stats as JSON.

llmagentsmcp
03

Designer & contest monitoring

Poll a designer or a running contest on a schedule and see new publishes and placings the day they land.

alertsmonitoringcron
04

Demand research

Browse a category by trending, makes or likes to see what the community is actually printing this week.

trendsdemandresearch
05

Catalogue exports

Export a category with downloads, likes, makes, ratings and per-file print settings as one clean dataset.

cataloguecsvdatasets
06

Creator analytics

Track a designer’s whole catalogue, per-model performance and curated collections to predict what lands next.

creatorsanalyticscollections

Compare approaches

Spend time on the insight, not the collection layer.

What you needFetchLayerOfficial APIBuild it yourself
Search models without an accountNo public APIYou build it
Designers, collections and contestsNo public APIThree more scrapers
Filter ids resolved in one calln/aYou reverse it
Per-file print settings as JSONn/aYou parse the page
Ready for AI and MCP workflowsn/aYour integration

FetchLayer provides access to publicly available data. It is not affiliated with, endorsed by, or sponsored by the platform.

Pricing

Start free. Scale when ready.

Pay per request with no commitment, or lock in a flat monthly rate with built-in savings.

Free plan — 30 requests

Verify responses, inspect the API, no credit card required.

Try free

Pay as you go

$1.99

per 1,000 requests

$0.00199 per request · credits never expire

How credits work — no multipliers

One credit = one API call, on every endpoint and platform. No matter how many results come back, you pay for the call, not the output size. Most scraping APIs charge multipliers of 5x, 25x, even 75x per call depending on the target — here it's always 1.

  • No multipliers — 1 request = 1 credit
  • No monthly commitment
  • Credits never expire
  • Same API & MCP access as subscribers
  • ∞ req/min, ∞ API keys
Get API key

Expiry

Credits stay until you use them. No monthly reset, no pressure to hit a quota.

0

Commitments

No subscription, no contract, no minimums. Start, pause, or scale whenever.

100%

Access

Every endpoint and MCP included. Not a limited tier — same data as any subscriber.

API reference

Every parameter, documented.

All requests are POST with a JSON body and Bearer auth header.

POST /printables/search-models

Search public Printables models by keyword, with filters for category, licence, material, printer, design tool, nozzle size, price, print time, finished weight, filament use, featured and contest-winning status, and publication date.

query* string Keyword or phrase to search Printables models for
sort string 'best_match' | 'latest' | 'popular' | 'rating' | 'makes_count'. Default best_match.
categoryId string Restrict to one category, by id from /filter-values.
licenseIds string[] Restrict to these licences, by id (max 20).
materialIds number[] Restrict to models for these materials, by id (max 20).
printerIds number[] Models with sliced files for these printers, by id. 639 valid values — read them from /filter-values.
nozzleDiameters number[] Sliced files for these nozzle sizes in millimetres, e.g. 0.4.
fileKinds string[] 'GCODE' | 'SLA' | 'NONE' — which ready-to-print files a model must carry.
printDuration object Print time range in hours, as { from, to }.
usedMaterial object Filament used range in grams, as { from, to }.
publishedWithinDays number Only models published in the last N days (max 3650).
limit number Maximum models returned (max 2000), or -1 for everything available.
pages number Pages of results to collect in one request (max 100).
cursor string Resume from a previous response's nextCursor.
POST /printables/browse-models

Models from one category or all of Printables with no keyword, ordered by trending, newest, rating, makes, views or likes. This is the trend-research endpoint: what is the community printing this week.

sort string 'trending' | 'latest' | 'rating' | 'makes' | 'views' | 'likes'. Default trending.
categoryId string Restrict to one category, by id from /filter-values.
tagIds number[] Models carrying these tags, by id — tag ids, not tag names.
price string 'all' | 'paid' | 'free'. Default all.
hasMake boolean Only models somebody has posted a printed copy of.
limit number Maximum models returned (max 2000), or -1 for everything available.
POST /printables/model-detail

One model in full: long description, licence, tags, every gallery image, the file listing with per-file slicing settings, remix sources, every contest placing and the full counter set. Files carry names, sizes and settings — not download URLs.

model* string Model id, or a Printables model URL containing one
POST /printables/user-profile

A designer’s public profile: handle, display name, biography, join date, verification, follower and following counts, total downloads across everything published, collection count and profile level.

user* string Designer handle, @handle, profile URL, or numeric designer id
POST /printables/user-models

Everything one designer has published, newest first, with per-model downloads, likes, makes and ratings. Paged the same way as a search.

user* string Designer handle, @handle, profile URL, or numeric designer id
limit number Maximum models returned (max 2000), or -1 for everything available.
pages number Pages of results to collect in one request (max 100).
POST /printables/user-collections

The collections a designer has made public, each with its model count, likes, timestamps and a sample of its cover thumbnails.

user* string Designer handle, @handle, profile URL, or numeric designer id
POST /printables/collection-detail

One collection: name, description, owner, model count and likes. Printables publishes only the cover thumbnails, so sampleModels is a sample and modelCount is the real total.

collection* string Collection id, or a Printables collection URL
POST /printables/contests

Every Printables design contest with its id, rules, prize list and entry count. The ids are what the contest detail route takes.

POST /printables/contest-detail

One contest and its placed entries, best placing first, each carrying the winning model in full — designer, category, stats and cover image.

contest* string Contest id, or a Printables contest URL
POST /printables/filter-values

The ids every filter takes: the category tree, the licences, the materials, all 639 printers, and the design tools. Filters are id-based, and a guessed name returns nothing rather than an error — so call this first. Free: it never consumes a credit.

POST /printables/resolve-url

Parse any Printables URL into structured fields — model, designer, collection, contest or search, plus the id or keyword it carries. Free: it makes no upstream request at all.

url* string Any Printables URL, to be parsed into structured fields

Fields marked * are required. Full API reference →

FAQ

Common questions.

Is Printables data public?

Yes. Printables is Prusa’s public 3D model community — models, designer profiles, collections and contest results are all published on the open web for anyone to read. FetchLayer retrieves those publicly available records and returns them as structured JSON. FetchLayer is not affiliated with, endorsed by, or sponsored by Prusa Research or Printables.

Do I need a Printables or Prusa account?

No. You authenticate with your FetchLayer API key — the same Bearer token you use for every other platform. There is no Printables account to link, no OAuth flow, and no token to refresh.

Can I download the model files?

No, and we would rather say so plainly than let you find out in production. A model’s file listing gives you every file with its name, size, kind (editable geometry or printer-ready sliced file) and, for sliced files, the layer height, nozzle diameter, printer, material, estimated print time and filament weight — but no download URL, because Printables issues model-file downloads only to a signed-in account and publishes no public URL for us to return. GET /printables/media streams gallery images, file previews, designer avatars and the printing-instructions PDF, with HTTP Range support. It does not serve geometry or G-code.

Why do the filters take ids instead of names?

Because Printables’ own search does. Category, licence, material, printer and design-tool filters are all id-based — and there are 639 valid printer values alone, before you get to materials and modelling apps. A printer name you invent is not an error, it is simply a filter nothing matches, so the request succeeds and returns nothing. POST /printables/filter-values returns the entire vocabulary in one call — the category tree with parents and children, the licences, the materials, every printer with its family, and the design tools — each with the id to pass back. Call it once, cache it, map names to ids yourself. It does not consume a credit.

What can I learn about a designer?

The profile route returns handle, display name, biography, join date, verification status, follower and following counts, makes posted, total downloads across everything they have published, public collection count, and their Printables profile level. From there, /user-models lists everything they have published newest-first with per-model downloads, likes, makes and ratings, and /user-collections shows what they curate — which is often a better predictor of what they will publish next than what they already have.

What are the contest endpoints for?

Printables runs design contests continuously, and they are the closest thing the platform has to an editorial ranking. /contests lists every contest with its rules, prize list and entry count, and /contest-detail returns the placed entries best-placing-first, each carrying the winning model in full. Entry counts tell you which themes actually pull makers in; winner lists tell you what the community rewards.

How complete is a result set?

Read the notes[] array on every response. It is where a truncated walk, a listing that could not be paged further, or an upstream limit is reported — the difference between "this designer has published 143 models" and "we stopped counting at 143". Listings also return nextCursor and hasNextPage, so a capped result is always resumable rather than lost.

Can I use this with an AI model or MCP agent?

Yes. Every response is structured JSON you can store, embed, or hand to an LLM, and all eleven JSON routes are exposed through FetchLayer’s MCP server — so an agent can find the trending models in a category, read the designer behind them, and check what placed in last month’s contest without any wrapper code.

How does billing work?

One API request equals one credit, and each page a paginated call walks counts as one — pages: 10 bills as ten. Two routes are free: /resolve-url, which parses a link without any upstream request, and /filter-values, which is the lookup that makes a filtered search valid in the first place. Printables is in Beta while coverage expands, at standard pricing.

Start pulling Printables data today.

Get a free API key, make your first request, and put public feedback to work in your own product or research workflow.