Inductive Automation Device API

Device connection management

Operations 12

PUT /data/api/v1/resources/com.inductiveautomation.opcua/device Modify Devices #
POST /data/api/v1/resources/com.inductiveautomation.opcua/device Create Devices #
DELETE /data/api/v1/resources/com.inductiveautomation.opcua/device/{name}/{signature} Delete Devices #
GET /data/api/v1/resources/datafile/com.inductiveautomation.opcua/device/{name}/{filename} Get Devices Data File #
PUT /data/api/v1/resources/datafile/com.inductiveautomation.opcua/device/{name}/{filename} Update Devices Data File #
DELETE /data/api/v1/resources/datafile/com.inductiveautomation.opcua/device/{name}/{filename} Delete Devices Data File #
POST /data/api/v1/resources/delete/com.inductiveautomation.opcua/device Delete Devices (multiple) #
GET /data/api/v1/resources/find/com.inductiveautomation.opcua/device/{name} Get Devices Config #
GET /data/api/v1/resources/list/com.inductiveautomation.opcua/device List Devices Resources #
GET /data/api/v1/resources/names/com.inductiveautomation.opcua/device Get Devices Names #
POST /data/api/v1/resources/rename/com.inductiveautomation.opcua/device/{name} Rename Devices #
GET /data/api/v1/resources/type/com.inductiveautomation.opcua/device Describe 'Devices' Resource Type #

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/inductive-automation-device-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

inductive-automation-device-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ignition Gateway REST Device API
  description: The Ignition Gateway REST API (Ignition 8.3+) provides an OpenAPI-compliant HTTP interface to Gateway configuration resources including tags, projects, modules, device connections, historian data, user management (SCIM), alarm notification, OPC connections, and more.
  version: 8.3.0
  contact:
    name: Inductive Automation Support
    url: https://support.inductiveautomation.com/
  license:
    name: Commercial
    url: https://inductiveautomation.com/pricing/
  x-postman-collection: https://raw.githubusercontent.com/inductiveautomation/83-api/main/postman/8.3.postman_collection_v2.json
servers:
- url: http://{gateway-host}:{port}
  description: Ignition Gateway (HTTP)
  variables:
    gateway-host:
      default: localhost
      description: Hostname or IP address of the Ignition Gateway
    port:
      default: '8088'
      description: Gateway HTTP port (default 8088; HTTPS default 8043)
- url: https://{gateway-host}:{port}
  description: Ignition Gateway (HTTPS)
  variables:
    gateway-host:
      default: localhost
      description: Hostname or IP address of the Ignition Gateway
    port:
      default: '8043'
      description: Gateway HTTPS port
security:
- apiKeyAuth: []
tags:
- name: Device
  description: Device connection management
paths:
  /data/api/v1/resources/com.inductiveautomation.opcua/device:
    put:
      summary: Modify Devices
      operationId: modify-devices-put
      tags:
      - Device
      description: Modify one or more Devices resources
      parameters:
      - name: allowInvalidReferences
        in: query
        required: false
        schema:
          type: string
        description: If true, invalid references will be allowed. Default is false.
      requestBody:
        content:
          application/json:
            schema:
              type: object
            example:
            - name: <string>
              signature: <string>
              collection: <string>
              enabled: <boolean>
              description: <string>
              config:
                profile:
                  type: <string>
                  browsePath: <string>
                  rolePermissionMappings:
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                settings:
                  connectivity:
                    hostname:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    localAddress:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    timeout:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    path:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  advanced:
                    disableAutomaticBrowse:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    showStringArrays:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    statusPollRate:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    concurrentRequests:
                      value: '<Error: Too many levels of nesting to fake this schema>'
              backupConfig:
                profile:
                  type: <string>
                  browsePath: <string>
                  rolePermissionMappings:
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                settings:
                  connectivity:
                    hostname:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    localAddress:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    timeout:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    path:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  advanced:
                    disableAutomaticBrowse:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    showStringArrays:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    statusPollRate:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    concurrentRequests:
                      value: '<Error: Too many levels of nesting to fake this schema>'
            - name: <string>
              signature: <string>
              collection: <string>
              enabled: <boolean>
              description: <string>
              config:
                profile:
                  type: <string>
                  browsePath: <string>
                  rolePermissionMappings:
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                settings:
                  connectivity:
                    hostname:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    localAddress:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    timeout:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    path:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  advanced:
                    disableAutomaticBrowse:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    showStringArrays:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    statusPollRate:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    concurrentRequests:
                      value: '<Error: Too many levels of nesting to fake this schema>'
              backupConfig:
                profile:
                  type: <string>
                  browsePath: <string>
                  rolePermissionMappings:
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                settings:
                  connectivity:
                    hostname:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    localAddress:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    timeout:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    path:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  advanced:
                    disableAutomaticBrowse:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    showStringArrays:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    statusPollRate:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    concurrentRequests:
                      value: '<Error: Too many levels of nesting to fake this schema>'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
    post:
      summary: Create Devices
      operationId: create-devices-post
      tags:
      - Device
      description: Create a new Devices resource
      parameters:
      - name: allowInvalidReferences
        in: query
        required: false
        schema:
          type: string
        description: If true, invalid references will be allowed. Default is false.
      requestBody:
        content:
          application/json:
            schema:
              type: object
            example:
            - name: <string>
              collection: <string>
              enabled: <boolean>
              description: <string>
              config:
                profile:
                  type: <string>
                  browsePath: <string>
                  rolePermissionMappings:
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                settings:
                  connectivity:
                    hostname:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    localAddress:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    timeout:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    path:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  advanced:
                    disableAutomaticBrowse:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    showStringArrays:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    statusPollRate:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    concurrentRequests:
                      value: '<Error: Too many levels of nesting to fake this schema>'
              backupConfig:
                profile:
                  type: <string>
                  browsePath: <string>
                  rolePermissionMappings:
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                settings:
                  connectivity:
                    hostname:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    localAddress:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    timeout:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    path:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  advanced:
                    disableAutomaticBrowse:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    showStringArrays:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    statusPollRate:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    concurrentRequests:
                      value: '<Error: Too many levels of nesting to fake this schema>'
            - name: <string>
              collection: <string>
              enabled: <boolean>
              description: <string>
              config:
                profile:
                  type: <string>
                  browsePath: <string>
                  rolePermissionMappings:
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                settings:
                  connectivity:
                    hostname:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    localAddress:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    timeout:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    path:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  advanced:
                    disableAutomaticBrowse:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    showStringArrays:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    statusPollRate:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    concurrentRequests:
                      value: '<Error: Too many levels of nesting to fake this schema>'
              backupConfig:
                profile:
                  type: <string>
                  browsePath: <string>
                  rolePermissionMappings:
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  - role:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    permissions:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                settings:
                  connectivity:
                    hostname:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    localAddress:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    timeout:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    path:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                  advanced:
                    disableAutomaticBrowse:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    showStringArrays:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    statusPollRate:
                      value: '<Error: Too many levels of nesting to fake this schema>'
                    concurrentRequests:
                      value: '<Error: Too many levels of nesting to fake this schema>'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /data/api/v1/resources/com.inductiveautomation.opcua/device/{name}/{signature}:
    delete:
      summary: Delete Devices
      operationId: delete-devices-delete
      tags:
      - Device
      description: Delete a Devices resource by name
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: signature
        in: path
        required: true
        schema:
          type: string
      - name: collection
        in: query
        required: false
        schema:
          type: string
        description: The configuration collection to delete the resource from
      - name: confirm
        in: query
        required: false
        schema:
          type: string
        description: Whether to confirm the deletion, required when the operation would affect other resources.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /data/api/v1/resources/datafile/com.inductiveautomation.opcua/device/{name}/{filename}:
    get:
      summary: Get Devices Data File
      operationId: get-devices-data-file-get
      tags:
      - Device
      description: Retrieve a data file from a specific Devices resource
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: filename
        in: path
        required: true
        schema:
          type: string
      - name: collection
        in: query
        required: false
        schema:
          type: string
        description: The configuration collection to read the file from
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
    put:
      summary: Update Devices Data File
      operationId: update-devices-data-file-put
      tags:
      - Device
      description: Update (overwrite) a data file for a named Devices resource
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: filename
        in: path
        required: true
        schema:
          type: string
      - name: collection
        in: query
        required: false
        schema:
          type: string
        description: The configuration collection to update. If omitted, the active definition's collection will be used.
      - name: signature
        in: query
        required: false
        schema:
          type: string
        description: (Required) The current signature of the resource.
      - name: rename
        in: query
        required: false
        schema:
          type: string
        description: An optional new name for the file
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
    delete:
      summary: Delete Devices Data File
      operationId: delete-devices-data-file-delete
      tags:
      - Device
      description: Delete a data file for a named Devices resource
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: filename
        in: path
        required: true
        schema:
          type: string
      - name: collection
        in: query
        required: false
        schema:
          type: string
        description: The configuration collection to update. If omitted, the active definition's collection will be used.
      - name: signature
        in: query
        required: false
        schema:
          type: string
        description: (Required) The current signature of the resource.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /data/api/v1/resources/delete/com.inductiveautomation.opcua/device:
    post:
      summary: Delete Devices (multiple)
      operationId: delete-devices-(multiple)-post
      tags:
      - Device
      description: Delete multiple Devices resources by name
      parameters:
      - name: confirm
        in: query
        required: false
        schema:
          type: string
        description: Whether to confirm the deletion, required when the operation would affect other resources.
      requestBody:
        content:
          application/json:
            schema:
              type: object
            example:
            - name: <string>
              signature: <string>
              collection: <string>
            - name: <string>
              signature: <string>
              collection: <string>
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /data/api/v1/resources/find/com.inductiveautomation.opcua/device/{name}:
    get:
      summary: Get Devices Config
      operationId: get-devices-config-get
      tags:
      - Device
      description: Retrieve configuration details about a specific Devices resource
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: collection
        in: query
        required: false
        schema:
          type: string
        description: The configuration collection to read the resource from
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /data/api/v1/resources/list/com.inductiveautomation.opcua/device:
    get:
      summary: List Devices Resources
      operationId: list-devices-resources-get
      tags:
      - Device
      description: List all Devices resources, in verbose format, including configuration, metrics, and health checks.
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: The maximum number of items to return.
      - name: offset
        in: query
        required: false
        schema:
          type: string
        description: The number of items to skip before returning results.
      - name: sortBy
        in: query
        required: false
        schema:
          type: string
        description: 'The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`

          to specify the sort direction as ascending or descending, respectively.

          '
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: A search string to filter items by. Terms separated by whitespace.
      - name: key_0
        in: query
        required: false
        schema:
          type: string
        description: 'Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /data/api/v1/resources/names/com.inductiveautomation.opcua/device:
    get:
      summary: Get Devices Names
      operationId: get-devices-names-get
      tags:
      - Device
      description: List all Devices resources, including just names and enabled bit
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: The maximum number of items to return.
      - name: offset
        in: query
        required: false
        schema:
          type: string
        description: The number of items to skip before returning results.
      - name: sortBy
        in: query
        required: false
        schema:
          type: string
        description: 'The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`

          to specify the sort direction as ascending or descending, respectively.

          '
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: A search string to filter items by. Terms separated by whitespace.
      - name: key_0
        in: query
        required: false
        schema:
          type: string
        description: 'Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /data/api/v1/resources/rename/com.inductiveautomation.opcua/device/{name}:
    post:
      summary: Rename Devices
      operationId: rename-devices-post
      tags:
      - Device
      description: Change the name of a Devices resource, and update all references to it
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: collection
        in: query
        required: false
        schema:
          type: string
        description: The configuration collection to rename the resource in
      requestBody:
        content:
          application/json:
            schema:
              type: object
            example:
              name: <string>
              references: <string>
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /data/api/v1/resources/type/com.inductiveautomation.opcua/device:
    get:
      summary: Describe 'Devices' Resource Type
      operationId: describe-'devices'-resource-type-get
      tags:
      - Device
      description: Describe the Devices resource type
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Ignition-API-Token
      description: Time-limited API token. Obtain by posting credentials to the token endpoint. See /data/api/v1/token for details.
externalDocs:
  description: Ignition 8.3 Gateway REST API Documentation
  url: https://www.docs.inductiveautomation.com/docs/8.3/platform/gateway/openapi