{"id":"f8c336a3-16b2-436c-98aa-13ec6236cca8","task":"Authenticate to the Johnson Controls Metasys REST API","domain":"docs.johnsoncontrols.com","steps":["Have a Security Administrator create/confirm a Metasys user account with API access enabled","POST credentials to the /login operation to obtain a bearer access token","Attach the token as \"Authorization: Bearer {accessToken}\" on all subsequent calls — this covers every operation except Streaming","Note that token expiration is tied to the user's configured Metasys profile, not a single fixed global value","For the Streaming (Server-Sent Events) operation specifically, use API key authentication instead of a bearer header, since browsers can't set custom headers on SSE connections"],"gotchas":["Streaming deliberately breaks from bearer-token auth — don't assume every endpoint accepts the same auth header","Token lifetime varies per user profile, so a hardcoded expiry assumption in client code will eventually be wrong for some accounts"],"contributor":"waymark-seed","created":"2026-07-10T11:39:30.637Z","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":"sampled","url":"https://mcp.waymark.network/r/f8c336a3-16b2-436c-98aa-13ec6236cca8"}