TTTech DATA EXCHANGE API
The operations to manage node data exchange.
The operations to manage node data exchange.
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/tttech-data-exchange-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:
version: 3.1.0
description: 'Nerve Management System API to manage: -labels -nodes -workloads -notifications -capabilities'
title: Nerve Management System DATA EXCHANGE API
contact:
name: Nerve support
email: support@tttech-industrial.com
servers:
- url: https://trynerve1.nerve.cloud
security:
- sessionId: []
tags:
- name: DATA EXCHANGE
description: The operations to manage node data exchange.
paths:
/nerve/data-exchange/cached-data:
post:
summary: Retrieve cached data from the Cloud server
operationId: get_cached_data
description: Returns the retrieved node data values
tags:
- DATA EXCHANGE
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Data parameters to retrieve cached data
required:
- dataId
- serialNumber
- fromNodeIfCacheEmpty
additionalProperties: false
properties:
dataId:
example: wan_ip_address
type: string
description: Unique string that identifies data that we want to listen to
minLength: 2
maxLength: 129
pattern: ^[a-zA-Z0-9_-]+$
serialNumber:
description: The serial number of the node
type: string
maxLength: 12
minLength: 12
pattern: ([A-Z0-9]){12}
fromNodeIfCacheEmpty:
type: boolean
description: If there is no such data in cache, get it from Node, refresh cache and return it
example: true
x-permissions:
- NODE:VIEW
responses:
'200':
description: Successfully retrieved node data
content:
application/json:
schema:
type: object
description: Data retrieved from the node
additionalProperties: false
properties:
values:
type: object
description: Object containing the retrieved values
properties:
ip_address:
type: string
description: The IP address value
minLength: 0
maxLength: 255
pattern: (\b25[0-5]|\b2[0-4][0-9]|\b[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}
serial:
description: The serial number of the node
type: string
maxLength: 12
minLength: 12
pattern: ([A-Z0-9]){12}
fromCache:
type: boolean
description: Whether the data was retrieved from the cache
dataId:
type: string
description: Unique string that identifies data that we want to listen to
minLength: 2
maxLength: 129
pattern: ^[a-zA-Z0-9_-]+$
timestamp:
type: integer
format: int64
description: Timestamp when the data was retrieved
minimum: 0
maximum: 4102444800000
example:
dataId: wan_ip_address
values:
ip_address: 10.85.10.63
serial: NB1000000011
timestamp: 1719998925413
fromCache: true
'400':
description: Route params validation error
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
errorCode: '00006'
httpCode: '400'
message: Route params validation error
'403':
description: You are not authorized to perform this operation
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
examples:
not_authorized:
value:
errorCode: '00003'
httpCode: '403'
message: You are not authorized
'404':
description: Node with this serial number does not exist
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
errorCode: nerve_exchange_000850
httpCode: '404'
message: Node with this serial number does not exist
'409':
description: Node can not provide data
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
errorCode: nerve_exchange_000853
httpCode: '409'
message: Node can not provide data
/nerve/data-exchange/node-data:
post:
summary: Retrieve node data from the Cloud server
operationId: get_node_data
description: Fetches node data values from the Cloud server, providing details about the workloads deployed on the node.
tags:
- DATA EXCHANGE
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Data parameters to retrieve node data
required:
- dataId
- data
- serialNumber
- requestConfig
additionalProperties: false
properties:
data:
oneOf:
- type: integer
format: int32
description: Id of the deployed workload
minimum: 100
maximum: 1000
- type: object
description: Object containing the container name
properties:
containerName:
type: string
description: Docker container name
minLength: 2
maxLength: 100
pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]+$
dataId:
type: string
description: Unique string that identifies data that we want to listen to
minLength: 2
maxLength: 129
pattern: ^[a-zA-Z0-9_-]+$
example: workloads
serialNumber:
description: The serial number of the node
type: string
maxLength: 12
minLength: 12
pattern: ([A-Z0-9]){12}
requestConfig:
type: object
description: Configuration parameters for the request
required:
- forceRequest
- timeout
properties:
forceRequest:
type: boolean
description: Whether to force the request to the node
example: false
timeout:
type: integer
format: int32
description: How long to wait for data from Node before returning cached data
minimum: 0
example: 2000
maximum: 86400000
forceRequestNoCacheUpdate:
type: boolean
description: Whether to force the request without updating the cache
example: false
x-permissions:
- NODE:VIEW
responses:
'200':
description: Successfully retrieved node data
content:
application/json:
schema:
description: Data retrieved from the node
anyOf:
- type: object
properties:
values:
type: object
description: Object containing the retrieved values
anyOf:
- description: Payload of the docker workload
allOf:
- type: object
description: Basic payload of the workload
required:
- workloadId
- status
- name
- type
- statusChangedTimestamp
- workloadVersionName
properties:
workloadId:
description: ID (from Management System) of the entry
type: string
pattern: ^[0-9a-fA-F]{24}$
minLength: 24
maxLength: 24
versionId:
description: ID (from Management System) of the entry
type: string
pattern: ^[0-9a-fA-F]{24}$
minLength: 24
maxLength: 24
status:
type: string
description: Status of workload in queue
enum:
- New
- Reserved
- Queued
- Downloading
- Downloaded
- Installed
- Removing
- Removing_failed
name:
type: string
description: Workload name
minLength: 1
maxLength: 40
pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$))
type:
description: Workload type
type: string
enum:
- docker
- vm
- codesys
- docker-compose
statusChangedTimestamp:
type: integer
format: int64
description: Time when state of the workload has changed in milliseconds.
minimum: 0
maximum: 4102444800000
workloadVersionName:
type: string
description: Version name
minLength: 1
maxLength: 40
pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$))
deployTime:
type: integer
format: int64
description: Time when workload has been deployed in milliseconds.
minimum: 0
maximum: 4102444800000
wiseDeviceStatus:
type: integer
format: int32
description: 'Status of deployed workload
- 0 *IDLE*
- 1 *CREATING*
- 2 *REMOVING*
- 3 *SUSPENDING*
- 4 *SUSPENDED*
- 5 *STARTING*
- 6 *RESTARTING*
- 7 *RESUMING*
- 8 *STARTED*
- 9 *STOPPING*
- 10 *STOPPED*
- 11 *ERROR*
- 12 *REMOVING_FAILED*
- 13 *PARTIALLY_RUNNING*
'
minimum: 0
maximum: 13
deviceId:
type: integer
format: int32
description: Id of the deployed workload
minimum: 100
maximum: 1000
- type: object
required:
- envVars
- ports
properties:
envVars:
description: List of docker environment variables
type: array
minItems: 0
maxItems: 1001
items:
type: string
pattern: ^[a-zA-Z_][a-zA-Z0-9_]+=
minLength: 1
maxLength: 1000
ports:
type: array
description: A list of port mappings
minItems: 0
maxItems: 1001
items:
type: object
description: Mapping a container port to a port on the Docker host to the outside world.
required:
- protocol
- hostPort
- containerPort
additionalProperties: false
properties:
protocol:
type: string
description: The protocol used for the port mapping, either TCP or UDP
enum:
- tcp
- udp
hostPort:
type: string
pattern: ^\d+$
minLength: 1
maxLength: 5
description: The port number on the host machine that is mapped to the container's port
containerPort:
type: string
pattern: ^\d+$
minLength: 1
maxLength: 5
description: The port number inside the Docker container that is being exposed
resources:
type: object
description: Current and original values of defined cpu and memory limits
additionalProperties: false
properties:
cpu:
type: object
description: Object containing the current and original values of defined CPU
properties:
current:
description: Current values of defined CPU
anyOf:
- type: integer
format: int64
minimum: 1
maximum: 1000
- type: integer
description: Number of CPUs for VM
format: int32
minimum: 1
maximum: 1000
originally:
description: Original values of defined CPU
anyOf:
- type: integer
format: int64
minimum: 1
maximum: 1000
- type: integer
description: Number of CPUs for VM
format: int32
minimum: 1
maximum: 1000
memory:
type: object
description: Object containing the current and original values of defined memory
properties:
current:
description: Current values of defined memory
type: integer
format: int64
minimum: 100000000
maximum: 20000000000
originally:
description: Original values of defined memory
type: integer
format: int64
minimum: 100000000
maximum: 20000000000
- description: Payload of the codesys workload
type: object
required:
- workloadId
- status
- name
- type
- statusChangedTimestamp
- workloadVersionName
properties:
workloadId:
description: ID (from Management System) of the entry
type: string
pattern: ^[0-9a-fA-F]{24}$
minLength: 24
maxLength: 24
versionId:
description: ID (from Management System) of the entry
type: string
pattern: ^[0-9a-fA-F]{24}$
minLength: 24
maxLength: 24
status:
type: string
description: Status of workload in queue
enum:
- New
- Reserved
- Queued
- Downloading
- Downloaded
- Installed
- Removing
- Removing_failed
name:
type: string
description: Workload name
minLength: 1
maxLength: 40
pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$))
type:
description: Workload type
type: string
enum:
- docker
- vm
- codesys
- docker-compose
statusChangedTimestamp:
type: integer
format: int64
description: Time when state of the workload has changed in milliseconds.
minimum: 0
maximum: 4102444800000
workloadVersionName:
type: string
description: Version name
minLength: 1
maxLength: 40
pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$))
deployTime:
type: integer
format: int64
description: Time when workload has been deployed in milliseconds.
minimum: 0
maximum: 4102444800000
wiseDeviceStatus:
type: integer
format: int32
description: 'Status of deployed workload
- 0 *IDLE*
- 1 *CREATING*
- 2 *REMOVING*
- 3 *SUSPENDING*
- 4 *SUSPENDED*
- 5 *STARTING*
- 6 *RESTARTING*
- 7 *RESUMING*
- 8 *STARTED*
- 9 *STOPPING*
- 10 *STOPPED*
- 11 *ERROR*
- 12 *REMOVING_FAILED*
- 13 *PARTIALLY_RUNNING*
'
minimum: 0
maximum: 13
deviceId:
type: integer
format: int32
description: Id of the deployed workload
minimum: 100
maximum: 1000
- description: Payload of the vm workload
allOf:
- type: object
description: Basic payload of the workload
required:
- workloadId
- status
- name
- type
- statusChangedTimestamp
- workloadVersionName
properties:
workloadId:
description: ID (from Management System) of the entry
type: string
pattern: ^[0-9a-fA-F]{24}$
minLength: 24
maxLength: 24
versionId:
description: ID (from Management System) of the entry
type: string
pattern: ^[0-9a-fA-F]{24}$
minLength: 24
maxLength: 24
status:
type: string
description: Status of workload in queue
enum:
- New
- Reserved
- Queued
- Downloading
- Downloaded
- Installed
- Removing
- Removing_failed
name:
type: string
description: Workload name
minLength: 1
maxLength: 40
pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$))
type:
description: Workload type
type: string
enum:
- docker
- vm
- codesys
- docker-compose
statusChangedTimestamp:
type: integer
format: int64
description: Time when state of the workload has changed in milliseconds.
minimum: 0
maximum: 4102444800000
workloadVersionName:
type: string
description: Version name
minLength: 1
maxLength: 40
pattern: (?=.*[^ ].*)(?=(^[^\u0000-\u001f\u007f-\u009f]*$))
deployTime:
type: integer
format: int64
description: Time when workload has been deployed in milliseconds.
minimum: 0
maximum: 4102444800000
wiseDeviceStatus:
type: integer
format: int32
description: 'Status of deployed workload
- 0 *IDLE*
- 1 *CREATING*
- 2 *REMOVING*
- 3 *SUSPENDING*
- 4 *SUSPENDED*
- 5 *STARTING*
- 6 *RESTARTING*
- 7 *RESUMING*
- 8 *STARTED*
- 9 *STOPPING*
- 10 *STOPPED*
- 11 *ERROR*
- 12 *REMOVING_FAILED*
- 13 *PARTIALLY_RUNNING*
'
minimum: 0
maximum: 13
deviceId:
type: integer
format: int32
description: Id of the deployed workload
minimum: 100
maximum: 1000
- type: object
required:
- resources
properties:
resources:
type: object
description: Current and original values of defined cpu and memory limits
additionalProperties: false
properties:
cpu:
type: object
description: Object containing the current and original values of defined CPU
properties:
current:
description: Current values of defined CPU
anyOf:
- type: integer
format: int64
minimum: 1
maximum: 1000
- type: integer
description: Number of CPUs for VM
format: int32
minimum: 1
maximum: 1000
originally:
description: Original values of defined CPU
anyOf:
- type: integer
format: int64
minimum: 1
maximum: 1000
- type: integer
description: Number of CPUs for VM
format: int32
minimum: 1
maximum: 1000
memory:
# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tttech/refs/heads/main/openapi/tttech-data-exchange-api-openapi.yml