---
title: WarpStream API Integration on Truto
slug: warpstream
category: Application Development
canonical: "https://truto.one/integrations/detail/warpstream/"
---

# WarpStream API Integration on Truto



**Category:** Application Development  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 58 tools for WarpStream that AI agents can call directly.

- **create_a_warp_stream_api_key** — Create a new WarpStream API key with the specified name and access grants. Returns: id, created_at. API key names may only contain underscores and alphanumeric characters; WarpStream prepends an `akn_` prefix automatically. Required: name, access_grants.
- **delete_a_warp_stream_api_key_by_id** — Delete a WarpStream API key by its api_key_id. Returns an empty response on success. Required: api_key_id.
- **list_all_warp_stream_api_keys** — List all WarpStream API keys belonging to the same workspace as the authenticating key. Returns: id, created_at, virtual_cluster_id.
- **create_a_warp_stream_virtual_cluster** — Create a new WarpStream virtual cluster. A new agent key is automatically provisioned with every cluster. Returns: virtual_cluster_id. Required: virtual_cluster_name, virtual_cluster_type, virtual_cluster_region, virtual_cluster_cloud_provider, virtual_cluster_tier.
- **delete_a_warp_stream_virtual_cluster_by_id** — Permanently delete a WarpStream virtual cluster. Both virtual_cluster_id and virtual_cluster_name are required as confirmation that the correct cluster is being deleted. This operation is irreversible — all topics and data will be lost. Returns an empty 204 response on success. Required: virtual_cluster_id, virtual_cluster_name.
- **get_single_warp_stream_virtual_cluster_by_id** — Describe a WarpStream virtual cluster by its ID. Returns: virtual_cluster, catalog_base_url. Required: virtual_cluster_id.
- **list_all_warp_stream_virtual_clusters** — List all WarpStream virtual clusters. Returns an array of cluster records each containing: id, name, type, region, cloud_provider, bootstrap_url, agent_pool_id, agent_pool_name, created_at, and agent_keys.
- **update_a_warp_stream_virtual_cluster_by_id** — Rename a WarpStream virtual cluster to a new name. Returns an empty 204 response on success. Required: virtual_cluster_id, new_virtual_cluster_name.
- **get_single_warp_stream_virtual_cluster_configuration_by_id** — Get the configuration of a WarpStream virtual cluster. Returns the virtual_cluster_configuration object including are_acls_enabled, default_num_partitions, default_retention_millis, and is_auto_create_topic_enabled. Required: virtual_cluster_id.
- **update_a_warp_stream_virtual_cluster_configuration_by_id** — Update the configuration of a WarpStream virtual cluster by supplying a partial virtual_cluster_configuration object; only the fields provided are modified and all others remain unchanged. Returns an empty response on success. Required: virtual_cluster_id.
- **update_a_warp_stream_virtual_cluster_tier_by_id** — Update the tier of a WarpStream virtual cluster. Returns an empty response object on success. Required: virtual_cluster_id, tier.
- **create_a_warp_stream_virtual_cluster_credential** — Create new credentials for a WarpStream virtual cluster. Returns the created credentials object including id, username, and password. Required: credentials_name, virtual_cluster_id. Optionally supply imported_password to assign a specific password instead of a randomly generated one.
- **delete_a_warp_stream_virtual_cluster_credential_by_id** — Delete existing WarpStream virtual cluster credentials by credential id and virtual cluster. Returns an empty 204 response on success. Required: id, virtual_cluster_id.
- **list_all_warp_stream_virtual_cluster_credentials** — List all credentials for a WarpStream virtual cluster. Returns: id, created_at. Required: virtual_cluster_id.
- **create_a_warp_stream_acl** — Create a single ACL rule on a WarpStream virtual cluster. Deduplicates identical rules automatically — only one copy is stored. Returns: acl. Required: virtual_cluster_id, acl.
- **list_all_warp_stream_acls** — List all ACL rules configured on a WarpStream virtual cluster. Returns: acls. Returns an empty array if no ACLs are configured. Required: virtual_cluster_id.
- **delete_a_warp_stream_acl_by_id** — Delete ACL rules matching the provided filters from a WarpStream virtual cluster. Supports dry_run mode to preview which ACLs would be removed and bulk_deletion mode for broad criteria matching. Returns: acl. Required: virtual_cluster_id, acls.
- **list_all_warp_stream_consumer_groups** — List all WarpStream consumer groups for a given virtual cluster, including member assignments and partition-level consumption lag. Returns the state object containing groups with name, state, members (id, client_id, client_host, assignment), topics (name and per-partition min_offset, max_offset, committed_offset), and protocol. Required: virtual_cluster_id.
- **get_single_warp_stream_quota_by_id** — Get WarpStream account quotas, describing the maximum limit and current usage for each quota type. Returns: quotas.
- **list_all_warp_stream_pipelines** — List WarpStream pipelines in a virtual cluster. Returns: id, virtual_cluster_id. Required: virtual_cluster_id.
- **create_a_warp_stream_pipeline** — Create a new WarpStream pipeline in a virtual cluster. Returns: pipeline_name, pipeline_type, virtual_cluster_id. Required: virtual_cluster_id, pipeline_name. Only one Orbit or Schema Linking pipeline is allowed per cluster at a time.
- **delete_a_warp_stream_pipeline_by_id** — Delete a WarpStream pipeline from a virtual cluster. Returns an empty 204 response on success. Required: virtual_cluster_id, pipeline_id.
- **get_single_warp_stream_pipeline_by_id** — Get details of a WarpStream pipeline including its overview and configurations. Returns: virtual_cluster_id, pipeline_id. Required: virtual_cluster_id, pipeline_id.
- **create_a_warp_stream_pipeline_configuration** — Create a new pipeline configuration in WarpStream by supplying a YAML configuration payload. Returns: configuration_id. Required: virtual_cluster_id, pipeline_id, configuration_yaml.
- **update_a_warp_stream_pipeline_state_by_id** — Change the state of a WarpStream pipeline by setting desired_state to 'running' (start/resume) or 'paused'. Optionally deploy a specific pipeline configuration by providing deployed_configuration_id. Returns an empty response on success. Required: virtual_cluster_id, pipeline_id.
- **create_a_warp_stream_invitation** — Create invitations in WarpStream to invite one or more new users to join your account. Each invited user receives an email with instructions; upon acceptance they are granted the role specified by user_role_id. Returns an empty 204 response on success. Required: invitations (array of objects each containing email and user_role_id).
- **get_single_warp_stream_invoice_by_id** — Get the current pending (in-progress billing period) invoice for a WarpStream account. Returns: date_from, date_to, tenants, account_charges, total.
- **get_single_warp_stream_past_invoice_by_id** — Get a past WarpStream invoice for a specified date range. Returns date_from, date_to, tenants (with per-workspace and per-cluster charge breakdowns including product, unit_price, quantity, and total), account_charges (credits and support fees), and the overall total. Required: date_start.
- **get_single_warp_stream_invoice_breakdown_by_id** — Get detailed invoice breakdowns from WarpStream for a specified date range, returning per-tenant, per-workspace, per-cluster, and per-product usage and cost data. Returns: date_from, date_to, tenants, account_charges. Required: date_start, date_end.
- **get_single_warp_stream_chargeback_by_id** — Get pending chargebacks in WarpStream, organized by tenant, workspace, and cluster. Returns: date_from, date_to, covers_products, tenants, account_charges. All filters are optional.
- **get_single_warp_stream_past_chargeback_by_id** — Get past chargeback data for a WarpStream billing month, broken down by tenant, workspace, cluster, and entity. Returns: date_from, date_to, covers_products, tenants. Required: date_start.
- **list_all_warp_stream_tables** — List all active WarpStream Tableflow tables for a given virtual cluster. Returns each table's table_name, table_uuid, source_stream_name, source_cluster_name, stats_estimated_byte_count, stats_estimated_row_count, and created_at_unix_nanos. Required: virtual_cluster_id.
- **get_single_warp_stream_table_by_id** — Get details for a single WarpStream Tableflow table by UUID or name. Returns a table object including table_name, table_uuid, table_location, source_stream_name, source_cluster_name, stats_estimated_byte_count, stats_estimated_row_count, and created_at_unix_nanos; optionally a status object with health, lag, and partition details when include_status is true. Required: virtual_cluster_id. Exactly…
- **delete_a_warp_stream_table_by_id** — Permanently delete a WarpStream Tableflow table and its control-plane metadata by table UUID. This operation is irreversible; data files already synced to object storage are not removed automatically. Returns an empty response on success. Required: virtual_cluster_id, table_uuid.
- **create_a_warp_stream_topic** — Create a new topic in a WarpStream virtual cluster. Returns an empty response on success. Required: virtual_cluster_id, topic_name.
- **list_all_warp_stream_topics** — List all topics in a WarpStream virtual cluster. Returns: id, created_at. Required: virtual_cluster_id.
- **get_single_warp_stream_topic_by_id** — Describe a WarpStream topic by name, returning its partition count and full Kafka-compatible configuration. Returns: partition_count, configs.policy, retention.ms, compression.type, and WarpStream-specific settings). Required: virtual_cluster_id, topic_name.
- **update_a_warp_stream_topic_by_id** — Update a WarpStream topic's partition count and/or configuration settings. Returns an empty response on success. Required: virtual_cluster_id, topic_name.
- **delete_a_warp_stream_topic_by_id** — Delete a WarpStream topic by name, with optional soft-delete support to allow later recovery. Returns an empty response on success. Required: virtual_cluster_id, topic_name.
- **warp_stream_topics_undelete** — Restore a soft-deleted topic in WarpStream. Only works for Fundamentals+ clusters when the topic was previously soft-deleted. Returns an empty response on success. Required: virtual_cluster_id, topic_id.
- **list_all_warp_stream_client_metrics_subscriptions** — List all client metrics subscriptions configured on a WarpStream virtual cluster. Returns each subscription's name, interval_ms, metrics, and match. Required: virtual_cluster_id.
- **get_single_warp_stream_client_metrics_subscription_by_id** — Get the configuration of a single WarpStream client metrics subscription by name. Returns client_metrics_subscription containing name, interval_ms, metrics, and match. Required: virtual_cluster_id, name.
- **update_a_warp_stream_client_metrics_subscription_by_id** — Create or update a batch of WarpStream client metrics subscriptions on a virtual cluster. Each entry creates a new subscription if none with that name exists, or replaces the existing one. Returns an empty response on success. Required: virtual_cluster_id, client_metrics_subscriptions (each entry requires name).
- **delete_a_warp_stream_client_metrics_subscription_by_id** — Delete a batch of WarpStream client metrics subscriptions by name from a virtual cluster. If any named subscription does not exist, the entire operation is aborted and a 404 error is returned. Returns an empty response on success. Required: virtual_cluster_id, client_metrics_subscription_names.
- **delete_a_warp_stream_user_by_id** — Delete a WarpStream user by user_id. Returns an empty response on success. Required:id.
- **list_all_warp_stream_users** — List all WarpStream users. Returns: id, virtual_cluster_id.
- **update_a_warp_stream_user_by_id** — Update role assignments for a WarpStream user by assigning or unassigning roles. This endpoint behaves as a patch — only roles explicitly listed are affected; existing unmentioned assignments remain unchanged. Returns an empty response on success. Required: id.
- **create_a_warp_stream_user_role** — Create a new user role in WarpStream with a display name, optional SSO group mapping, and workspace access grants. Returns an empty 204 response on success. Required: user_role_name. WarpStream recommends always setting access_grants resource_id to '*'.
- **delete_a_warp_stream_user_role_by_id** — Delete a WarpStream user role by its role ID. Returns an empty 204 response on success. Required:id.
- **list_all_warp_stream_user_roles** — List all user roles in WarpStream. Returns: id, created_at.
- **update_a_warp_stream_user_role_by_id** — Update an existing WarpStream user role's name, SSO group mapping, or workspace access grants. Returns an empty 204 response on success. Required:id.
- **create_a_warp_stream_workspace** — Create a new WarpStream workspace. By default also creates an application key authorized to manage resources in the workspace; pass skip_application_key_creation: true to skip key creation. Returns: virtual_cluster_id, pipeline_name. Required: workspace_name.
- **delete_a_warp_stream_workspace_by_id** — Delete a WarpStream workspace by workspace_id. Returns an empty 204 response on success. Required:id.
- **list_all_warp_stream_workspaces** — List all WarpStream workspaces in the account. Returns: id, name, created_at.
- **update_a_warp_stream_workspace_by_id** — Rename a WarpStream workspace by workspace_id. Returns an empty 204 response on success. Required:id, new_workspace_name.
- **create_a_warp_stream_orbit_auto_migration** — Initiate a WarpStream orbit topic auto-migration by selecting topics by literal name, regex, or both, and triggering cutover for each matched topic. Returns: initiated, errors, virtual_cluster_id, pipeline_name, pipeline_type. Required: virtual_cluster_id and at least one of topic_names or topic_name_regexes. Set at most one of max_time_lag_seconds and max_offset_lag.
- **delete_a_warp_stream_orbit_auto_migration_by_id** — Abort an in-flight WarpStream orbit topic auto-migration, immediately rolling back topics to a non-migrating state. Topics already in COMPLETE cannot be aborted. Returns: aborted, errors. Required:id, topic_names.
- **get_single_warp_stream_orbit_auto_migration_by_id** — Get the current migration state for every auto-migration topic in a WarpStream virtual cluster, equivalent to the Migration tab in the WarpStream console. Returns a topics array where each entry includes name, migration_state, total_offset_lag, time_lag_nanos, has_lag, initiated_at_unix, completed_at_unix, and migration_attempts. Required: virtual_cluster_id.

## How it works

1. **Link your customer's WarpStream account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach WarpStream.** The Proxy API is a 1-to-1 mapping of the WarpStream API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed streaming infrastructure provisioning for customer environments** — DevOps and platform SaaS products can spin up WarpStream virtual clusters, workspaces, and topics on behalf of their customers during onboarding or per-tenant setup. This turns a multi-day Kafka provisioning process into a one-click flow inside your product.
- **Automate access control and credential rotation for compliance workflows** — Security, IAM, and compliance SaaS platforms can programmatically manage WarpStream users, roles, ACLs, and API keys on connected customer accounts. This enables just-in-time credentials, least-privilege enforcement on sensitive topics, and automated rotation for SOC 2 or ISO controls.
- **Ingest granular chargeback data for FinOps and cost attribution** — FinOps platforms can pull WarpStream invoice breakdowns and chargeback data to attribute streaming costs to specific tenants, workspaces, and clusters. Customers get per-team cost visibility without your product needing to build a WarpStream billing parser from scratch.
- **Monitor consumer group health and pipeline state for observability tools** — Data observability and monitoring SaaS products can continuously poll consumer groups, quotas, and pipeline state to detect lag, stalled consumers, or misconfigured pipelines. This surfaces streaming health inside the same dashboards customers already use.
- **Discover Tableflow-managed tables to auto-generate warehouse pipelines** — ETL/ELT and data catalog SaaS platforms can list WarpStream tables synced via Tableflow and read their metadata to auto-generate load paths into Snowflake, BigQuery, or a lakehouse. This eliminates manual consumer scripts for customers who want streams in their warehouse.

## What you can build

- **One-click virtual cluster provisioning** — Let customers create, configure, tier, and tear down WarpStream virtual clusters directly from your UI, with workspace scoping and cluster-level configuration applied automatically.
- **Automated ACL and credential lifecycle management** — Issue scoped cluster credentials, apply ACLs to specific topics, and revoke or rotate API keys programmatically as users are added, removed, or reassigned in your product.
- **Per-tenant streaming cost dashboards** — Pull invoices, invoice breakdowns, past invoices, chargebacks, and quotas to render tenant-, workspace-, and cluster-level cost attribution inside your FinOps or admin dashboard.
- **Topic and consumer group monitoring** — List and inspect topics, consumer groups, and client metrics subscriptions to build lag alerts, retention audits, and topic lifecycle policies (including undelete of accidentally removed topics).
- **Pipeline orchestration and state control** — Create WarpStream pipelines with configurations, list and inspect them, and toggle their state to pause, resume, or decommission streaming workloads from your product.
- **Kafka-to-WarpStream migration workflows** — Launch, monitor, and clean up Orbit auto-migrations so your customers can move existing Kafka topics into WarpStream without leaving your interface.

## FAQs

### What WarpStream operations does the integration support?

The integration covers control-plane resources: virtual clusters and their configuration and tier, workspaces, topics (including undelete), ACLs, API keys, cluster credentials, users and roles, consumer groups, quotas, pipelines and pipeline state, client metrics subscriptions, invoices and chargebacks, Tableflow tables, invitations, and Orbit auto-migrations. Kafka producer/consumer data-plane traffic is not part of this control-plane API.

### How does authentication work for end customers?

WarpStream's control plane is accessed via API keys issued from a customer's WarpStream account. Through Truto, your end users connect by providing their WarpStream API key once, and Truto handles secure storage and injection on every request so you never touch the credential directly.

### Can we manage per-tenant isolation inside a single WarpStream account?

Yes. You can create separate workspaces and virtual clusters per tenant, issue scoped credentials, and apply ACLs so each tenant only sees and writes to its own topics — all through the exposed create, list, update, and delete tools.

### Is billing and chargeback data available at a granular level?

Yes. You can retrieve individual invoices, past invoices, invoice breakdowns, chargebacks, and past chargebacks by ID, which lets you attribute cost per workspace, cluster, and product line for FinOps use cases.

### Can we migrate customers from existing Kafka clusters into WarpStream?

Yes. The integration exposes Orbit auto-migration create, get, and delete operations so you can initiate a migration on behalf of a customer, poll its status, and clean up when complete.

### Are consumer lag and streaming health metrics accessible?

You can list consumer groups to inspect their state, partition assignments, and offsets, retrieve quotas by ID, and manage client metrics subscriptions. This gives you the primitives to build lag monitoring and health dashboards, though real-time metric streaming still flows over the Kafka protocol itself.

## Related reading

- [Connect WarpStream to Claude: Orchestrate streams, pipelines, and data](https://truto.one/blog/connect-warpstream-to-claude-orchestrate-streams-pipelines-and-data/) — Learn how to connect WarpStream to Claude using an MCP server to orchestrate virtual clusters, manage Orbit auto-migrations, and execute pipeline operations.
- [Connect WarpStream to ChatGPT: Manage Clusters and Workspaces](https://truto.one/blog/connect-warpstream-to-chatgpt-manage-clusters-workspaces-and-access/) — Learn how to dynamically generate a secure MCP server for WarpStream using Truto. Connect ChatGPT to manage virtual clusters, workspaces, and auto-migrations.
- [Connect WarpStream to Claude: Administer Security, Users and Billing](https://truto.one/blog/connect-warpstream-to-claude-administer-security-users-and-billing/) — Learn how to connect WarpStream to Claude using a managed MCP server. Automate API key rotation, RBAC administration, and complex billing chargebacks.
- [Connect WarpStream to AI Agents: Manage Tables, Metrics, and Billing](https://truto.one/blog/connect-warpstream-to-ai-agents-manage-tables-metrics-and-billing/) — Learn how to connect WarpStream to AI agents using Truto's tools endpoint to autonomously manage virtual clusters, track billing, and orchestrate auto-migrations.
- [Connect WarpStream to AI Agents: Automate Migration and Topic Scaling](https://truto.one/blog/connect-warpstream-to-ai-agents-automate-migration-and-topic-scaling/) — Learn how to connect WarpStream to AI agents using Truto's tools endpoint. Automate Kafka topic scaling, Orbit migrations, and Tableflow operations securely.
