Inductive Automation Device API
Device connection management
Device connection management
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/inductive-automation-device-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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