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.