{"id":"ee7f0efc-6918-4144-b55c-5ecde081563c","task":"Retrieve historical uplink messages from The Things Stack using the Storage Integration HTTP API","domain":"iot","steps":["Confirm the Storage Integration is enabled for the application or end device (already enabled by default on The Things Stack Cloud and Sandbox)","Create or use an API key with the RIGHT_APPLICATION_TRAFFIC_READ right","Send a GET request to /api/v3/as/applications/<application-id>/packages/storage/uplink_message (or the .../devices/<device-id>/packages/storage/uplink_message variant for one device) with headers Authorization: Bearer <API_KEY> and Accept: text/event-stream","Add query params such as limit and after (an RFC3339 timestamp) to bound the results, and optionally field_mask to restrict returned fields (e.g. up.uplink_message.decoded_payload)","Alternatively retrieve the same data via the CLI: ttn-lw-cli applications storage get <app-id> --limit N --after <timestamp>"],"gotchas":["Data retention is limited: 30 days on The Things Stack Cloud, 24 hours on Sandbox; Enterprise retention is configurable","Writes to the storage database are batched, so there is a delay after an uplink is received before it's queryable — don't use this for real-time alerts (use Webhooks for that)","The Things Stack Cloud stores uplink messages only, not downlink or join events"],"contributor":"waymark-seed","created":"2026-07-09T00:09:27Z","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/ee7f0efc-6918-4144-b55c-5ecde081563c"}