openapi: 3.0.1 info: title: Quix Cloud HTTP APIs Definitions Parameter Data API description: 'OpenAPI 3.0 description of the HTTP (REST) surfaces of Quix Cloud: the Streaming Writer API for publishing time-series parameter data, events, and definitions into Quix topics, and the account-wide Portal API for managing workspaces, topics, and deployments. The Streaming Reader API is delivered exclusively over a Microsoft SignalR hub (WebSockets / Long Polling) and is therefore modeled separately in the companion AsyncAPI document at asyncapi/quix-asyncapi.yml, not here. All endpoints authenticate with a Quix Personal Access Token (PAT) supplied as an `Authorization: Bearer ` header. The Streaming Writer API base host is environment-specific (`writer-{environmentId}.cloud.quix.io`); the Portal API is account-wide (`portal-api.platform.quix.io`). Endpoint paths are documented by Quix; per-environment Swagger/OpenAPI references are available from the Quix portal under Settings > APIs and tokens.' termsOfService: https://quix.io/terms/ contact: name: Quix Support url: https://quix.io/contact/ license: name: API documentation - Quix Terms url: https://quix.io/terms/ version: '1.0' servers: - url: https://writer-{environmentId}.cloud.quix.io description: Streaming Writer API. Environment-specific host; `{environmentId}` is the URL-friendly combination of organization, project, and environment names (e.g. `myorg-myproject-production`). variables: environmentId: default: myorg-myproject-production description: Quix environment (workspace) identifier. - url: https://portal-api.platform.quix.io description: Portal API. Account-wide management host. The subdomain segment may differ per Quix deployment; copy the exact Portal API base from the Quix portal (Settings > APIs and tokens). tags: - name: Parameter Data description: Publish time-series parameter data into a stream (Streaming Writer API). paths: /topics/{topicName}/streams/{streamId}/parameters/data: post: operationId: sendParameterData tags: - Parameter Data summary: Send parameter data description: Publishes one or more time-series parameter samples to a stream. The payload carries an array of nanosecond `timestamps` plus values keyed by parameter name under `numericValues`, `stringValues`, and/or `binaryValues`. Publishing to a non-existent `streamId` implicitly creates the stream. servers: - url: https://writer-{environmentId}.cloud.quix.io variables: environmentId: default: myorg-myproject-production parameters: - $ref: '#/components/parameters/TopicName' - $ref: '#/components/parameters/StreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ParameterDataRequest' responses: '200': description: Data accepted. '401': $ref: '#/components/responses/Unauthorized' security: - bearerAuth: [] components: responses: Unauthorized: description: Authentication failed - the bearer token is missing, malformed, or expired. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: TopicName: name: topicName in: path required: true description: The name of the topic the stream belongs to. schema: type: string StreamId: name: streamId in: path required: true description: The unique identifier of the stream. Publishing to an id that does not exist creates the stream implicitly. schema: type: string schemas: ParameterDataRequest: type: object required: - timestamps description: Time-series parameter samples. `timestamps` holds one nanosecond epoch value per sample; each value object is keyed by parameter name and each array aligns positionally with `timestamps`. properties: timestamps: type: array items: type: integer format: int64 description: Nanosecond epoch timestamps, one per sample. numericValues: type: object additionalProperties: type: array items: type: number description: Numeric parameter values keyed by parameter name. stringValues: type: object additionalProperties: type: array items: type: string description: String parameter values keyed by parameter name. binaryValues: type: object additionalProperties: type: array items: type: string format: byte description: Base64-encoded binary parameter values keyed by parameter name. tagValues: type: object additionalProperties: type: array items: type: string description: Tag values keyed by tag name, aligned with timestamps. example: timestamps: - 1591733989000000000 - 1591733990000000000 - 1591733991000000000 numericValues: SomeParameter1: - 10.01 - 202.02 - 303.03 SomeParameter2: - 400.04 - 50.05 - 60.06 Error: type: object properties: status: type: integer title: type: string detail: type: string securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: PAT description: 'Quix Personal Access Token (PAT) presented as `Authorization: Bearer `. Generate from the Quix portal under your profile > Personal Access Tokens, or Settings > APIs and tokens.'