For full endpoint details, request/response schemas, and an interactive playground, see the API Reference tab.
Authentication
The Streamkap API uses bearer tokens for authentication. The flow is:- Create API credentials (Client ID and Secret) in the Streamkap UI — see API Tokens for instructions.
- Exchange credentials for an access token by calling the
/auth/access-tokenendpoint. - Use the access token as a Bearer token in the
Authorizationheader for all subsequent requests.
Get an Access Token
| Field | Description |
|---|---|
accessToken | Bearer token to use in API requests |
refreshToken | Token to obtain a new access token |
expires | Expiration timestamp of the access token |
expiresIn | Seconds until the access token expires |
Make Authenticated Requests
Include the access token in theAuthorization header for all API calls:
Refresh an Access Token
When your access token expires, use the refresh token to obtain a new one without re-authenticating with your client credentials:Common Workflows
1. Create a Complete Pipeline
Build an end-to-end CDC pipeline by creating a source, destination, and then linking them in a pipeline.Create a source connector
Create a source by specifying the connector type and its configuration. The Save the returned
connector field identifies the source type (e.g., postgresql, mysql, mongodb), and config contains connector-specific settings.id value — you will need it when creating the pipeline.Create a destination connector
Create a destination where your CDC data will be delivered. As with sources, the Save the returned
connector field identifies the destination type and config holds its settings.id value for the next step.Connector configurations vary by type. Refer to the source and destination documentation pages for the full list of configuration options for each connector.
2. Monitor Pipeline Health
Check the status and performance of your running pipelines.Check pipeline metrics
Get latency, throughput, and lag metrics for a pipeline:Key metrics to watch:
- latency — End-to-end delay from source change to destination delivery
- recordsLag — Number of records waiting to be processed
3. Trigger a Snapshot
Trigger an incremental snapshot to re-read data from specific tables without resetting the entire source connector.Execute an incremental snapshot
Specify the source ID and optionally the topic names (tables) to snapshot. If You can also include optional
topic_names is omitted, all tables configured on the source will be snapshotted.additional_conditions to filter which rows are snapshotted:Monitor snapshot progress
Check the source metrics to track the snapshot:Look for
SnapshotRunning (number of tables currently being snapshotted) and SnapshotCompleted (number of tables that have finished).4. Add Tables to an Existing Source
Add new tables to a running source without modifying the original table list, using thetable.include.list.user.defined configuration parameter.
Get the current source configuration
name, connector, and config values from the response.API Response Patterns
Standard Responses
All API responses return JSON. Successful responses typically include the resource object directly:Paginated Responses
List endpoints support pagination viapage and page_size query parameters:
| Parameter | Default | Description |
|---|---|---|
page | 1 | Page number (1-indexed) |
page_size | 10 | Number of items per page |
sort | — | Sort field (e.g., name, created_at) |
sort_dir | asc | Sort direction: asc or desc |
Error Responses
Validation errors return a422 status code with details about the issue:
| Status | Meaning |
|---|---|
200 | Success |
401 | Unauthorized — invalid or expired token |
404 | Resource not found |
422 | Validation error — check the detail field |
Detailed request/response schemas for every endpoint are available in the API Reference.
Rate Limits and Best Practices
API rate limits are managed by Streamkap and are designed to accommodate normal usage patterns. If you encounter
429 Too Many Requests responses or believe your use case requires higher limits, contact Streamkap support with details about your integration and expected request volume.API versioningThe Streamkap API is currently unversioned. All endpoints use a single base URL (
https://api.streamkap.com). If breaking changes are introduced in the future, they will be communicated in advance through release notes and direct customer notification, with a deprecation period to allow migration.- Use pagination for list endpoints. Avoid fetching all resources in a single request by using
pageandpage_sizeparameters. - Cache responses where appropriate. Source and destination configurations change infrequently, so you can safely cache them for short periods.
- Handle retries with exponential backoff. If a request fails with a
5xxstatus code, wait before retrying. Start with a 1-second delay and double it on each retry, up to a maximum of 30 seconds. - Refresh tokens proactively. Use the refresh token endpoint before your access token expires rather than waiting for a
401error. - Minimize unnecessary polling. When monitoring pipeline health, use a reasonable interval (e.g., every 30—60 seconds) rather than polling continuously.
SDKs and Tools
Terraform Provider
The Streamkap Terraform Provider enables infrastructure-as-code management of sources, destinations, pipelines, and transforms. See the full Terraform Configuration guide to get started.OpenAPI Specification
The Streamkap API is documented with an OpenAPI 3.1 specification. You can use the spec to generate client libraries for any language using tools like OpenAPI Generator or Speakeasy. The spec is accessible in the API Reference tab and powers the interactive endpoint playground.Next Steps
- API Tokens — Create and manage API credentials
- API Reference — Full interactive endpoint documentation
- Terraform Provider — Manage infrastructure as code
- Terraform Resources — Source, destination, and pipeline resource examples
- Snapshots — Learn how initial and incremental snapshots work