Nortech Signal API
This API includes endpoints that allow you to interact with `Signals` metadata.
This API includes endpoints that allow you to interact with `Signals` metadata.
openapi: 3.1.1
info:
title: Nortech Asset Signal API
version: 1.0.0
contact:
name: Nortech AI
url: https://nortech.ai
email: support@nortech.ai
summary: HTTP API for Nortech AI. Contact Nortech AI support for access.
description: "This API is structured between three main API groups:\n* **Metadata API** - To navigate and get information about your assets.\n* **Signal Data API** - To query all signal data produced from your assets.\n* **Deriver API** - To create and manage derivers that produce computed signals.\n\n# Pagination\nAll `List` Endpoints support cursor pagination. In this pagination model, the client receives a `next.token` field in the response, \nwhich can be used as a `nextToken` query parameter to fetch the next page of results. \nThe `size` parameter defines the maximum number of results to return, the `sortBy` and `sortOrder` parameters define the field to sort by and its order."
x-logo:
url: https://branding-api.apps.nor.tech/logo-light
backgroundColor: '#fafafa'
altText: Nortech AI
href: https://nortech.ai
servers:
- url: https://api.apps.nor.tech
description: HTTP API for Nortech AI
security:
- Bearer Token: []
tags:
- name: Signal
description: This API includes endpoints that allow you to interact with `Signals` metadata.
paths:
/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units/{unit}/signals:
get:
operationId: v1.metadata.signal.listWorkspaceAssetDivisionUnitSignals
summary: List Workspace Asset Division Unit Signals
description: List all `Signals` in a `Workspace/Asset/Division/Unit` group by their `Names`.
tags:
- Signal
parameters:
- name: workspace
in: path
required: true
schema:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
- name: asset
in: path
required: true
schema:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
- name: division
in: path
required: true
schema:
type: string
description: '`Name` of the `Division`'
examples:
- Division 1
- name: unit
in: path
required: true
schema:
type: string
description: '`Name` of the `Unit`'
examples:
- Unit 1
- name: size
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 100
allowEmptyValue: true
allowReserved: true
- name: nextToken
in: query
schema:
type: string
allowEmptyValue: true
allowReserved: true
- name: sortBy
in: query
schema:
enum:
- id
- name
- physicalUnit
- dataType
- description
- longDescription
- workspace
- asset
- division
- unit
type: string
allowEmptyValue: true
allowReserved: true
- name: sortOrder
in: query
schema:
anyOf:
- const: asc
- const: desc
default: asc
allowEmptyValue: true
allowReserved: true
responses:
'200':
description: '`Signal` list'
content:
application/json:
schema:
type: object
properties:
size:
type: integer
minimum: 0
maximum: 9007199254740991
data:
type: array
items:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Signal`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Signal`'
examples:
- Signal 1
physicalUnit:
type: string
description: Physical unit of the `Signal`
examples:
- m/s
dataType:
anyOf:
- const: float
- const: boolean
- const: string
- const: json
description: '`Data type` of the `Signal`'
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Signal`'
examples:
- Signal description
longDescription:
anyOf:
- type: string
- type: 'null'
description: Long description of the `Signal`
examples:
- Signal description
workspace:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
required:
- id
- name
asset:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
required:
- id
- name
division:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Division`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Division`'
examples:
- Division 1
required:
- id
- name
unit:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Unit`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Unit`'
examples:
- Unit 1
required:
- id
- name
required:
- id
- name
- physicalUnit
- dataType
- description
- longDescription
- workspace
- asset
- division
- unit
additionalProperties: false
next:
type: object
properties:
token:
type: string
href:
type: string
format: uri
examples:
- https://api.apps.nor.tech/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units/{unit}/signals?nextToken=abc
required:
- token
- href
required:
- size
- data
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
const: Validation Error
details:
$schema: https://json-schema.org/draft/2020-12/schema
type: string
required:
- status
- details
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
const: Unauthorized
required:
- status
'404':
description: Not Found
content:
application/json:
schema:
oneOf:
- type: object
description: Workspace not found
properties:
status:
const: Workspace not found
required:
- status
- type: object
description: Asset not found
properties:
status:
const: Asset not found
required:
- status
- type: object
description: Division not found
properties:
status:
const: Division not found
required:
- status
- type: object
description: Unit not found
properties:
status:
const: Unit not found
required:
- status
/api/v1/workspaces/{workspace}/assets/{asset}/divisions/{division}/units/{unit}/signals/{signal}:
get:
operationId: v1.metadata.signal.getWorkspaceAssetDivisionUnitSignal
summary: Get Workspace Asset Division Unit Signal
description: Get a `Signal` in a `Workspace/Asset/Division/Unit` group by their `Names`.
tags:
- Signal
parameters:
- name: workspace
in: path
required: true
schema:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
- name: asset
in: path
required: true
schema:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
- name: division
in: path
required: true
schema:
type: string
description: '`Name` of the `Division`'
examples:
- Division 1
- name: unit
in: path
required: true
schema:
type: string
description: '`Name` of the `Unit`'
examples:
- Unit 1
- name: signal
in: path
required: true
schema:
type: string
description: '`Name` of the `Signal`'
examples:
- Signal 1
responses:
'200':
description: '`Signal` details'
content:
application/json:
schema:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Signal`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Signal`'
examples:
- Signal 1
createdAt:
type: string
format: date-time
x-native-type: date
description: '`Creation Date` of the `Signal`'
updatedAt:
type: string
format: date-time
x-native-type: date
description: '`Update Date` of the `Signal`'
physicalUnit:
type: string
description: Physical unit of the `Signal`
examples:
- m/s
dataType:
anyOf:
- const: float
- const: boolean
- const: string
- const: json
description: '`Data type` of the `Signal`'
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Signal`'
examples:
- Signal description
longDescription:
anyOf:
- type: string
- type: 'null'
description: Long description of the `Signal`
examples:
- Signal description
workspace:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
required:
- id
- name
asset:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
required:
- id
- name
division:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Division`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Division`'
examples:
- Division 1
required:
- id
- name
unit:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Unit`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Unit`'
examples:
- Unit 1
required:
- id
- name
required:
- id
- name
- createdAt
- updatedAt
- physicalUnit
- dataType
- description
- longDescription
- workspace
- asset
- division
- unit
additionalProperties: false
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
const: Validation Error
details:
$schema: https://json-schema.org/draft/2020-12/schema
type: string
required:
- status
- details
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
const: Unauthorized
required:
- status
'404':
description: Not Found
content:
application/json:
schema:
oneOf:
- type: object
description: Workspace not found
properties:
status:
const: Workspace not found
required:
- status
- type: object
description: Asset not found
properties:
status:
const: Asset not found
required:
- status
- type: object
description: Division not found
properties:
status:
const: Division not found
required:
- status
- type: object
description: Unit not found
properties:
status:
const: Unit not found
required:
- status
- type: object
description: Signal not found
properties:
status:
const: Signal not found
required:
- status
/api/v1/workspaces/{workspace}/signals:
get:
operationId: v1.metadata.signal.listWorkspaceSignals
summary: List Workspace Signals
description: List all `Signals` in a `Workspace` by its `IDs`.
tags:
- Signal
parameters:
- name: workspace
in: path
required: true
schema:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
- name: size
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 100
allowEmptyValue: true
allowReserved: true
- name: nextToken
in: query
schema:
type: string
allowEmptyValue: true
allowReserved: true
- name: sortBy
in: query
schema:
enum:
- id
- name
- physicalUnit
- dataType
- description
- longDescription
- workspace
- asset
- division
- unit
type: string
allowEmptyValue: true
allowReserved: true
- name: sortOrder
in: query
schema:
anyOf:
- const: asc
- const: desc
default: asc
allowEmptyValue: true
allowReserved: true
responses:
'200':
description: '`Signal` list'
content:
application/json:
schema:
type: object
properties:
size:
type: integer
minimum: 0
maximum: 9007199254740991
data:
type: array
items:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Signal`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Signal`'
examples:
- Signal 1
physicalUnit:
type: string
description: Physical unit of the `Signal`
examples:
- m/s
dataType:
anyOf:
- const: float
- const: boolean
- const: string
- const: json
description: '`Data type` of the `Signal`'
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Signal`'
examples:
- Signal description
longDescription:
anyOf:
- type: string
- type: 'null'
description: Long description of the `Signal`
examples:
- Signal description
workspace:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
required:
- id
- name
asset:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Asset`'
examples:
- Asset 1
required:
- id
- name
division:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Division`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Division`'
examples:
- Division 1
required:
- id
- name
unit:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Unit`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Unit`'
examples:
- Unit 1
required:
- id
- name
required:
- id
- name
- physicalUnit
- dataType
- description
- longDescription
- workspace
- asset
- division
- unit
additionalProperties: false
next:
type: object
properties:
token:
type: string
href:
type: string
format: uri
examples:
- https://api.apps.nor.tech/api/v1/workspaces/{workspace}/signals?nextToken=abc
required:
- token
- href
required:
- size
- data
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
const: Validation Error
details:
$schema: https://json-schema.org/draft/2020-12/schema
type: string
required:
- status
- details
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
const: Unauthorized
required:
- status
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Workspace not found
properties:
status:
const: Workspace not found
required:
- status
/api/v1/assets/{asset}/signals:
get:
operationId: v1.metadata.signal.listAssetSignals
summary: List Asset Signals
description: List all `Signals` in an `Asset` by its `IDs`.
tags:
- Signal
parameters:
- name: asset
in: path
required: true
schema:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Asset`'
examples:
- 10000
- name: size
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 100
allowEmptyValue: true
allowReserved: true
- name: nextToken
in: query
schema:
type: string
allowEmptyValue: true
allowReserved: true
- name: sortBy
in: query
schema:
enum:
- id
- name
- physicalUnit
- dataType
- description
- longDescription
- workspace
- asset
- division
- unit
type: string
allowEmptyValue: true
allowReserved: true
- name: sortOrder
in: query
schema:
anyOf:
- const: asc
- const: desc
default: asc
allowEmptyValue: true
allowReserved: true
responses:
'200':
description: '`Signal` list'
content:
application/json:
schema:
type: object
properties:
size:
type: integer
minimum: 0
maximum: 9007199254740991
data:
type: array
items:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Signal`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Signal`'
examples:
- Signal 1
physicalUnit:
type: string
description: Physical unit of the `Signal`
examples:
- m/s
dataType:
anyOf:
- const: float
- const: boolean
- const: string
- const: json
description: '`Data type` of the `Signal`'
description:
anyOf:
- type: string
- type: 'null'
description: '`Description` of the `Signal`'
examples:
- Signal description
longDescription:
anyOf:
- type: string
- type: 'null'
description: Long description of the `Signal`
examples:
- Signal description
workspace:
type: object
properties:
id:
type: integer
minimum: 1
maximum: 9007199254740991
description: '`ID` of the `Workspace`'
examples:
- 10000
name:
type: string
description: '`Name` of the `Workspace`'
examples:
- Workspace 1
required:
- id
- name
asset:
type: object
properties:
# --- truncated at 32 KB (102 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nortech/refs/heads/main/openapi/nortech-signal-api-openapi.yml