Overview
Proficy Historian (GE Vernova, formerly GE Digital) stores plant time-series data. Its Historian REST API is installed with the Historian web-based clients and lives underhttps://<host>/historian-rest-api/v1/. Calls carry an OAuth2 bearer token issued by Proficy Authentication (UAA) on the same host at /uaa/oauth/token.
The ProficyHistorian connector covers the token request, server and system status, tag management, every read mode (current value, raw, interpolated, calculated, sampled) and writing samples with datapoints/create. Each event publishes the server’s reply on <topic>/response.
Prerequisites
- Proficy Historian 8.x, 9.x, 2022, 2023 or 2024 (Windows) with the web-based clients installed. That install adds the Historian REST API and Proficy Authentication. The broker host must reach the web-based clients node on HTTPS port 443. Historian 7.x used port 8443 for both the REST API and UAA.
- A Proficy Authentication client (client ID and secret) for the
client_credentialsgrant, or a Historian web user plus thehistorian_public_rest_apiclient for the password grant. Writes (datapoints/create, tag add / update / delete) need the REST API administrator or a user with write permission. - The certificate of the web-based clients node, trusted on the broker host. The default install uses a self-signed certificate.
- Store the client credentials in a Hub secret, for example
PROFICY_HISTORIAN_CLIENTholdingBasic <base64 of client_id:client_secret>.
Authentication
- Publish
{ "authorization": "Basic <base64 of client_id:client_secret>" }tohistorian/proficy-historian/token/create. The response carriesaccess_token,token_typebearerandexpires_in(seconds). - Send
"authorization": "Bearer <access_token>"with every other event. Request a new token beforeexpires_inruns out.
historian/proficy-historian/user-token/create uses the password grant: client_id (historian_public_rest_api), client_secret (set during install), username (default <machinename>.admin) and password go in the payload. It sends no Authorization header.
Configuration
- Replace
YOUR_HISTORIAN_HOSTinBASE_ADDRESSwith the web-based clients node. For Historian 7.x usehttps://<host>:8443. - Tag names go into the URL as given. URL-encode special characters (
#becomes%23). Separate several tags intagNameswith;. - Timestamps are ISO 8601 UTC, for example
2026-10-05T07:00:00.000Z. - Responses are JSON
{ "ErrorCode": 0, "ErrorMessage": null, "Data": ... }. CheckErrorCodeas well as the HTTP status.ErrorCode14on the tag list means more tags exist thanmaxNumber. - The server also serves Swagger UI at
https://<host>/historian-rest-api/swagger-ui.htmlfor the exact API of your version.
Examples
Get the current value of two tags:count 0 reads by time; a positive count reads that many samples; direction 0 is forward):
calculationMode 1 is Average):
Quality 3 is Good):
Name and DataType are required):
Testing
Technical preview, not yet live-tested. The app package’s smoke script checks every event against GE Vernova’s Historian 2024 REST API documentation (static) and runs every event against a local mock Historian (Proficy Authentication token endpoint with client credentials and password grant, bearer-protected REST API, tag add / update / delete and write → current value read-back), plus negative controls (no token, bad client secret, bad user password, expired token401; unknown tag ErrorCode; bad timestamp 400; write without write permission 403). A run against a real Proficy Historian server and a broker MQTT round-trip are still open. See TEST.md in the app package.
Not covered
- POST variants of the read APIs (tagNames in the body), trend data (
datapoints/trend), tag rename, add many tags (tags/addtags) and data store / collection settings. Use the same URL pattern with your own event if you need them. - Systems administration (machines, mirror groups, storages, DHS services, performance counters), Historian model, collectors and collector instances, data stores, and alarms and events.
- Proficy Operations Hub, the Historian Web Admin console, the Historian SDK / User API / OLE DB provider, and Historian collectors (including the MQTT collector, which can ingest from this broker directly).

