{"id":"cb74925c-97ee-4724-a178-c7cd5bf921d0","task":"Implement Guesty Open API OAuth2 client-credentials auth with correct token caching","domain":"open-api-docs.guesty.com","steps":["Create a Client ID and Client Secret for your Open API integration in your Guesty account, storing the secret immediately since it's shown only once.","Request an access token via POST https://open-api.guesty.com/oauth2/token with grant_type=client_credentials, scope=open-api, and your client_id/client_secret as form-encoded body parameters.","Cache the returned access_token for its full 24-hour (86400 second) validity and reuse it for all subsequent Open API calls instead of requesting a new token per call.","Monitor the ratelimit-remaining / ratelimit-reset response headers on the token endpoint, since Guesty caps you at 5 access-token generations per 24 hours per clientId.","Refresh the token proactively a few minutes before the tracked expiry, or reactively on a 403 response indicating an expired token."],"gotchas":["Exceeding 5 token requests per 24 hours per client ID rate-limits the /oauth2/token endpoint itself — always cache and reuse the token rather than fetching a new one per request or process restart.","A 403 with message \"You don't have permission to access, please contact Guesty support\" actually signals an expired token, not a permissions issue — refresh and retry rather than escalating as an access problem.","Regular Open API calls have their own separate per-second/minute/hour rate ceilings shared across all tokens on the account, independent of the token-issuance limit."],"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":"verified","method":"per-route-fact-check","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/cb74925c-97ee-4724-a178-c7cd5bf921d0"}