The Things Network / The Things Stack DeviceRepository API

The DeviceRepository API from The Things Network / The Things Stack — 20 operation(s) for devicerepository.

Operations 20

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /dr/applications/{application_ids.application_id}/brands List device brands as seen by an application · Device repository list brands2 #
Ask an LLM
“Which device manufacturers can I pick from when adding devices to my Things Stack application?”
“Can I search the brand list by name within one application's view of the Device Repository?”
Tell an agent
List the device brands available to application {application_id}.
Search brands matching {search} for application {application_id}.
GET /dr/applications/{application_ids.application_id}/brands/{brand_id} Get a device brand in an application context · Device repository get brand2 #
Ask an LLM
“What details does the repository hold about one brand when I look it up through my application?”
“Can I fetch a single manufacturer's profile scoped to a specific application?”
Tell an agent
Show brand {brand_id} as seen from application {application_id}.
Fetch only {field_mask} for brand {brand_id} via application {application_id}.
GET /dr/applications/{application_ids.application_id}/brands/{brand_id}/models List a brand's models for an application · Device repository list models4 #
Ask an LLM
“Which device models does one manufacturer offer, as listed for my application?”
“Can I page through a single brand's models from inside an application context?”
Tell an agent
List the models of brand {brand_id} for application {application_id}.
Search brand {brand_id}'s models for {search} in application {application_id}.
GET /dr/applications/{application_ids.application_id}/brands/{brand_id}/models/{model_id} Get a device model in an application context · Device repository get model2 #
Ask an LLM
“What does the Device Repository say about one specific model when accessed through my application?”
“Can I read a model's spec sheet scoped to an application ID?”
Tell an agent
Show model {model_id} of brand {brand_id} for application {application_id}.
Get the {field_mask} fields of model {model_id} by {brand_id}, scoped to application {application_id}.
GET /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/decoder Get a model's downlink decoder for an application · Device repository get downlink decoder2 #
Ask an LLM
“Where can I get the payload formatter that decodes downlinks for a device model in my application?”
“Is the downlink decoder tied to firmware version and band when fetched per application?”
Tell an agent
Get the downlink decoder for {brand_id} {model_id} firmware {firmware_version} band {band_id} in application {application_id}.
For application {application_id}, get the downlink decoder of {brand_id} {model_id} hardware {hardware_version}, firmware {firmware_version}, band {band_id}.
GET /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/encoder Get a model's downlink encoder for an application · Device repository get downlink encoder2 #
Ask an LLM
“How can my application get the formatter that encodes downlink messages for a given device model?”
“Does the downlink encoder differ by hardware version when looked up for an application?”
Tell an agent
Get the downlink encoder for {brand_id} {model_id} firmware {firmware_version} band {band_id} in application {application_id}.
For application {application_id}, get the downlink encoder of {brand_id} {model_id} hardware {hardware_version}, firmware {firmware_version}, band {band_id}.
GET /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/uplink/decoder Get a model's uplink decoder for an application · Device repository get uplink decoder2 #
Ask an LLM
“Can my application pull the ready-made uplink payload decoder for the sensor model I use?”
“Which uplink decoder applies to a model's specific firmware and band within my application?”
Tell an agent
Get the uplink decoder for {brand_id} {model_id} firmware {firmware_version} band {band_id} in application {application_id}.
For application {application_id}, get the uplink decoder of {brand_id} {model_id} hardware {hardware_version}, firmware {firmware_version}, band {band_id}.
GET /dr/applications/{application_ids.application_id}/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/template Get an end device template by model for an application · Device repository get template3 #
Ask an LLM
“Can I get a pre-filled end device template for a model and firmware to onboard into my application?”
“What registration template does the repository give my application for a given band and firmware?”
Tell an agent
Get the end device template for {brand_id} {model_id} firmware {firmware_version} band {band_id} in application {application_id}.
Build an onboarding template in application {application_id} for {brand_id} {model_id} hardware {hardware_version}, firmware {firmware_version}, band {band_id}.
GET /dr/applications/{application_ids.application_id}/models List all device models for an application · Device repository list models3 #
Ask an LLM
“Which device models across every brand can I browse for my application?”
“Can I filter the application-scoped model catalog by brand or a search term?”
Tell an agent
List every device model available to application {application_id}.
Search all models for {search} in application {application_id}.
GET /dr/applications/{application_ids.application_id}/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template Get a template by vendor profile for an application · Device repository get template4 #
Ask an LLM
“Can my application get an end device template from a vendor ID and vendor profile ID instead of a model?”
“How do I turn a LoRaWAN vendor profile into a device template inside one application?”
Tell an agent
Get the template for vendor {vendor_id} profile {vendor_profile_id} in application {application_id}.
Resolve LoRaWAN vendor profile {vendor_profile_id} from vendor {vendor_id} into a band {band_id} template for app {application_id}.
GET /dr/brands List brands in the global Device Repository · Device repository list brands #
Ask an LLM
“What LoRaWAN device manufacturers are in The Things Stack Device Repository?”
“Can I sort or search the full brand catalog without naming an application?”
Tell an agent
List all brands in the Device Repository.
Search the global brand catalog for {search}.
GET /dr/brands/{brand_id} Get a brand from the global repository · Device repository get brand #
Ask an LLM
“Where do I look up one manufacturer's profile in the shared device catalog?”
“What information is stored for a brand without an application context?”
Tell an agent
Look up brand {brand_id} in the global Device Repository.
Get just the {field_mask} of catalog brand {brand_id}.
GET /dr/brands/{brand_id}/models List a brand's models in the global repository · Device repository list models2 #
Ask an LLM
“Which models does a given manufacturer have in the global repository?”
“Can I search one brand's model list by keyword outside any application?”
Tell an agent
List the global catalog's models for brand {brand_id}.
Find models of brand {brand_id} matching {search} in the global catalog.
GET /dr/brands/{brand_id}/models/{model_id} Get a device model from the global repository · Device repository get model #
Ask an LLM
“What specs does the global Device Repository list for a particular device model?”
“Can I read one model's details straight from the shared catalog?”
Tell an agent
Look up model {model_id} from brand {brand_id} in the global repository.
Get only {field_mask} for catalog model {model_id} of brand {brand_id}.
GET /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/decoder Get a model's downlink decoder from the global catalog · Device repository get downlink decoder #
Ask an LLM
“Where is the downlink decoder for a device model published in the shared repository?”
“Can I download a model's downlink decoder without referencing an application?”
Tell an agent
Fetch the global downlink decoder for {brand_id} {model_id} firmware {firmware_version} on band {band_id}.
Download the catalog downlink decoder for {brand_id} {model_id} hardware {hardware_version} firmware {firmware_version} band {band_id}.
GET /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/encoder Get a model's downlink encoder from the global catalog · Device repository get downlink encoder #
Ask an LLM
“Is there a shared downlink encoder script for my device model and firmware?”
“Can I get the downlink encoder for a hardware version from the global catalog?”
Tell an agent
Fetch the global downlink encoder for {brand_id} {model_id} firmware {firmware_version} on band {band_id}.
Download the catalog downlink encoder for {brand_id} {model_id} hardware {hardware_version} firmware {firmware_version} band {band_id}.
GET /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/uplink/decoder Get a model's uplink decoder from the global catalog · Device repository get uplink decoder #
Ask an LLM
“How do I find the official uplink payload decoder for a device model?”
“Does the global repository publish uplink decoders per firmware version and frequency band?”
Tell an agent
Fetch the global uplink decoder for {brand_id} {model_id} firmware {firmware_version} on band {band_id}.
Download the catalog uplink decoder for {brand_id} {model_id} hardware {hardware_version} firmware {firmware_version} band {band_id}.
GET /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/template Get an end device template by model from the catalog · Device repository get template #
Ask an LLM
“Can I generate a device registration template from the global catalog for a model and firmware?”
“What end device template does the shared repository hold for a model on a given band?”
Tell an agent
Fetch the global end device template for {brand_id} {model_id} firmware {firmware_version} on band {band_id}.
Download the catalog end device template for {brand_id} {model_id} hardware {hardware_version} firmware {firmware_version} band {band_id}.
GET /dr/models List all models in the global Device Repository · Device repository list models #
Ask an LLM
“What device models across all manufacturers are in the global Device Repository?”
“Can I narrow the full model catalog to one brand with a query filter?”
Tell an agent
List every model in the global Device Repository.
List global catalog models filtered to brand {brand_id}.
GET /dr/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template Get a template by vendor profile from the catalog · Device repository get template2 #
Ask an LLM
“Can I resolve a LoRaWAN vendor ID and vendor profile ID to a device template in the global repository?”
“What template does the shared catalog return for a vendor profile?”
Tell an agent
Fetch the global template for vendor {vendor_id} profile {vendor_profile_id}.
Get the catalog template for vendor {vendor_id} profile {vendor_profile_id} on band {band_id}.

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/the-things-network:the-things-network-devicerepository-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

the-things-network-devicerepository-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Things Stack — End Device Registry Device Repository API
  version: v3.36
  description: The Things Stack is an open-source LoRaWAN Network Server implementation. This OpenAPI was derived from the upstream gRPC-Gateway generated api.swagger.json published by TheThingsNetwork/lorawan-stack v3.36.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  contact:
    name: The Things Industries
    url: https://www.thethingsindustries.com
servers:
- url: https://eu1.cloud.thethings.industries/api/v3
security:
- ApiKeyAuth: []
tags:


# --- truncated at 32 KB (152 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/the-things-network/refs/heads/main/openapi/the-things-network-devicerepository-api-openapi.yml