This guide shows how to send data from any service that supports HTTPS forwarding or webhooks to TagoIO using the Generic HTTPS Endpoint. You can use it with gateways, LNS, or any system that can post JSON or query parameters over HTTPS.
Use this when:
- Your network server or gateway isn’t natively supported by TagoIO.
- You need a simple HTTPS endpoint to receive uplinks.
- You want to map your service’s fields to TagoIO device variables with minimal setup.
This integration handles uplinks only. It does not support downlinks natively. If you need downlinks, use an Analysis to call your network server’s API following their documentation.
Overview of the flow
- Create an Authorization Key in TagoIO with optional “Additional Parameters” that tell TagoIO which fields in your payload correspond to serial, payload, and port.
- Configure your external service to POST data to the TagoIO Generic HTTPS endpoint with your Authorization (header or query).
- (Optional) Adjust your outgoing JSON so it matches the simplest format.
- Create the device in TagoIO and pick the right connector (Generic Endpoint + Generic Sensor or a decoder-enabled connector).
1) Create an Authorization Key
Create a key at: Devices → Authorization
You’ll see a field called Additional Parameter. For this integration, you can map the fields your service sends to TagoIO’s expected names:
- serial: device EUI or serial number
- payload: payload, ideally in hex
- port: sensor or LoRaWAN FPort
Example: If your service sends JSON like:
{ "devaddr": "12BAB34B54", "payload_raw": "0011AA", "fport": 10 }
Set Additional Parameter to:
serial=devaddr;payload=payload_raw;port=fport
How it works:
- TagoIO searches both the JSON body and query string for the mapped keys.
- If you don’t set Additional Parameter, TagoIO tries to auto-detect common keys. This may not always match your payload—explicit mapping is safer.
- Any extra fields in your JSON become variables on your TagoIO device automatically.
Nested JSON paths are supported for “serial.”
Example: If your ID lives under {"deviceInfo": {"serial": "AA-BB"}}, set:
serial=deviceInfo.serial
2) Point your service to the TagoIO Generic HTTPS Endpoint
Your service must send HTTPS POSTs to the TagoIO Generic Middleware endpoint for your region.
-
Base URL format:
https://generic.middleware.REGION.tago.io/uplink
Replace REGION with your deployment region (e.g.,us-e1,eu-w1).
See available regions: TagoIO Network Integration regions -
Example:
https://generic.middleware.us-e1.tago.io/uplink
You can provide your Authorization in one of two ways:
Option A: Authorization header
- Header key:
Authorization - Header value: Your Authorization Key from step 1
Option B: Authorization in the query string
- URL:
https://generic.middleware.REGION.tago.io/uplink?authorization=YOUR-AUTHORIZATION-HERE
Do not expose Authorization keys in client apps or public code. Keep them on the server or in your network server’s secure configuration.
3) (Optional) Standardize your outgoing JSON
If your service lets you format the outgoing JSON, use this clean schema to minimize mapping:
{
"serial": "{device_eui}",
"payload": "{payload}", // hex preferred
"port": {port},
"latitude": {latitude},
"longitude": {longitude}
}
Details:
- Only
serialis required, plus the Authorization configured in step 2. - Include any other fields your device reports (e.g., RSSI, SNR, battery). TagoIO stores them as variables.
- If you’re using Additional Parameter mappings from step 1, you can keep your original field names and map them there instead.
4) Create the device in TagoIO
In TagoIO, go to Devices → Generic Endpoint and create a device using your EUI/serial.
Pick the right connector:
- If your external service already decodes the payload into final variables, use the Generic Sensor connector.
- If you want TagoIO to decode using built-in decoders, make sure your Additional Parameter mapping is correct so the decoder receives
serial,payload, andport.
Alternatively, implement your own decoding in a Payload Parser:
Troubleshooting
Use the Device’s Live Inspector to confirm uplinks are reaching TagoIO. If not, check:
- HTTP status codes from your service:
- 401/403: Invalid or missing Authorization. Check header/query value and region.
- 415: Content-Type not set to
application/jsonfor JSON bodies. - 400: Missing required
serialafter mapping. Verify Additional Parameter keys match your payload.
- Incorrect region in the endpoint URL. Match your account’s deployment region.
- Wrong Additional Parameter mapping. Typos or wrong nesting cause TagoIO to miss the fields.
- Payload encoding. If your decoder expects hex, send hex. If you send base64, adjust your parser.
- Service-side errors. Confirm the service logs show successful POSTs to TagoIO.