MakerWorld API — Search 3D Models by Keyword
Documentation menu
FetchLayer FetchLayer API

Search models by keyword

Search MakerWorld for 3D printable and laser-cut models by keyword. Order by relevance, trending, newest, downloads, likes, collections, prints or boosts, and filter by Creative Commons license, category, nozzle size, and whether a ready-to-print profile exists. Each result carries the designer, popularity counts, license, tags, cover image and URL, plus a cursor for the next page.

POST /search-models Models
https://api.fetchlayer.dev/makerworld/search-models
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

query string required

Keyword or phrase to search MakerWorld models for.

modelType string optional

3d for printable models, laser for laser-cut and craft files. (default: 3d)

sortBy string optional

relevance, trending, newest, boosts, downloads, likes, collections, or prints. (default: relevance)

licenses string[] optional

Restrict to these licenses: CC0, BY, BY-SA, BY-ND, BY-NC, BY-NC-SA, BY-NC-ND.

categories string[] optional

Restrict to these category ids (max 20), as returned by /categories.

nozzleDiameters number[] optional

Only models with a print profile built for one of these nozzle sizes in millimetres, for example 0.4 (max 8 values).

printableOnly boolean optional

Only models that come with a ready-to-print profile.

limit number optional

Maximum models returned (max 2000), or -1 for everything available. (default: 30)

pages number optional

Requests made while collecting results. One request returns up to 100 items (max 100), or -1 for the maximum allowed. (default: 1)

cursor string optional

Resume from a previous response's nextCursor.

delayMs number optional

Milliseconds to wait between pages (max 30000).

timeoutMs number optional

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

format string optional

json or markdown. (default: json)

Response Fields

search-models

Search models by keyword

models object[]

The matching models, in the requested order.

models[].modelId string

Model id — the handle for /model-detail.

models[].title string

Model title.

models[].modelUrl string

Public MakerWorld permalink for the model.

models[].license string

A Creative Commons code, or one of MakerWorld’s own named licenses where it is not a CC one.

models[].tags string[]

Tags the designer attached.

models[].isPrintable boolean

Whether the model ships with at least one ready-to-print profile.

models[].isExclusive boolean

Available only to members on a paid tier.

models[].designer object

Designer uid, name, handle, profile URL, follower count, level and verification.

models[].stats object

likeCount, collectionCount, downloadCount, modelFileDownloadCount, printCount, commentCount, shareCount and boostCount.

models[].coverUrl string

Cover image URL. Pass it to GET /media to stream the file.

filters object

The filters this search actually ran with, after defaults were applied.

modelCount number

Number of models in this response.

nextCursor string

Pass back as cursor to continue, or null when the listing is exhausted.

hasNextPage boolean

Whether more results exist beyond this response.

pagesScraped number

Requests actually made. Each one counts against your plan.

totalAvailable number

Roughly how many results exist. Approximate — it varies with the ordering, drifts between identical requests, and stops rising past 10000. Use it for orientation, not as a count, and page until hasNextPage is false.

notes string[]

Caveats about this specific result — a walk that stopped early, a listing MakerWorld truncated, an upstream ceiling that was hit. Read it: an empty array means the result is complete, a non-empty one means it is not.

requestedUrl string

The MakerWorld page this result corresponds to.

scrapedAt string

ISO timestamp of when the data was retrieved.

blocked boolean

Always false on a successful response.

Request

curl -X POST "https://api.fetchlayer.dev/makerworld/search-models" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"query":"cable management","sortBy":"trending","licenses":["CC0","BY"],"printableOnly":true,"limit":30}'

Response

{
  "modelCount": 30,
  "pagesScraped": 1,
  "hasNextPage": true,
  "totalAvailable": 1840,
  "notes": [],
  "models": [
    {
      "modelId": "412809",
      "title": "Under-desk cable tray",
      "license": "CC0",
      "isPrintable": true,
      "designer": {
        "uid": "99120043",
        "name": "benchy_lab",
        "handle": "benchylab",
        "followerCount": 4120
      },
      "stats": {
        "downloadCount": 18422,
        "likeCount": 2310,
        "printCount": 6011,
        "boostCount": 84
      }
    }
  ]
}