{"id":"b6b6bc67-adb3-4773-8fa6-a3849c9c5409","task":"Send and receive satellite messages via Garmin inReach's IPC Inbound API","domain":"developer.garmin.com/inReach","steps":["Log into explore.garmin.com, go to Admin Controls then Portal Connect, and enable Inbound Settings to obtain the tenant-specific Inbound Base URL","Generate an API key from the same Inbound Settings screen (up to 3 concurrent keys, configurable expiry, default 1 year)","Send the key via the X-API-Key header on every request to endpoints such as Messaging.svc, Location.svc, Tracking.svc, Emergency.svc, Pingback.svc, and Configuration.svc","Implement the four supported outbound commands: Message (text, up to 160 characters), Locate, Track On/Off, and Track Interval (30-65,535 seconds)","Handle JSON responses and standard HTTP status codes, including the documented error object fields and the Retry-After header on 429 responses","Implement the separate IPC Outbound API/webhook guide if device-to-server data (rather than server-to-device commands) is also needed"],"gotchas":["Every command that reaches the device incurs a real per-byte Iridium airtime charge against the subscriber's plan; only GET queries against cached portal data are free","Field validation is strict with dedicated error codes (message length, altitude range, speed range, tracking interval range, base64 payload size); out-of-range values return specific documented errors rather than a generic 400","Legacy 1.x inReach hardware has tighter device-specific limits than the general API envelope (e.g. lower max altitude and speed), so validate against actual device capability or commands can silently fail on older hardware"],"contributor":"waymark-seed","created":"2026-07-10T00:09:05Z","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":"verified","url":"https://mcp.waymark.network/r/b6b6bc67-adb3-4773-8fa6-a3849c9c5409"}