Download OpenAPI specification:
Access streaming transcript data through our powerful API.
Returns all alerts for the authenticated user
| page | integer >= 1 Default: 1 Page number for pagination |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "alerts": [
- {
- "id": "alert_123",
- "name": "Product Mentions",
- "phrases": [
- "our product",
- "competitor",
- "pricing"
], - "is_active": true,
- "created_at": "2024-01-15T10:30:00Z",
- "updated_at": "2024-01-15T10:30:00Z"
}
], - "pagination": {
- "page": 1,
- "page_size": 20,
- "total_items": 45,
- "total_pages": 3
}
}Create a new alert to monitor streaming transcripts
| name required | string [ 1 .. 100 ] characters Name for the alert |
| phrases required | Array of strings [ 1 .. 50 ] items [ items [ 1 .. 200 ] characters ] List of phrases to monitor |
| is_active | boolean Default: true Whether the alert is active |
{- "name": "Product Mentions",
- "phrases": [
- "our product",
- "competitor",
- "pricing"
], - "is_active": true
}{- "id": "alert_456",
- "name": "Product Mentions",
- "phrases": [
- "our product",
- "competitor",
- "pricing"
], - "is_active": true,
- "created_at": "2024-01-15T14:30:00Z",
- "updated_at": "2024-01-15T14:30:00Z"
}Retrieve a specific alert by its ID
| alertId required | string^alert_[a-zA-Z0-9]+$ The alert ID |
{- "id": "string",
- "name": "string",
- "phrases": [
- "string"
], - "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Update an existing alert's configuration
| alertId required | string^alert_[a-zA-Z0-9]+$ The alert ID |
| name | string [ 1 .. 100 ] characters Name for the alert |
| phrases | Array of strings [ 1 .. 50 ] items [ items [ 1 .. 200 ] characters ] List of phrases to monitor |
| is_active | boolean Whether the alert is active |
{- "name": "Updated Alert Name",
- "phrases": [
- "new phrase",
- "another phrase"
], - "is_active": true
}{- "id": "string",
- "name": "string",
- "phrases": [
- "string"
], - "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Get notifications for a specific alert when it has been triggered
| alertId required | string^alert_[a-zA-Z0-9]+$ The alert ID |
| page | integer >= 1 Default: 1 Page number for pagination |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "notifications": [
- {
- "id": "notif_789",
- "alert_id": "alert_123",
- "alert_name": "Product Mentions",
- "matched_phrase": "our product",
- "context": "...discussing our product features...",
- "stream_source": "YouTube",
- "stream_title": "Tech Review Live",
- "timestamp": "2024-01-15T12:45:30Z",
}
], - "pagination": {
- "page": 1,
- "page_size": 20,
- "total_items": 150,
- "total_pages": 8
}
}Configure a webhook URL to receive notifications when an alert is triggered
| alertId required | string^alert_[a-zA-Z0-9]+$ The alert ID |
| url required | string <uri> <= 2048 characters The webhook URL to call when alert is triggered |
| secret | string <= 255 characters Optional secret for webhook signature verification |
| is_active | boolean Default: true Whether the webhook is active |
| include_full_transcript | boolean Default: false Whether to include the full transcript in webhook payloads (costs 1 API request per delivery) |
{- "secret": "your-secret-key",
- "is_active": true,
- "include_full_transcript": false
}{- "id": "string",
- "alert_id": "string",
- "secret": "string",
- "is_active": true,
- "include_full_transcript": false,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Retrieve the webhook configuration for a specific alert
| alertId required | string^alert_[a-zA-Z0-9]+$ The alert ID |
{- "id": "string",
- "alert_id": "string",
- "secret": "string",
- "is_active": true,
- "include_full_transcript": false,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Update the webhook configuration for an alert
| alertId required | string^alert_[a-zA-Z0-9]+$ The alert ID |
| url required | string <uri> <= 2048 characters The webhook URL |
| secret | string <= 255 characters Optional secret for webhook signature verification |
| is_active required | boolean Whether the webhook is active |
| include_full_transcript required | boolean Whether to include the full transcript in webhook payloads (costs 1 API request per delivery) |
{- "secret": "updated-secret-key",
- "is_active": true,
- "include_full_transcript": true
}{- "id": "string",
- "alert_id": "string",
- "secret": "string",
- "is_active": true,
- "include_full_transcript": false,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Remove the webhook configuration from an alert
| alertId required | string^alert_[a-zA-Z0-9]+$ The alert ID |
{- "error": {
- "code": "unauthorized",
- "message": "Invalid or missing API token"
}
}Send a test webhook notification to verify webhook configuration. Can either test a saved webhook configuration or test a custom webhook URL/secret provided in the request body. The test will send a mock notification with sample data to the webhook URL.
| alertId required | string^alert_[a-zA-Z0-9]+$ The alert ID |
Optional webhook configuration to test. If not provided, uses the saved webhook for this alert. Use this to test a webhook URL before saving it.
| url | string <uri> <= 2048 characters Webhook URL to test |
| secret | string <= 255 characters Optional secret for signature verification |
| include_full_transcript | boolean Default: false Whether to include full transcript in test payload |
{- "secret": "test-secret-key",
- "include_full_transcript": true
}{- "message": "Test webhook delivered successfully"
}Returns a paginated list of streams. Can be filtered by streamer_id.
| page | integer >= 1 Default: 1 Page number for pagination |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
| streamer_id | string^[a-zA-Z0-9]+$ Filter streams by streamer ID |
{- "streams": [
- {
- "id": "stream_abc123",
- "streamer_id": "streamer_xyz789",
- "twitch_id": "12345678",
- "title": "Just Chatting - Q&A Session",
- "vod_id": "87654321",
- "started_at": "2024-01-15T10:00:00Z",
- "duration_seconds": 7200,
- "created_at": "2024-01-15T10:00:00Z"
}
], - "pagination": {
- "page": 1,
- "page_size": 20,
- "total_items": 150,
- "total_pages": 8
}
}Search for streams by keywords or phrases in their transcripts. Supports quoted phrases for exact matches.
| q required | string non-empty Search query - supports individual words and "quoted phrases" |
| page | integer >= 1 Default: 1 Page number for pagination |
| page_size | integer [ 1 .. 20 ] Default: 20 Number of items per page |
| time_range | string Default: "today" Enum: "today" "week" "month" Time range for search results |
{- "results": [
- {
- "stream_id": "stream_abc123",
- "streamer_id": "streamer_xyz789",
- "title": "Just Chatting - Q&A Session",
- "user_display_name": "ExampleStreamer",
- "highlights": [
- "discussing <em>our product</em> features",
- "comparing with <em>competitor</em> solutions"
], - "created_at": "2024-01-15T10:00:00Z"
}
], - "pagination": {
- "page": 1,
- "page_size": 20,
- "total_items": 42,
- "total_pages": 3
}
}Retrieve detailed information about a specific stream
| streamId required | string^[a-zA-Z0-9]+$ The stream ID |
{- "stream": {
- "id": "stream_abc123",
- "streamer_id": "streamer_xyz789",
- "twitch_id": "12345678",
- "title": "Just Chatting - Q&A Session",
- "vod_id": "87654321",
- "started_at": "2024-01-15T10:00:00Z",
- "duration_seconds": 7200,
- "created_at": "2024-01-15T10:00:00Z"
}
}Retrieve the full transcript segments for a specific stream
| streamId required | string^[a-zA-Z0-9]+$ The stream ID |
{- "segments": [
- {
- "start": 0,
- "end": 3.5,
- "text": "Hey everyone, welcome to the stream!"
}, - {
- "start": 3.5,
- "end": 8.2,
- "text": "Today we're going to be discussing some exciting new features."
}, - {
- "start": 8.2,
- "end": 12,
- "text": "Let me know in chat what you'd like to see."
}
]
}Retrieve detailed information about a specific streamer
| streamerId required | string^[a-zA-Z0-9]+$ The streamer ID |
{- "id": "streamer_xyz789",
- "twitch_id": "123456789",
- "login": "examplestreamer",
- "display_name": "ExampleStreamer",
- "type": "live",
- "broadcaster_type": "partner",
- "description": "Just your friendly neighborhood streamer",
- "view_count": 1234567,
- "followers": 50000,
- "created_at": "2020-01-15T10:00:00Z",
- "fetched_at": "2024-01-15T14:30:00Z"
}Search for streamers by username or display name. Supports fuzzy matching and full-text search.
| q required | string >= 3 characters Search query (minimum 3 characters) |
| page | integer >= 1 Default: 1 Page number for pagination |
| page_size | integer [ 1 .. 50 ] Default: 20 Number of items per page |
{- "streamers": [
- {
- "id": "streamer_xyz789",
- "twitch_id": "123456789",
- "login": "examplestreamer",
- "display_name": "ExampleStreamer",
- "type": "live",
- "broadcaster_type": "partner",
- "description": "Just your friendly neighborhood streamer",
- "view_count": 1234567,
- "followers": 50000,
- "created_at": "2020-01-15T10:00:00Z",
- "fetched_at": "2024-01-15T14:30:00Z"
}
], - "pagination": {
- "page": 1,
- "page_size": 20,
- "total_items": 5,
- "total_pages": 1
}
}Retrieve monthly API usage with billing information. Only available for Enterprise tier users with usage-based billing.
{- "billing_summary": {
- "user_id": "550e8400-e29b-41d4-a716-446655440000",
- "billing_period_start": "2024-01-01T00:00:00Z",
- "billing_period_end": "2024-01-31T23:59:59Z",
- "total_requests": 315750,
- "included_requests": 300000,
- "billable_requests": 15750,
- "subscription_tier": "enterprise"
}, - "subscription": {
- "status": "active",
- "tier": "enterprise"
}
}