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

GET /dr/applications/{application_ids.application_id}/brands #
GET /dr/applications/{application_ids.application_id}/brands/{brand_id} #
GET /dr/applications/{application_ids.application_id}/brands/{brand_id}/models #
GET /dr/applications/{application_ids.application_id}/brands/{brand_id}/models/{model_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 /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 /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 /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 /dr/applications/{application_ids.application_id}/models #
GET /dr/applications/{application_ids.application_id}/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template #
GET /dr/brands #
GET /dr/brands/{brand_id} #
GET /dr/brands/{brand_id}/models #
GET /dr/brands/{brand_id}/models/{model_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 /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/encoder #
GET /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/uplink/decoder #
GET /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/template #
GET /dr/models #
GET /dr/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template #

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-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 — Application Server AppAs 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:
- name: DeviceRepository
paths:
  /dr/applications/{application_ids.application_id}/brands:
    get:
      operationId: DeviceRepository_ListBrands2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3ListEndDeviceBrandsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: limit
        description: Limit the number of results per page.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: page
        description: Page number for pagination. 0 is interpreted as 1.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: order_by
        description: Order (for pagination)
        in: query
        required: false
        schema:
          type: string
      - name: search
        description: Search for brands matching a query string.
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  /dr/applications/{application_ids.application_id}/brands/{brand_id}:
    get:
      operationId: DeviceRepository_GetBrand2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3EndDeviceBrand'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: brand_id
        description: Brand identifier, as defined in the Device Repository.
        in: path
        required: true
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  /dr/applications/{application_ids.application_id}/brands/{brand_id}/models:
    get:
      operationId: DeviceRepository_ListModels4
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3ListEndDeviceModelsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: brand_id
        description: List end devices from a specific brand.
        in: path
        required: true
        schema:
          type: string
      - name: limit
        description: Limit the number of results per page.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: page
        description: Page number for pagination. 0 is interpreted as 1.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: order_by
        description: Order end devices
        in: query
        required: false
        schema:
          type: string
      - name: search
        description: List end devices matching a query string.
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  /dr/applications/{application_ids.application_id}/brands/{brand_id}/models/{model_id}:
    get:
      operationId: DeviceRepository_GetModel2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3EndDeviceModel'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: brand_id
        description: Brand identifier, as defined in the Device Repository.
        in: path
        required: true
        schema:
          type: string
      - name: model_id
        description: Model identifier, as defined in the Device Repository.
        in: path
        required: true
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /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:
      operationId: DeviceRepository_GetDownlinkDecoder2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3MessagePayloadDecoder'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.brand_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.model_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.firmware_version
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.band_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /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:
      operationId: DeviceRepository_GetDownlinkEncoder2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3MessagePayloadEncoder'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.brand_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.model_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.firmware_version
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.band_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /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:
      operationId: DeviceRepository_GetUplinkDecoder2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3MessagePayloadDecoder'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.brand_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.model_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.firmware_version
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.band_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /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:
      operationId: DeviceRepository_GetTemplate3
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3EndDeviceTemplate'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.brand_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.model_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.firmware_version
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.band_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: end_device_profile_ids.vendor_id
        description: VendorID managed by the LoRa Alliance, as defined in TR005.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: end_device_profile_ids.vendor_profile_id
        description: ID of the LoRaWAN end device profile assigned by the vendor.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      tags:
      - DeviceRepository
  /dr/applications/{application_ids.application_id}/models:
    get:
      operationId: DeviceRepository_ListModels3
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3ListEndDeviceModelsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: brand_id
        description: List end devices from a specific brand.
        in: query
        required: false
        schema:
          type: string
      - name: limit
        description: Limit the number of results per page.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: page
        description: Page number for pagination. 0 is interpreted as 1.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: order_by
        description: Order end devices
        in: query
        required: false
        schema:
          type: string
      - name: search
        description: List end devices matching a query string.
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /dr/applications/{application_ids.application_id}/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template
  : get:
      operationId: DeviceRepository_GetTemplate4
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3EndDeviceTemplate'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: path
        required: true
        schema:
          type: string
      - name: end_device_profile_ids.vendor_id
        description: VendorID managed by the LoRa Alliance, as defined in TR005.
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: end_device_profile_ids.vendor_profile_id
        description: ID of the LoRaWAN end device profile assigned by the vendor.
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: version_ids.brand_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.model_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.firmware_version
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.band_id
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  /dr/brands:
    get:
      operationId: DeviceRepository_ListBrands
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3ListEndDeviceBrandsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: limit
        description: Limit the number of results per page.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: page
        description: Page number for pagination. 0 is interpreted as 1.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: order_by
        description: Order (for pagination)
        in: query
        required: false
        schema:
          type: string
      - name: search
        description: Search for brands matching a query string.
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  /dr/brands/{brand_id}:
    get:
      operationId: DeviceRepository_GetBrand
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3EndDeviceBrand'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: brand_id
        description: Brand identifier, as defined in the Device Repository.
        in: path
        required: true
        schema:
          type: string
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  /dr/brands/{brand_id}/models:
    get:
      operationId: DeviceRepository_ListModels2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3ListEndDeviceModelsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: brand_id
        description: List end devices from a specific brand.
        in: path
        required: true
        schema:
          type: string
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: limit
        description: Limit the number of results per page.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: page
        description: Page number for pagination. 0 is interpreted as 1.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: order_by
        description: Order end devices
        in: query
        required: false
        schema:
          type: string
      - name: search
        description: List end devices matching a query string.
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  /dr/brands/{brand_id}/models/{model_id}:
    get:
      operationId: DeviceRepository_GetModel
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3EndDeviceModel'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: brand_id
        description: Brand identifier, as defined in the Device Repository.
        in: path
        required: true
        schema:
          type: string
      - name: model_id
        description: Model identifier, as defined in the Device Repository.
        in: path
        required: true
        schema:
          type: string
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/decoder
  : get:
      operationId: DeviceRepository_GetDownlinkDecoder
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3MessagePayloadDecoder'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: version_ids.brand_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.model_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.firmware_version
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.band_id
        in: path
        required: true
        schema:
          type: string
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/downlink/encoder
  : get:
      operationId: DeviceRepository_GetDownlinkEncoder
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3MessagePayloadEncoder'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: version_ids.brand_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.model_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.firmware_version
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.band_id
        in: path
        required: true
        schema:
          type: string
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/formatters/uplink/decoder
  : get:
      operationId: DeviceRepository_GetUplinkDecoder
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3MessagePayloadDecoder'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: version_ids.brand_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.model_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.firmware_version
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.band_id
        in: path
        required: true
        schema:
          type: string
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  ? /dr/brands/{version_ids.brand_id}/models/{version_ids.model_id}/{version_ids.firmware_version}/{version_ids.band_id}/template
  : get:
      operationId: DeviceRepository_GetTemplate
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3EndDeviceTemplate'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: version_ids.brand_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.model_id
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.firmware_version
        in: path
        required: true
        schema:
          type: string
      - name: version_ids.band_id
        in: path
        required: true
        schema:
          type: string
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: end_device_profile_ids.vendor_id
        description: VendorID managed by the LoRa Alliance, as defined in TR005.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: end_device_profile_ids.vendor_profile_id
        description: ID of the LoRaWAN end device profile assigned by the vendor.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      tags:
      - DeviceRepository
  /dr/models:
    get:
      operationId: DeviceRepository_ListModels
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3ListEndDeviceModelsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: brand_id
        description: List end devices from a specific brand.
        in: query
        required: false
        schema:
          type: string
      - name: limit
        description: Limit the number of results per page.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: page
        description: Page number for pagination. 0 is interpreted as 1.
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: order_by
        description: Order end devices
        in: query
        required: false
        schema:
          type: string
      - name: search
        description: List end devices matching a query string.
        in: query
        required: false
        schema:
          type: string
      - name: field_mask
        description: Field mask paths.
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
  /dr/vendors/{end_device_profile_ids.vendor_id}/profiles/{end_device_profile_ids.vendor_profile_id}/template:
    get:
      operationId: DeviceRepository_GetTemplate2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3EndDeviceTemplate'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: end_device_profile_ids.vendor_id
        description: VendorID managed by the LoRa Alliance, as defined in TR005.
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: end_device_profile_ids.vendor_profile_id
        description: ID of the LoRaWAN end device profile assigned by the vendor.
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: application_ids.application_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.brand_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.model_id
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.hardware_version
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.firmware_version
        in: query
        required: false
        schema:
          type: string
      - name: version_ids.band_id
        in: query
        required: false
        schema:
          type: string
      tags:
      - DeviceRepository
components:
  schemas:
    MACCommandRekeyConf:
      type: object
      properties:
        minor_version:
          $ref: '#/components/schemas/v3Minor'
    ApplicationDownlinkConfirmedRetry:
      type: object
      properties:
        attempt:
          type: integer
          format: int64
          description: The number of attempted confirmed downlink acknowledgements.
        max_attempts:
          type: integer
          format: int64
          description: 'The maximum number of confirmed downlink acknowledgement attempts.

            If null, the Application Server configuration is used instead.'
    v3ADRSettingsDisabledMode:
      type: object
      description: 'Configuration options for cases in which ADR is to be disabled

        completely.'
    MACCommandRelayEndDeviceConfReq:
      type: object
      properties:
        configuration:
          $ref: '#/components

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