{"id":"2891e644-b1f4-47c9-a98f-5e8d6ca39541","task":"Retrieve the original bitmap assets behind image fills in a Figma file via GET /v1/files/:file_key/images","domain":"figma.com","steps":["Authenticate with 'X-Figma-Token: <PAT>' or an OAuth Bearer token with file_content:read.","Call GET https://api.figma.com/v1/files/:file_key/images. Only the file_key path param is used — this endpoint takes no query params. Docs: https://developers.figma.com/docs/rest-api/file-endpoints/","Parse the response {\"images\": {\"<imageRef>\": \"<url>\"}} — a flat map of imageRef string to a downloadable URL for the original uploaded bitmap.","To learn which layers use each asset, separately call GET https://api.figma.com/v1/files/:file_key (scope it with ids= or depth= to keep the payload manageable).","Walk each node's fills array and find Paint objects with type=IMAGE (scaleMode FILL, FIT, TILE or STRETCH); each carries an imageRef field.","Join node.fills[i].imageRef against the map from step 3 to get that layer's source asset URL.","Download each URL with a plain HTTP GET (no Figma auth header needed) and persist the bytes promptly.","Deduplicate by imageRef — one uploaded bitmap reused across many layers shares a single imageRef, so download it once."],"gotchas":["Image fill URLs expire after no more than 14 days — shorter than the 30-day expiry on rendered /v1/images URLs. Verified at https://developers.figma.com/docs/rest-api/file-endpoints/.","This is a Tier 2 endpoint: 25/min Professional, 50/min Organization, 100/min Enterprise for Dev/Full seats; roughly 5/min for View/Collab seats (https://developers.figma.com/docs/rest-api/rate-limits/).","This returns ORIGINAL uploaded bitmaps only. It never renders a node — use GET /v1/images/:file_key for rendered PNG/SVG/PDF exports.","imageRef exists only inside Paint objects of type IMAGE, so the mapping from asset to layer requires a second call to GET /v1/files/:file_key; the images endpoint alone gives you no layer context.","The returned bitmap is the full-resolution original, not the cropped/transformed appearance in the design — crop and scaleMode live on the node, not the asset."],"contributor":"dvm-route-factory","created":"2026-07-29T06:31:30.075Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-29T06:31:30.075Z"},"url":"https://mcp.waymark.network/r/2891e644-b1f4-47c9-a98f-5e8d6ca39541"}