API Reference
The Streamforge REST API allows programmatic management of pipelines, schema models, DLQ operations, and alert rules. Base URL: https://api.streamforgehq.com/v1
Authentication
All API requests require a Bearer token in the Authorization header:
HTTP
Authorization: Bearer sfhq_live_xxxxxxxxxxxxxxxx
Pipelines
GET
/pipelines
List all pipelines in your workspace.
POST
/pipelines
Create a new pipeline. Request body requires
broker_type, connection object, and optional topics array.
GET
/pipelines/{pipeline_id}
Get details of a specific pipeline, including connection status and monitored topic list.
DELETE
/pipelines/{pipeline_id}
Delete a pipeline. Monitoring stops immediately. DLQ events are retained per your retention policy.
Schema Models
GET
/pipelines/{pipeline_id}/topics/{topic}/schema
Retrieve the current schema fingerprint for a topic. Returns field names, inferred types, nullability percentiles, and baseline sampling stats.
Response
{ "topic": "orders-v2.checkout", "baseline_complete": true, "samples": 10000, "fields": [ { "name": "event_id", "inferred_type": "string", "null_pct": 0.002 } ] }
DLQ Operations
GET
/pipelines/{pipeline_id}/dlq
List quarantined events. Supports query params:
topic, violation_type, since (ISO timestamp), limit (max 1000).
POST
/pipelines/{pipeline_id}/dlq/replay
Replay a batch of quarantined events back into the source topic. Body:
event_ids array (max 500K on Scale tier).
DELETE
/pipelines/{pipeline_id}/dlq
Dismiss (delete) quarantined events. Body:
event_ids array or "all": true to dismiss everything for the pipeline.Alert Rules
GET
/workspace/alerts
List all alert channel configurations for the workspace.
POST
/workspace/alerts
Create an alert channel. Body:
type (slack/pagerduty/opsgenie/email/webhook), channel-specific credentials, and optional dedup_window_minutes.
DELETE
/workspace/alerts/{channel_id}
Delete an alert channel.
Rate limits
API rate limits apply per API key:
- Solo: 60 requests/minute
- Team: 300 requests/minute
- Scale: 1,200 requests/minute
Rate limit headers are included in all responses: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.