openapi: 3.0.3 info: title: Knowi Push Data API summary: Push and pull real-time data into Knowi datasets. description: >- The Knowi Push Data API enables real-time data ingestion to and retrieval from Knowi datasets. Send data via HTTP POST to create or update datasets on the fly, and pull data with SQL-like filters for export. API key authentication is used for all requests. version: '1.0' contact: name: Knowi Support url: https://www.knowi.com/support email: support@knowi.com servers: - url: https://www.knowi.com description: Knowi Push Data API production server tags: - name: Push description: Send data to Knowi datasets in real time. - name: Pull description: Retrieve dataset contents. paths: /live/{identifier}: post: tags: - Push summary: Push data to dataset description: >- Send real-time data to a Knowi dataset. If the named entity does not exist, a new dataset is created. Optional override strategies allow replacing the entire dataset or replacing values keyed by specific fields. operationId: pushData parameters: - name: identifier in: path required: true schema: type: string description: Dataset identifier (API key associated with the target dataset). requestBody: required: true content: application/json: schema: type: object required: - entity - data properties: entity: type: string description: Dataset name. Created automatically if it does not exist. data: type: array description: Records to insert as objects of key-value pairs. items: type: object override: type: object description: Override strategy controlling how incoming data is merged. properties: replaceAll: type: boolean description: Replace the entire dataset with the incoming data. replaceValuesForKey: type: array description: Replace records matching the listed key fields. items: type: string responses: '200': description: Data accepted. '400': description: Invalid payload. '401': description: Invalid API key. /api/data/{apiKey}: get: tags: - Pull summary: Pull dataset description: Retrieve records from a Knowi dataset, optionally filtered and exported in a chosen format. operationId: pullData parameters: - name: apiKey in: path required: true schema: type: string description: API key associated with the target dataset. - name: entityName in: query schema: type: string description: Dataset name. - name: identifier in: query schema: type: string description: Dataset ID. - name: exportFormat in: query schema: type: string enum: - csv - json description: Output format for the response payload. - name: c9SqlFilter in: query schema: type: string description: SQL WHERE clause used to filter the records returned. - name: limit in: query schema: type: integer description: Maximum number of records to return. - name: optimized in: query schema: type: boolean description: When true, returns an optimized response format. responses: '200': description: Dataset records returned. '401': description: Invalid API key. components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key security: - ApiKeyAuth: []