openapi: 3.2.0 info: contact: email: support@lytics.com name: Lytics Support url: https://support.lytics.com/hc/en-us description: Version 2 of the Lytics API termsOfService: https://www.lytics.com/terms-of-service/ title: Lytics Streams API version: '2.0' servers: - url: https://api.lytics.io/v2 tags: - description: Get metrics and events for data streams in your Lytics account. name: Streams paths: /stream: get: description: List all streams in the account parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: items: $ref: '#/components/schemas/models.StreamMetadata' type: array type: object description: Streams Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: List Streams tags: - Streams /stream/rule: get: description: List all stream rules in the account parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: items: $ref: '#/components/schemas/models.RouteRule' type: array type: object description: List of stream rules '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: List Stream rules tags: - Streams post: description: Create a stream rule parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/models.RouteRule' description: Stream rule Request required: true x-originalParamName: rule responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.RouteRule' type: object description: Stream rule '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Create stream rule tags: - Streams /stream/rule/{id}: delete: description: Delete stream rule by id parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: Stream rule id in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.RouteRule' type: object description: Stream rule response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Delete stream rule tags: - Streams get: description: Get stream rule by id parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: Stream rule id in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.RouteRule' type: object description: Stream rule response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Get Stream rule tags: - Streams post: description: Update a stream rule parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: Stream rule id to update in: path name: id required: true schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/models.RouteRule' description: Stream rule request required: true x-originalParamName: rule responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.RouteRule' type: object description: Stream rule response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Update stream rule tags: - Streams put: description: Update a stream rule parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: Stream rule id to update in: path name: id required: true schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/models.RouteRule' description: Stream rule request required: true x-originalParamName: rule responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.RouteRule' type: object description: Stream rule response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Update stream rule tags: - Streams /stream/{name}: get: description: Get stream by name parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The Stream Name in: path name: name required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.StreamMetadata' type: object description: Stream Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Get Stream tags: - Streams /stream/{name}/events: get: description: Get a list of recent events in the stream parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The Stream Name in: path name: name required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: items: $ref: '#/components/schemas/models.StreamEvent' type: array type: object description: Stream Events Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Get Stream Events tags: - Streams /stream/{name}/stats: get: description: Get stats for all fields in the stream parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The Stream Name in: path name: name required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: items: $ref: '#/components/schemas/models.DataField' type: array type: object description: Stream Stats Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Get Stream Stats tags: - Streams components: schemas: models.ApiErrorResponse: properties: errors: description: Lytics API Errors items: $ref: '#/components/schemas/lioerrors.ApiV2ErrorOut' type: array request_id: type: string status: description: HTTP Status Code type: integer type: object models.RuleCheckConfigReq: properties: allowable_violations: type: integer interval: type: string lookback_count: type: integer max_threshold: type: integer metric_type: type: string min_threshold: type: integer type: type: string variance_pct: type: number type: object models.StreamMetadata: properties: account_id: type: string aid: type: integer anomaly_rule: $ref: '#/components/schemas/models.AnomalyRuleResp' avg_event_size: description: Average size of each message in bytes type: integer channel: type: string count: description: Current count of messages this stream has seen type: integer created: format: date-time type: string description: type: string hidden: type: boolean id: type: string internal: type: boolean jobs: description: Job IDs that have contributed data to the stream items: type: string type: array label: type: string last_msg_ts: format: date-time type: string last_received_ts: format: date-time type: string last_update_ts: format: date-time type: string method: type: string name: type: string providers: items: type: string type: array slug: type: string tables: items: type: string type: array updated: format: date-time type: string type: object models.Column: properties: as: type: string table: type: string type: object models.StreamEvent: additionalProperties: true type: object lioerrors.ApiV2ErrorOut: properties: code: description: Lytics Error Code enum: - UNKNOWN-000 - BADREQ-001 - JOB-BADREQ-002 - NOTFOUND-003 - JOB-NOTFOUND-004 - WF-NOTFOUND-005 - AUTH-NOTFOUND-006 - AUTHTYPE-NOTFOUND-007 - AUTH-BADREQ-008 - TABLE-NOTFOUND-009 - SCHEMA-NOTFOUND-010 - SCHEMAVERSION-NOTFOUND-011 - ENTITY-NOTFOUND-012 - QUERY-NOTFOUND-013 - STREAM-NOTFOUND-014 - PROVIDER-BADREQ-015 - PROVIDER-NOTFOUND-016 - UNAUTHORIZED-017 - SCHEMA-INVALID-018 - INTERNAL-019 - ROUTERULE-NOTFOUND-020 - ACCOUNT-NOTFOUND-021 - JOB-FAULT-022 - USER-NOTFOUND-023 - USER-BADREQ-024 - JSON-BADREQ-025 - FORBIDDEN-026 type: string level: description: When the error was generated type: string message: description: A description of the error that occurred type: string timestamp: description: The time the error occurred format: date-time type: string type: object models.ApiResponse: properties: _meta: additionalProperties: true description: Response Metadata type: object data: description: Response Payload type: object request_id: type: string status: description: HTTP Status Code type: integer type: object models.DataField: properties: avg: type: integer card: type: integer columns: items: $ref: '#/components/schemas/models.Column' type: array first_seen: format: date-time type: string hidden: type: boolean is_array: type: boolean last_seen: type: string name: type: string sample: description: Sample values for the field items: type: string type: array sumlen: description: Length of string values in bytes type: integer type: type: string usage: description: The number of times this field has been seen type: integer type: object models.AnomalyRuleResp: properties: aid: type: integer checks: items: $ref: '#/components/schemas/models.RuleCheckConfigReq' type: array created: type: string id: type: string subject_id: type: string subject_type: type: string updated: type: string type: object models.RouteRule: properties: account_id: type: string active: type: boolean aid: type: integer created: type: string expression: description: qlbridge expression type: string id: type: string input: type: string modified: type: string name: type: string output: type: string priority: type: integer type: object securitySchemes: ApiKeyAuth: in: header name: Authorization type: apiKey