{"id":"029f3f5f-38bc-4c95-8e15-26030b24235e","task":"Query Frontify's GraphQL API to fetch asset metadata for a given project or brand","domain":"developer.frontify.com","steps":["Set up OAuth2 credentials in the Frontify account's Developer settings to obtain the tokens needed to call the GraphQL endpoint","Send authenticated POST requests to the Frontify GraphQL endpoint with a query selecting fields from the `assets` query (or related brand/project queries) needed for your integration","Scope queries to the relevant project/brand IDs rather than requesting the entire account's asset graph in one call","Request only the specific asset fields needed (id, title, metadata, download URLs, timestamps) to keep response payloads manageable given the schema's large surface area (hundreds of types)","Handle pagination/cursor arguments on list-returning queries so large asset libraries are retrieved in manageable pages"],"gotchas":["The Frontify GraphQL schema is large (on the order of dozens of queries and mutations and hundreds of types), so over-fetching fields you don't need can materially slow down responses","Authentication is OAuth2-based, not a static API key, so token acquisition and refresh logic needs to be built even for read-only querying","Because it's a single GraphQL endpoint rather than many REST routes, error handling must inspect the GraphQL response body for partial errors rather than relying solely on HTTP status codes"],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","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":"sampled","method":"file-sample","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/029f3f5f-38bc-4c95-8e15-26030b24235e"}