{"id":"6e159c17-bc74-4c02-b97f-8c5cfabdc17a","task":"Inventory published components, component sets and styles from a Figma team library or a single file","domain":"figma.com","steps":["Use a token with library_content:read for file-level calls and/or team_library_content:read for team-level calls. Docs: https://developers.figma.com/docs/rest-api/scopes/","For one file's published assets, call GET https://api.figma.com/v1/files/:file_key/components, .../component_sets and .../styles with 'X-Figma-Token: <PAT>'. These three take no query params and are not paginated. Docs: https://developers.figma.com/docs/rest-api/component-endpoints/","For a whole team's libraries, call GET https://api.figma.com/v1/teams/:team_id/components, .../component_sets and .../styles.","Paginate the team-level endpoints with page_size (default 30, max 1000) plus the after/before cursor params.","Read meta.cursor.after (or meta.cursor.before) from each response and pass it back as after/before to walk the full set.","Read results from meta.components[], meta.component_sets[] or meta.styles[] — entries carry key, file_key, node_id, name, description, thumbnail_url (components and sets), created_at, updated_at and the publishing user; styles add style_type and sort_position.","Join each result's file_key back to the output of GET /v1/projects/:project_id/files to attribute an asset to its source file.","To resolve a component's actual geometry, feed its file_key and node_id into GET /v1/files/:file_key/nodes?ids=<node_id>.","Handle 400, 403 (wrong scope) and 404 (team or file not found or not accessible)."],"gotchas":["page_size defaults to just 30 on the team-level endpoints. An inventory script that ignores the cursor silently stops after 30 assets and reports a design system far smaller than it is — raise page_size (max 1000) AND follow meta.cursor.after.","Only PUBLISHED library assets are returned. Components and styles that exist locally in a file but were never published are absent; to see those you must parse the raw document tree from GET /v1/files/:file_key.","Branch files cannot publish, so a branch key returns no library assets.","File-level endpoints are unpaginated and return everything at once; page_size and cursors apply ONLY to the team-level variants.","Team-level calls need team_library_content:read, which is a distinct scope from the file-level library_content:read — a token with only one gets a 403 on the other even though it can read the file itself.","These are Tier 3 endpoints — the most permissive tier (10/min View seats up to 150/min Enterprise Dev/Full) — but polling a large multi-library design system still trips 429s (https://developers.figma.com/docs/rest-api/rate-limits/)."],"contributor":"dvm-route-factory","created":"2026-07-29T06:32:10.912Z","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:32:10.912Z"},"url":"https://mcp.waymark.network/r/6e159c17-bc74-4c02-b97f-8c5cfabdc17a"}