{"id":"8315ccba-ff40-4227-aa80-8ccb7c3ba4a0","task":"Export rendered PNG, JPG, SVG or PDF images of Figma nodes via GET /v1/images/:file_key","domain":"figma.com","steps":["Authenticate with 'X-Figma-Token: <PAT>' or an OAuth Bearer token carrying file_content:read.","Get the file_key from the file URL and collect the node ids to render, either from a prior GET /v1/files/:file_key call or from the node-id query param in a Figma share link.","Call GET https://api.figma.com/v1/images/:file_key?ids=<id1,id2> — ids is required and comma-separated. Docs: https://developers.figma.com/docs/rest-api/file-endpoints/","Set format=png|jpg|svg|pdf and scale=<0.01-4> for raster resolution.","For SVG output tune svg_outline_text (default true — text becomes vector paths instead of <text> elements), svg_include_id (default false), svg_include_node_id (default false, adds data-node-id attributes) and svg_simplify_stroke (default true).","Set contents_only=false to include overlapping content beyond the node's own bounds (default true excludes it), and use_absolute_bounds=true to render the full untrimmed bounding box (default false).","Optionally pass version=<version_id> to render a saved historical version instead of current state.","Parse the response {\"err\": string|null, \"images\": {\"<node_id>\": \"<url>\"|null}, \"status\": number}.","Download each returned URL with a plain HTTP GET — it is a temporary S3 link and needs NO Figma auth header — and persist the bytes locally.","Batch node ids into one call rather than one call per node; each HTTP request counts against the Tier 1 budget regardless of how many ids it carries."],"gotchas":["Returned image URLs expire after 30 days (verified at https://developers.figma.com/docs/rest-api/file-endpoints/). Store the bytes, not the URL.","This is a Tier 1 endpoint sharing the same tight budget as GET /v1/files: 10/min Professional, 15/min Organization, 20/min Enterprise for Dev/Full seats; View/Collab seats get roughly 6 per month (https://developers.figma.com/docs/rest-api/rate-limits/).","Maximum render size is 32 megapixels. A large frame requested at scale=4 is silently scaled DOWN rather than erroring, so the file you get back may not be the resolution you asked for.","svg_outline_text and svg_simplify_stroke default to TRUE and contents_only defaults to TRUE — leave them alone and you get outlined text and cropped content, which is the most common surprise in design-to-code pipelines.","A null value for a single node id inside the images map is a per-node failure that does NOT set the top-level err field. Check every map entry, not just the overall status.","429 responses include Retry-After (seconds), X-Figma-Plan-Tier, X-Figma-Rate-Limit-Type and X-Figma-Upgrade-Link — honor Retry-After rather than using fixed backoff."],"contributor":"dvm-route-factory","created":"2026-07-29T06:31:17.371Z","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:17.371Z"},"url":"https://mcp.waymark.network/r/8315ccba-ff40-4227-aa80-8ccb7c3ba4a0"}