Legacy REST API for reading and writing tag values over HTTP. Deprecated — new integrations should use the Runtime REST API.
Reference → Code → Extensions API → Connector | WebAccess API Reference
Deprecated — use the Runtime REST API
The WebAccess API (the /rtServices/api/ surface documented on this page) is deprecated as of FrameworX 10.1.5. It remains supported for existing integrations and continues to ship, but it will not gain new capabilities.
New integrations should use the Runtime REST API — the versioned /api/v1/… data-plane API on the same TServer port. It adds aggregated history, alarms, Object Model browse, UserTypes, RFC 7807 errors, and a published OpenAPI 3.1 contract. The Runtime REST API Reference includes a migration table mapping each legacy verb below to its /api/v1/ equivalent.
We provide an API via Web-Service that can read and write tag values. To access the tags, a login is required for solution users. You can directly access this API through HTTP (REST API) connecting with a runtime system.
This page presents information about how to use the WebAccess REST API.
Where This API Fits in the Runtime API Landscape
This page documents the legacy /rtServices/api/ surface exposed by the runtime web server on port 3101. It remains supported for existing integrations and continues to ship with FrameworX 10.1.5, but it is deprecated for new work.
Starting with 10.1.5, FrameworX also exposes a versioned Runtime REST API v1.0 on the same TServer port (3101+) covering tag read/write, alarm history, aggregated history, and other runtime surfaces under versioned endpoints with Bearer authentication. The v1.0 surface is documented in the Runtime REST API Reference. For machine-wide management (solution lifecycle, licensing, files) see the SolutionCenter API Reference on port 10108.
Companion health endpoints are published on the same port:
/health— liveness and runtime status./ready— readiness for traffic (modules loaded, datasets connected).
When choosing between surfaces: use the legacy verbs below only to maintain existing clients; use the Runtime REST API for all new integrations.
Contract Methods Using REST API
SetServer
Defines the Server for following requests.
Method: GET
URL Example: http://localhost:3101/rtServices/api/SetServer
Request/Headers
. Content-Type: application/json
. Request/Body
. { "ModuleName": "Test", "UserName": "guest", "Password": "" }
Response/Headers
. Access-Control-Allow-Origin: *
. Access-Control-Allow-Headers: Content-Type, Content-Length, Authorization
. Access-Control-Expose-Headers: Content-Type, Content-Length, Authorization
. Access-Control-Allow-Methods: *
. Content-Length: 0
. Content-Type: application/octet-stream
. Access-Control-Max-Age: 1728000
. Authorization: Bearer c30730a4-e2ee-4595-9131-d64769c5afbe
. Date: Tue, 28 Nov 2023 13:47:35 GMT
. Server: TServer WebServer
. Response/Body
. Nothing
ReadObject
Reads value from specified object.
Method: GET
URL Example: http://localhost:3101/rtServices/api/SyncObjects/ReadObject
Request/Headers
. Content-Type: application/json
. Authorization: Bearer c30730a4-e2ee-4595-9131-d64769c5afbe
. content-length: 25
. Ex: .../api/SyncObjects/ReadObject?ObjectName=Tag1
Response/Headers
. Content-Length: 89
. Content-Type: application/json
. Content-Encoding: utf8
. Date: Tue, 28 Nov 2023 13:56:03 GMT
. Server: TServer WebServer
. Response/Body
. { "ObjectName":"Tag1","Value":11,"Quality":192,"UtcTimeStamp":"11/28/2023 1:49:28.000 PM" }
ReadObjects
Reads value from multiple specified objects.
Method: GET
URL Example: http://localhost:3101/rtServices/api/SyncObjects/ReadObjects
Request/Headers
. Content-Type: application/json
. Authorization: Bearer c30730a4-e2ee-4595-9131-d64769c5afbe
. content-length: 25
. Request/Body
. { "ObjectNames": [ "Tag1", "Server.Now" ] }
Response/Headers
. Content-Length: 89
. Content-Type: application/json
. Content-Encoding: utf8
. Date: Tue, 28 Nov 2023 13:56:03 GMT
. Server: TServer WebServer
. Response/Body
. [ {"ObjectName":"Tag1","Value":11,"Quality":192,"UtcTimeStamp":"11/28/2023 10:47:50.581 AM"},{"ObjectName":"Server.Now","Value":"11/28/2023 1:48:26.003 PM"} ]
WriteObject
Write value to a specified object. You can only write values to objects that have their Visibility property set to Public.
Method: POST
URL Example:http://localhost:3101/rtServices/api/SyncObjects/WriteObject
Request/Headers
. Content-Type: application/json
. Authorization: Bearer c30730a4-e2ee-4595-9131-d64769c5afbe
. content-length: 25
. Request/Body
. { "ObjectName" : "Tag1", "Value" : 11, "Quality": 192, "UtcTimestamp": "2023-11-28T10:18:22.260Z" }
Response/Headers
. Content-Length: 89
. Content-Type: application/json
. Content-Encoding: utf8
. Date: Tue, 28 Nov 2023 13:56:03 GMT
. Server: TServer WebServer
. Response/Body
. true
WriteObjects
Write value to specified objects. You can only write values to objects that have their Visibility property set to Public.
Method: POST
URL Example:http://localhost:3101/rtServices/api/SyncObjects/WriteObjects
Request/Headers
. Content-Type: application/json
. Authorization: Bearer c30730a4-e2ee-4595-9131-d64769c5afbe
. content-length: 25
. Request/Body
. { "ObjectList": [ {"ObjectName": "Tag1", "Value": 11 }, { "ObjectName": "Tag2", "Value": 2, "Quality": 192, "UtcTimeStamp": "2023-11-28T10:18:22.260Z" } ] }
Response/Headers . Content-Length: 89 . Content-Type: application/json . Content-Encoding: utf8 . Date: Tue, 28 Nov 2023 13:56:03 GMT . Server: TServer WebServer . Response/Body . [true,true]
In this section...