Endpoints

The resources and endpoints of the THMI public API — projects, tags, values, history, and pages.

All endpoints are under /api/v1 and authenticated with a bearer access token. Paths shown with {projectId} are scoped to one project; {format} is json or csv. For the authoritative, machine-readable definition, use the OpenAPI specification.

Projects

MethodPathReturns
GET/v1/projects/listThe projects the token can access.
GET/v1/{projectId}/projectA single project’s details.

Tags

A tag’s definition and metadata (not its value).

MethodPathReturns
GET/v1/{projectId}/tag/listAll tags in the project.
GET/v1/{projectId}/tag/by-id/{tagId}One tag, by id.
GET/v1/{projectId}/tag/by-path?tagPath=…One tag, by its path.

Tag values

The current value of tags.

MethodPathReturns
GET/v1/{projectId}/tag/values/listThe current value of every tag.
GET/v1/{projectId}/tag/values/by-id/{tagId}One tag’s current value, by id.
GET/v1/{projectId}/tag/values/by-path?tagPath=…One tag’s current value, by path.
POST/v1/{projectId}/tag/values/export/csvThe current values as a CSV export.

History

Aggregated historical values over a time range. The request body carries the query — the time range (timeFrom, timeTo, in epoch milliseconds), the timeZone, which tags (tagList), the groupingType (MINUTES · HOURS · DAYS · MONTHS · YEARS), and the valueType (ACTUAL or DELTA). See Using the API for the full body and an example.

MethodPathReturns
POST/v1/{projectId}/history/aggregate/{format}Aggregated history, as JSON or CSV.
POST/v1/{projectId}/history/aggregate/by-id/{format}The same, selecting tags by id.
POST/v1/{projectId}/history/aggregate/by-path/{format}The same, selecting tags by path.
GET/v1/{projectId}/history/snapshotA snapshot of values at a point in time.

Pages

A project’s pages, rendered as SVG.

MethodPathReturns
GET/v1/{projectId}/page/treeThe page folder hierarchy.
GET/v1/{projectId}/page/{fileId}A page as an SVG document.
GET/v1/{projectId}/page/{fileId}/streamThe same page, streamed.

Time zones

MethodPathReturns
GET/v1/timezone/availableThe time-zone identifiers the API accepts.