Lytics Streams API
Get metrics and events for data streams in your Lytics account.
Get metrics and events for data streams in your Lytics account.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/lytics-streams-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
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