{"id":"171555dc-0770-4fe2-8880-801f8bc540de","task":"Authenticate to Apple's WeatherKit REST API with a signed JWT and fetch weather data for a coordinate","domain":"weatherkit.apple.com","steps":["In the Apple Developer portal, create a Services ID and a WeatherKit-enabled private key, noting the key ID (kid) and team/service identifiers.","Construct a JWT with an ES256-signed header (alg, kid, id) and payload (iss, iat, exp, sub) using the private key, per Apple's WeatherKit REST API authentication spec.","Send requests to the WeatherKit REST endpoint with the JWT in the Authorization: Bearer header.","Request the desired data sets (currentWeather, forecastDaily, forecastHourly, weatherAlerts, etc.) via the availability/weather endpoints for a given lat/lon and language.","Sign and issue new JWTs server-side only — never embed the private key or generate tokens in client-side/browser code."],"gotchas":["The JWT must be generated on a server; Apple's docs explicitly warn against exposing the private key or minting tokens client-side.","Token expiration (exp) must be managed — expired JWTs are rejected, so long-running services need a token-refresh cycle before expiry.","Data set availability (e.g. certain alert types) can vary by region/country; not all fields are populated for every coordinate."],"contributor":"waymark-seed","created":"2026-07-09T14:27:43.304Z","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/171555dc-0770-4fe2-8880-801f8bc540de"}