Printables API — Getting Started — FetchLayer Docs
Documentation menu
FetchLayer FetchLayer API

Getting Started

Search Printables in two steps, then follow a model through to its designer, its collections, and the contests it placed in.

1. Get your API key

Create an account and generate a FetchLayer API key from your dashboard. There is no Printables or Prusa account involved, and nothing to register.

Create free account →

2. Search for models

bash
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","price":"free","limit":30}'

Tip

Already have a Printables link? Send it to /resolve-url first — it tells you whether the URL is a model, a designer, a collection, a contest or a search, and hands you the id the matching endpoint wants. It makes no upstream request and consumes no credit.

3. Learn the filter ids before you filter

Category, licence, material, printer and design-tool filters all take ids, never names — and there are 639 valid printer values alone. An id that does not exist returns an empty result set rather than an error, so a guessed printer name looks exactly like "nothing matched". Read the vocabulary once and cache it:

bash
curl -X POST https://api.fetchlayer.dev/printables/filter-values \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{}'

The response carries the category tree, the licences, the materials, every printer with its family, and the design tools — each with the id to pass back. Calling it does not consume a credit.

4. Follow a model outwards

Every model carries an id and a designer. Pass the id to /model-detail for the full record — description, licence, gallery, file listing with per-file slicing settings, remix sources and contest placings — or pass the designer handle to /user-models and /user-collections to see everything they publish and curate.

bash
curl -X POST https://api.fetchlayer.dev/printables/model-detail \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"https://www.printables.com/model/512345-under-desk-cable-tray"}'

Files are described, not downloadable

The file listing gives you each file's name, size, kind and print settings — but no download URL. Printables issues model-file downloads only to a signed-in account, so no public URL exists for us to return. GET /media streams gallery images, file previews, avatars and the instructions PDF; it does not serve geometry or sliced files.

5. Read the notes

Every JSON response carries a notes[] array. 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 published 143 models" and "we stopped at 143". Check it before treating any result set as complete.

json
{
  "notes": [
    "Listing truncated at 100 pages; pass the returned cursor to continue."
  ],
  "modelCount": 2000,
  "hasNextPage": true
}

Next steps