The Things Network Structure

Top-level entity model exposed by The Things Stack v3 APIs.

Type: Properties: 0
LoRaWANIoTInternet of ThingsOpen-SourceNetwork ServerLPWANTelemetrySensorsGatewaysConnectivityApache 2.0

the-things-network is a JSON Structure definition published by The Things Network / The Things Stack. It conforms to the https://json-structure.org/draft-01/schema meta-schema.

Meta-schema: https://json-structure.org/draft-01/schema

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/draft-01/schema",
  "name": "the-things-network",
  "title": "The Things Stack — JSON Structure Overview",
  "description": "Top-level entity model exposed by The Things Stack v3 APIs.",
  "entities": [
    {
      "name": "User",
      "service": "IdentityServer",
      "key": "user_id",
      "summary": "Account principal; owns applications, gateways, organizations, API keys, sessions."
    },
    {
      "name": "Organization",
      "service": "IdentityServer",
      "key": "organization_id",
      "summary": "Multi-user tenant scope; collaborator of applications, gateways, and clients."
    },
    {
      "name": "Application",
      "service": "IdentityServer + ApplicationServer",
      "key": "application_id",
      "summary": "Owns end devices, webhooks, pub/sub integrations, payload formatters, and storage."
    },
    {
      "name": "EndDevice",
      "service": "IdentityServer + ApplicationServer + NetworkServer + JoinServer",
      "key": "device_id (scoped to application_ids) + dev_eui + join_eui",
      "summary": "LoRaWAN device record split across AS, NS, JS for application metadata, MAC state, and session keys."
    },
    {
      "name": "Gateway",
      "service": "IdentityServer + GatewayServer",
      "key": "gateway_id + eui",
      "summary": "LoRa packet forwarder endpoint; reports status, uplinks, and downlinks."
    },
    {
      "name": "ApplicationWebhook",
      "service": "ApplicationServer",
      "key": "webhook_id (scoped to application_ids)",
      "summary": "HTTP delivery target with per-message-kind path mapping."
    },
    {
      "name": "ApplicationPubSub",
      "service": "ApplicationServer",
      "key": "pub_sub_id (scoped to application_ids)",
      "summary": "NATS / MQTT / AWS / Azure pub-sub integration."
    },
    {
      "name": "APIKey",
      "service": "IdentityServer",
      "key": "api_key_id (scoped to owner: user/org/application/gateway/client)",
      "summary": "Token-based credential; carries a set of rights (RIGHT_* enum)."
    },
    {
      "name": "OAuthClient",
      "service": "IdentityServer",
      "key": "client_id",
      "summary": "OAuth 2.0 client registration; supports authorization-code, refresh tokens, PKCE."
    },
    {
      "name": "Event",
      "service": "All servers (stream)",
      "key": "unique_id + time",
      "summary": "Real-time event published by IS/AS/NS/GS/JS for any entity change or message lifecycle."
    },
    {
      "name": "FrequencyPlan",
      "service": "Configuration",
      "key": "frequency_plan_id",
      "summary": "LoRaWAN regional parameter selection (EU_863_870, US_902_928, etc.)."
    }
  ],
  "relationships": [
    { "from": "User", "to": "APIKey", "kind": "owns" },
    { "from": "User", "to": "Organization", "kind": "member-of" },
    { "from": "Organization", "to": "Application", "kind": "collaborator" },
    { "from": "Application", "to": "EndDevice", "kind": "owns" },
    { "from": "Application", "to": "ApplicationWebhook", "kind": "owns" },
    { "from": "Application", "to": "ApplicationPubSub", "kind": "owns" },
    { "from": "User", "to": "Gateway", "kind": "owns" },
    { "from": "Gateway", "to": "EndDevice", "kind": "receives-uplink-from" },
    { "from": "EndDevice", "to": "FrequencyPlan", "kind": "uses" }
  ]
}

Work with this as data

Every JSON Structure here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for json structure

4 MCP tools reach this
  • find_json_structuresBrowse and filter every JSON Structure in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Structure
curl "https://apis.io/api/v1/json-structures/the-things-network-structure"
All json structure
curl "https://apis.io/api/v1/json-structures?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.