OpenAPI Specification
openapi: 3.1.0
info:
title: PTC ThingWorx REST DataShapes Properties API
description: PTC ThingWorx REST API provides programmatic access to the ThingWorx IoT platform including thing management, property read/write, service execution, event subscription, and mashup data APIs using Application Key or OAuth authentication. ThingWorx is PTC's industrial IoT platform for digital twin and connected factory applications.
version: 9.5.0
contact:
name: PTC Support
url: https://www.ptc.com/en/support
license:
name: PTC Software License
url: https://www.ptc.com/en/legal-agreements
servers:
- url: https://{host}/Thingworx
description: ThingWorx REST API
variables:
host:
default: thingworx.example.com
description: ThingWorx server hostname
security:
- appKey: []
- oauth2: []
tags:
- name: Properties
description: Thing property read/write
paths:
/Things/{thingName}/Properties:
get:
operationId: getThingProperties
summary: Get all thing properties
description: Returns the current values of all properties for a thing.
tags:
- Properties
parameters:
- $ref: '#/components/parameters/ThingName'
responses:
'200':
description: Property values
content:
application/json:
schema:
$ref: '#/components/schemas/InfoTable'
'404':
$ref: '#/components/responses/NotFound'
/Things/{thingName}/Properties/{propertyName}:
get:
operationId: getThingProperty
summary: Get a thing property
description: Returns the current value of a specific thing property.
tags:
- Properties
parameters:
- $ref: '#/components/parameters/ThingName'
- $ref: '#/components/parameters/PropertyName'
responses:
'200':
description: Property value
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyValue'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: setThingProperty
summary: Set a thing property
description: Sets the value of a writable property on a thing.
tags:
- Properties
parameters:
- $ref: '#/components/parameters/ThingName'
- $ref: '#/components/parameters/PropertyName'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PropertySetRequest'
responses:
'200':
description: Property updated
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
PropertySetRequest:
type: object
description: Request body for setting a property value
properties:
value:
description: New property value (type must match property base type)
PropertyValue:
type: object
description: A thing property current value
properties:
rows:
type: array
items:
type: object
properties:
value:
description: The property value (type depends on base type)
timestamp:
type: integer
format: int64
description: Value timestamp (epoch milliseconds)
quality:
type: string
description: Quality string (GOOD, BAD, etc.)
FieldDefinition:
type: object
properties:
name:
type: string
description:
type: string
baseType:
type: string
enum:
- STRING
- INTEGER
- LONG
- NUMBER
- BOOLEAN
- DATETIME
- JSON
- INFOTABLE
- THINGNAME
- LOCATION
ordinal:
type: integer
isPrimaryKey:
type: boolean
Error:
type: object
properties:
Message:
type: string
Thread:
type: string
Code:
type: integer
DataShape:
type: object
description: A ThingWorx data shape definition
properties:
name:
type: string
description:
type: string
fieldDefinitions:
type: object
additionalProperties:
$ref: '#/components/schemas/FieldDefinition'
InfoTable:
type: object
description: ThingWorx InfoTable - the universal tabular data container
properties:
dataShape:
$ref: '#/components/schemas/DataShape'
rows:
type: array
items:
type: object
additionalProperties: true
parameters:
ThingName:
name: thingName
in: path
required: true
description: ThingWorx thing name
schema:
type: string
PropertyName:
name: propertyName
in: path
required: true
description: ThingWorx property name
schema:
type: string
responses:
NotFound:
description: Thing, property, or service not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Invalid request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
appKey:
type: apiKey
in: header
name: appKey
description: ThingWorx Application Key for authentication
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://thingworx.example.com/oauth/authorize
tokenUrl: https://thingworx.example.com/oauth/token
scopes:
THINGWORX: Access ThingWorx REST API