Get one model in full
Everything Printables publishes for a single model: the long description as HTML, the licence, the tags, every gallery image, the complete file listing with per-file slicing settings, the models it was remixed from, every contest placing, and the full counter set. Accepts a model id or any Printables model URL. Files are described — name, size, kind, printer, material, layer height, estimated time and filament — but carry no download URL, because Printables issues model-file downloads only to a signed-in account.
/model-detail Models https://api.fetchlayer.dev/printables/model-detail Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
model string required Model id, or a Printables model URL containing one.
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
model-detail
Get one model in full
modelId string The resolved model id.
model object The full model record.
model.summary string | null Short plain-text blurb.
model.descriptionHtml string | null The designer's long description, as HTML.
model.license object The licence the model is published under.
model.tags object[] Tags the designer applied, with their ids.
model.images object[] Every gallery image, ordered; order 0 is the cover. Pass a url to GET /media to stream the bytes.
model.files object[] The file listing. Each entry carries name, sizeBytes, kind (geometry or sliced), folder, note and uploadedAt — but no download URL, because Printables publishes none.
model.files[].printSettings object Layer height, nozzle diameter, estimated print hours, filament grams, printer and material. Present only on a sliced file.
model.printSettings object Settings recorded for the model as a whole, including whether it is multi-material.
model.authorship string | null own, remix, or reupload.
model.remixedFrom object[] Models this one was derived from, with ids and URLs.
model.contestPlacements object[] Every contest placing, not just the most recent.
model.instructionsPdfUrl string | null The designer's printing instructions, when they attached any. Streamable through GET /media.
model.fileKind string | null Which ready-to-print file kind the model ships, when any.
model.stats object Downloads, likes, views, makes, comments, rating average and count, collections, file and image counts.
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/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"}'Response
{
"resultType": "model-detail",
"modelId": "512345",
"notes": [],
"model": {
"id": "512345",
"name": "Under-desk cable tray",
"license": {
"id": "7",
"name": "CC BY-NC-SA 4.0"
},
"authorship": "own",
"fileKind": "GCODE",
"files": [
{
"id": "88121",
"name": "tray_body.stl",
"sizeBytes": 2184320,
"kind": "geometry",
"printSettings": null
}
],
"printSettings": {
"layerHeightsMm": [
0.2
],
"printDurationHours": 4.5,
"weightGrams": 62,
"multiMaterial": false
}
}
}