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.
/search-models Models https://api.fetchlayer.dev/makerworld/search-models 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
}
}
]
}