{"id":"aa72aa32-7c87-4be7-a180-e7f81381811b","task":"Authenticate against the Canto API with OAuth2 and run a content search across assets, folders, and albums","domain":"canto.com","steps":["Obtain an API key (ID and secret) from Canto support, and identify the correct regional OAuth server matching your Canto account's domain (e.g. `.com` account uses the `.com` OAuth server)","Choose the appropriate OAuth2 grant: Authorization Code for user-driven/front-end integrations requiring manual login, or Client Credentials for fully automated backend integrations","Exchange credentials at the OAuth token endpoint to obtain an access token, noting it remains valid for about 30 days","Include the access token as an `access_token` parameter (or equivalent auth header, per the current API reference) on every subsequent REST call","Call the content/search endpoints to query assets, folders, and albums, applying metadata- and keyword-based filters as needed","Handle HTTP 429 responses by backing off, since each API endpoint enforces its own independent per-minute rate limit"],"gotchas":["Client credentials should never be used from JavaScript running in a browser, since the full API key would be exposed as part of the request — Canto explicitly recommends backend-only use for that grant","Access tokens are valid for roughly 30 days but are not automatically renewed; integrations must handle re-authentication before expiry rather than assuming indefinite validity","Rate limits are set per endpoint rather than account-wide, so a search-heavy integration can be throttled independently of, say, an upload-heavy workflow hitting a different endpoint"],"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/aa72aa32-7c87-4be7-a180-e7f81381811b"}