Skip to main content

Data types and limits

Data types​

Besides the standard GraphQL types, the API uses three scalars:

ScalarJSON representation
timestamptzISO 8601 timestamp string with a time zone offset, for example 2026-10-13T14:02:11.52+00:00.
numericA JSON number.
jsonbAny JSON value. Used for the raw tool payload (formattedValue) and the trace curve (allValues).

A trace's allValues is an object with two arrays of equal length, sampled along the tightening curve:

{ "angle": [0, 1, 2, 3], "torque": [0, 10, 18, 25] }

Limits and good practice​

  • The API is read-only. It has queries only: no mutations or subscriptions.
  • Requests time out after 30 seconds. Page through large result sets with limit, offset, and a stable orderBy (see Example queries), and request traces / allValues only when you need the curves.
  • Column names in distinctOn use snake case. The TorqueResultSelectColumn and TorqueTraceSelectColumn values (for example created_at, serial_number) are column names, not the camelCase field names used everywhere else.
  • Errors come back in the standard GraphQL errors array. Invalid queries return a descriptive message; unexpected server errors return a generic message.

Schema​

The full schema is in the Reference section. You can also download it as GraphQL SDL to load into your GraphQL tooling or generate a typed client.