Printables API — Filter Values: Categories, Printers
Documentation menu
FetchLayer FetchLayer API

Get the ids the filters take

The filter vocabulary a model search needs: the category tree with each node’s path and children, the licences, the materials, the printers, and the design tools — each with the id to pass. Every id-shaped filter on /search-models and /browse-models takes an id, never a name, and an id that does not exist returns an empty result set rather than an error. There are 639 valid printer values alone, so guessing "Prusa MK4" instead of its id is the single most common way to get zero results from a query that looks correct. Call this once, cache it, and map names to ids yourself. It does not consume a credit.

POST /filter-values Utility
https://api.fetchlayer.dev/printables/filter-values
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

format string optional

json, or markdown to get the result rendered as text. (default: json)

timeoutMs number optional

Per-request time limit in milliseconds (max 600000).

Response Fields

filter-values

Get the ids the filters take

categories object[]

The category tree. Each node carries its id, name, English name, ancestor path, depth level, and immediate children.

categories[].id string

Pass as categoryId on a search or browse.

categories[].level number | null

Depth in the tree; 0 is a top-level category.

licenses object[]

Licences, with the ids to pass as licenseIds.

materials object[]

Filaments and resins, with the ids to pass as materialIds.

printers object[]

Printers a model’s sliced files can be filtered by, with id, name, family, and whether it is a Prusa machine. This is the long list — 639 values.

modelingApps object[]

Design tools, with the ids to pass as modelingAppIds.

notes string[]

Caveats about this specific result — a truncated walk, a listing that may be incomplete, an upstream limit. Read it before treating a result set as complete.

requestedUrl string

The Printables page this result corresponds to.

scrapedAt string

ISO 8601 timestamp of when the data was collected.

resultType string

Which shape this response is, e.g. model-search or contest-detail.

blocked boolean

Always false on a successful response.

Request

curl -X POST "https://api.fetchlayer.dev/printables/filter-values" \
  -H "Authorization: Bearer ss-your-key"

Response

{
  "resultType": "taxonomy",
  "notes": [],
  "categories": [
    {
      "id": "1",
      "name": "Art & design",
      "nameEn": "Art & design",
      "level": 0,
      "children": [
        {
          "id": "14",
          "name": "Sculptures"
        }
      ]
    }
  ],
  "licenses": [
    {
      "id": "7",
      "name": "CC BY-NC-SA 4.0"
    }
  ],
  "materials": [
    {
      "id": "1",
      "name": "PLA"
    }
  ],
  "printers": [
    {
      "id": "287",
      "name": "Original Prusa MK4",
      "family": "Original Prusa",
      "isPrusa": true
    }
  ],
  "modelingApps": [
    {
      "id": "3",
      "name": "Fusion 360"
    }
  ]
}