openapi: 3.1.0 info: title: PTC ThingWorx REST DataShapes Things 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: Things description: Thing (digital twin) management paths: /Things: get: operationId: listThings summary: List things description: Returns all things accessible to the authenticated user, with optional filtering. tags: - Things parameters: - name: maxItems in: query description: Maximum number of things to return schema: type: integer default: 500 maximum: 5000 - name: nameMask in: query description: Name filter using % as wildcard schema: type: string - name: tags in: query description: Tag-based filter schema: type: string responses: '200': description: Thing list content: application/json: schema: $ref: '#/components/schemas/InfoTable' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/ServerError' /Things/{thingName}: get: operationId: getThing summary: Get a thing description: Returns metadata and configuration for a specific thing (digital twin). tags: - Things parameters: - $ref: '#/components/parameters/ThingName' responses: '200': description: Thing metadata content: application/json: schema: $ref: '#/components/schemas/Thing' '404': $ref: '#/components/responses/NotFound' /Things/{thingName}/Services/{serviceName}: post: operationId: executeService summary: Execute a thing service description: Executes a service (method) on a thing and returns the result. tags: - Things parameters: - $ref: '#/components/parameters/ThingName' - name: serviceName in: path required: true description: Service name schema: type: string requestBody: description: Service input parameters as key-value pairs content: application/json: schema: type: object additionalProperties: true responses: '200': description: Service execution result content: application/json: schema: $ref: '#/components/schemas/ServiceResult' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' components: schemas: Thing: type: object description: A ThingWorx thing (digital twin instance) properties: name: type: string description: type: string thingTemplate: type: string description: Parent thing template name thingShape: type: string description: Applied thing shape name tags: type: array items: type: object properties: name: type: string vocabulary: type: string isEnabled: type: boolean isSystemObject: type: boolean lastModifiedDate: type: integer format: int64 description: Last modified timestamp (epoch milliseconds) identifier: type: string description: External device identifier projectName: type: string 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 ServiceResult: type: object description: ThingWorx service execution result properties: rows: type: array items: type: object additionalProperties: true dataShape: $ref: '#/components/schemas/DataShape' 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 responses: NotFound: description: Thing, property, or service not found content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication required or invalid content: application/json: schema: $ref: '#/components/schemas/Error' ServerError: description: Internal server or service execution error 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