This post contains references to outdated APIs.
Please read the following for the new APIs: https://www.thethingsnetwork.org/forum/t/new-api-for-gateway-mapping-status-and-info/49778
Get the gateway id(s) from the meta data, like from the MQTT JSON message or by expanding an item in the device’s Data page in TTN Console.
TTN Console example
MQTT example
{
"app_id":"arjanvanb-app-1",
"dev_id":"arjanvanb-bb-1",
"hardware_serial":"70B3D5B020035CD1",
"port":2,
"counter":7165,
"payload_raw":"CWUMqw0LDNM=",
"metadata":{
"time":"2017-04-27T10:07:27.207187339Z",
"frequency":868.1,
"modulation":"LORA",
"data_rate":"SF7BW125",
"coding_rate":"4/5",
"gateways":[
{
"gtw_id":"eui-b827ebffff5fe05c",
"timestamp":532315708,
"time":"",
"channel":0,
"rssi":-57,
"snr":9,
"latitude":52.37447,
"longitude":4.63576
},
{
"gtw_id":"eui-5ccf7ff42f1970ec",
"timestamp":1284851361,
"time":"2017-04-27T10:07:26.494026Z",
"channel":0,
"rssi":-49,
"snr":9,
"rf_chain":1,
"latitude":52.374523,
"longitude":4.635771,
"altitude":4
}
]
}
}
Next:
-
Simply find the matching id in the popups of nearby gateways on your local community’s map. This also gives you a link to the owner, if the gateway’s privacy settings allow for that:
Note that the community maps show the owner and the id, labeled “Name”. But the global map unfortunately no longer shows ids nor owners. Instead, it shows the description, again labeled “Name”:
-
Or, use that id in a TTN Mapper URL. If it starts with
eui-
such aseui-0000024b080606d8
then remove that prefix and uppercase the rest:https://ttnmapper.org/colour-radar/?type=radar&hideothers=on&gateway=0000024B080606D8
Beware that if TTN Mapper does not know the gateway, you’ll see the same map as last time you visited the site. You might want to open the URL in a new private/incognito window.
-
Or, get the specific gateway from, e.g.:
https://www.thethingsnetwork.org/gateway-data/gateway/eui-0000024b080606d8
…or get all from:
https://www.thethingsnetwork.org/gateway-data/ (aside: earlier, this did not need the trailing slash)
…and search the id (or description, when you want to find the owner using the “Name” in the popup of a gateway on the global map):
"eui-0000024b080606d8": { "id": "eui-0000024b080606d8", "description": "City of Haarlem, Publiekshal", "owner": "haarlem", "owners": [ "haarlem" ], "location": { "latitude": 52.3816697, "longitude": 4.62976785, "altitude": 18 }, "country_code": "nl", "attributes": { "brand": "Kerlink", "model": "IoT Station", "placement": "outdoor" }, "last_seen": "2018-03-09T07:30:28Z" }
If this happens to have public contact details, use the value of
"owner"
in a TTN URL:https://www.thethingsnetwork.org/u/haarlem
https://www.thethingsnetwork.org/u/arjanvanbSometimes, the same username is used on the forum:
-
Similarly, one could use the id in a NOC URL, yielding slightly different details (beware, this is an HTTP URL; right-clicking and some “open in new incognito window” might help if your browser tries HTTPS instead):
http://noc.thethingsnetwork.org:8085/api/v2/gateways/eui-0000024b080606d8
{ "timestamp": "2018-01-04T17:21:28.496247185Z", "uplink": "46859", "downlink": "1028", "location": { "latitude": 52.3817, "longitude": 4.6298175, "altitude": 21 }, "gps": { "latitude": 52.3817, "longitude": 4.6298175, "altitude": 21 }, "time": "1515086488496247185", "rx_ok": 46859, "tx_in": 1028 }
-
Likewise, use the Account Server API, showing different details but still including the owner:
https://account.thethingsnetwork.org/gateways/eui-0000024b080606d8
{ "id": "eui-0000024b080606d8", "frequency_plan": "EU_863_870", "public_rights": [ "gateway:location", "gateway:owner", "gateway:status" ], "frequency_plan_url": "https://account.thethingsnetwork.org/api/v2/frequency-plans/EU_863_870", "location_public": true, "status_public": true, "owner_public": true, "attributes": { "model": "IoT Station", "brand": "Kerlink", "description": "City of Haarlem, Publiekshal", "placement": "outdoor" }, "router": { "id": "ttn-router-eu", "address": "eu.thethings.network:1901", "mqtt_address": "mqtts://bridge.eu.thethings.network:8882" }, "fallback_routers": [ { "id": "ttn-router-asia-se", "address": "asia-se.thethings.network:1901", "mqtt_address": "mqtts://bridge.asia-se.thethings.network" }, { "id": "ttn-router-us-west", "address": "us-west.thethings.network:1901", "mqtt_address": "mqtts://bridge.us-west.thethings.network" }, { "id": "ttn-router-brazil", "address": "brazil.thethings.network:1901", "mqtt_address": "mqtts://bridge.brazil.thethings.network" } ], "antenna_location": { "altitude": 18, "latitude": 52.3816697, "longitude": 4.62976785 }, "location": { "lng": 4.62976785, "lat": 52.3816697, "longitude": 4.62976785, "latitude": 52.3816697 }, "altitude": 18, "owner": { "id": "59c93464a0134c0031de5f32", "username": "haarlem" } }
-
Likewise, use the
ttnctl
command line interface:ttnctl gateways info eui-0000024b080606d8 Gateway ID: eui-0000024b080606d8 Frequency Plan: EU_863_870 Router: ttn-router-eu Auto Update: on Owner: haarlem Owner Public: yes Location: (52.381670, 4.629768, 18) Location Public: yes Status Public: yes Brand: Kerlink Model: IoT Station Placement: outdoor Description: City of Haarlem, Publiekshal
Using the undocumented
status
inttnctl gateways status eui-0000024b080606d8
yields some recent status information (and coordinates; see below), but no contact details like withinfo
.For Meshed-connected gateways:
-
To get all gateways around some location:
-
To get all gateways in some country:
-
To get all gateways of a specific user:
-
You can paste the coordinates into Google Maps:
Beware:
-
The
http://noc.thethingsnetwork.org:8085
endpoint is known to be unreliable. -
The endpoints starting with https://www.thethingsnetwork.org/gateway-data/ might not be officially supported APIs. As for validity/caching of that specific endpoint, @htdvisser wrote on Slack:
2020-07-01 9:40 AM
It updates live information from the NOC every minute. If the NOC is down, it serves old data for 6 hours -
The coordinates in an uplink’s metadata may be different from what is reported using the methods above. Presumably that is caused by a gateway including GPS/GNSS coordinates, or fake GPS/GNSS coordinates (which it should not do) in its messages. It seems
ttnctl gateways status
uses the coordinates from the last uplink’s metadata, whilettnctl gateways info
reports whatever is configured in TTN Console.