Analytics · Beta
Redash
API integration
Ship Analytics features without building the integration. Full Redash API access via Proxy and 100+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Redash
Common scenarios for SaaS companies building Redash integrations for their customers.
Power Reverse ETL from customer data warehouses
Marketing, sales, or CRM platforms can let users point to a saved Redash query and sync its results into their product — turning Redash into a universal connector for whatever database the customer runs behind it.
Automate access reviews and user offboarding
IAM, HRIS, and compliance platforms can provision, disable, or delete Redash users and manage group membership automatically when employees change roles or leave, enforcing least-privilege access to business data.
Route Redash alerts into incident and ChatOps workflows
Incident management and notification platforms can discover configured Redash alerts and register themselves as subscribers, so metric breaches flow directly into on-call rotations and Slack channels.
Build data lineage and governance across BI assets
Data catalog and governance tools can ingest every Redash query, dashboard, widget, and data source schema to map lineage from the warehouse to the dashboard, warning teams before upstream changes break reports.
Programmatically publish dashboards from a semantic layer
Metric stores and analytics tools can push queries, visualizations, and dashboards into a customer's Redash workspace so teams get pre-built BI assets without manual setup.
What You Can Build
Ship these features with Truto + Redash
Concrete product features your team can ship faster by leveraging Truto’s Redash integration instead of building from scratch.
Saved-query audience sync
Let users pick a Redash query, refresh it on a schedule, and pull the latest result set into your app as a live audience or dataset.
Automated user lifecycle management
Create, invite, disable, enable, or delete Redash users and manage group membership in response to HRIS or SSO events.
Alert subscription webhooks
Discover existing Redash alerts and attach your product as an alert subscription destination to receive real-time threshold breaches.
Dashboard and widget provisioning
Programmatically create dashboards, add widgets, and publish visualizations into a customer's Redash instance from templates in your product.
BI asset inventory and lineage graph
Pull every query, dashboard, data source, and (for Databricks users) table and column list to build a searchable catalog and lineage map.
Data source and ACL management console
Expose a UI inside your product that lets admins add data sources, test connections, pause/resume them, and manage ACLs on Redash objects.
SuperAI
Redash AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
get_single_redash_acl_by_id
Get the access control list for a Redash object. Required: id, object_type.
create_a_redash_acl
Grant a Redash user access to an object. Required: object_type, object_id.
list_all_redash_acls
List users with a given access level on a Redash object. Required: object_type, object_id, access_type.
redash_acls_bulk_delete
Revoke a Redash user's access to an object. Required: object_type, object_id.
list_all_redash_alerts
List Redash alerts. Returns the alert records in the collection: id, created_at, updated_at.
create_a_redash_alert
Create a Redash alert bound to a query. Returns the created alert object: id, created_at, updated_at.
get_single_redash_alert_by_id
Get a Redash alert by id. Returns the alert object: id, created_at, updated_at. Required: id.
update_a_redash_alert_by_id
Update an existing Redash alert by id. Returns the updated alert object: id, created_at, updated_at. Required: id.
delete_a_redash_alert_by_id
Delete a Redash alert by id. Returns a 200 OK response on success; the response body shape is not documented in the upstream OpenAPI spec. Required: id.
list_all_redash_alert_subscriptions
List alert subscriptions attached to an alert in Redash. Returns an array of subscription records; the response body is not enumerated in the discovered source, so each record is documented generically as id plus content-type-specific attributes. Required: alert_id.
create_a_redash_alert_subscription
Attach a destination as a subscription to an alert in Redash. Returns an empty 200 response on success. Required: alert_id.
delete_a_redash_alert_subscription_by_id
Detach a subscription from an alert in Redash. Returns an empty 200 response on success. Required: alert_id and id.
create_a_redash_alert_eval
Trigger evaluation of a Redash alert by id. Returns a 200 OK response with no documented body on success. Required: alert_id. Takes no request body.
create_a_redash_alert_mute
Mute a Redash alert by id. Returns an empty 200 response on success. Required: alert_id. Takes no request body.
redash_alert_mutes_bulk_delete
Unmute a Redash alert by id (DELETE on the mute endpoint). Returns an empty 200 response on success. Required: alert_id.
list_all_redash_dashboards
List Redash dashboards. Returns dashboard records including id, name, slug, user_id, version, layout, widgets, and options. Max 250 per page.
create_a_redash_dashboard
Create a new Redash dashboard. Returns the created dashboard object including id, name, slug, version, layout, widgets, and options.
get_single_redash_dashboard_by_id
Get a single Redash dashboard by id. Returns the full dashboard object including widget structure (id, name, slug, layout, widgets, options, version). Required: id.
update_a_redash_dashboard_by_id
Modify a Redash dashboard. Returns the updated dashboard object including id, name, slug, version, layout, widgets, and options. Required: id.
delete_a_redash_dashboard_by_id
Archive a Redash dashboard. Returns the archived dashboard object including id, name, slug, is_archived, and updated_at. Required: id. Redash archives the record (is_archived=true) rather than removing it.
list_all_redash_dashboards_favorites
List Redash dashboards marked as favorites by the current user. Returns an array of favorited dashboard objects via the `results` envelope.
list_all_redash_dashboards_tags
List all dashboard tags in Redash. Returns a list of tag name strings.
create_a_redash_dashboard_fork
Fork a Redash dashboard into a new dashboard owned by the caller. Returns a 200 OK response on success; the OpenAPI does not enumerate response fields. Required: dashboard_id. Takes no request body.
create_a_redash_dashboard_share
Enable anonymous access to a redash dashboard. Returns: public_url, api_key. Required: dashboard_id. Takes no request body.
redash_dashboard_shares_bulk_delete
Disable anonymous access to a redash dashboard. Returns an empty 200 response on success. Required: dashboard_id.
create_a_redash_dashboard_favorite
Mark a Redash dashboard as a favorite. Returns a 200 OK response on success with no documented body. Required: object_id. Takes no request body.
redash_dashboard_favorites_bulk_delete
Remove a Redash dashboard from the user's favorites. Returns a 200 OK response on success with no documented body. Required: object_id.
list_all_redash_my_dashboards
List dashboards created by the authenticated Redash user. Returns an array of dashboard objects including their id, name, layout, options, and tags. Max page_size: 250.
list_all_redash_data_sources
List Redash data sources. Returns each data source record including its id, name, type, and options.
create_a_redash_data_source
Create a new Redash data source. Returns: id.
get_single_redash_data_source_by_id
Get a single Redash data source by id. Returns: id, name, type, options. Required: id.
update_a_redash_data_source_by_id
Update a Redash data source by id. Returns: id, name, type, options. Required: id.
delete_a_redash_data_source_by_id
Delete a Redash data source by id. Returns an empty 204 response on success. Required: id.
redash_data_sources_pause
Pause a Redash data source. Returns a 200 OK response on success. Required: data_source_id.
redash_data_sources_resume
Resume a paused Redash data source. Returns a 200 OK response on success. Required: data_source_id.
list_all_redash_data_sources_types
List the Redash data source type descriptors (e.g. PostgreSQL, MySQL, BigQuery) available for creating data sources in the configured Redash instance. Returns: a collection of type entries (each with a type identifier and configuration metadata) as defined by the upstream Redash instance. No parameters required.
get_single_redash_data_source_schema_by_id
Get a data source's schema listing in Redash. Returns the schema document including its id and content-type-specific attributes structure. Required: id.
create_a_redash_data_source_test
Test a Redash data source connection. Returns 200 OK on success. Required: data_source_id. Takes no request body.
get_single_redash_databricks_database_by_id
List the databases of a Databricks data source (id = data source id). Returns the cached list when Redash has one; otherwise returns {job}: poll jobs.get until status 3 and read job.result. Fails with 400 for non-Databricks data sources.
list_all_redash_destinations
List Redash destinations. Returns: id, name, options, type.
create_a_redash_destination
Create a Redash destination. Returns the created destination object including its id.
get_single_redash_destination_by_id
Get a Redash destination by id. Returns the destination object including its id. Required: id.
update_a_redash_destination_by_id
Update a Redash destination by id. Returns the updated destination with id, name, options, and type. Requires name, options, and type. Required: id.
delete_a_redash_destination_by_id
Delete a Redash destination by id. Returns the deleted destination object including its id. Required: id.
list_all_redash_destinations_types
List Redash destination type definitions (PostgreSQL, MySQL, BigQuery, etc.). Returns a mapping of destination type short names to per-type configuration metadata describing the configuration shape of each supported destination type. The per-type entry shape is type-specific — consult the upstream Redash docs for the field-level breakdown per…
list_all_redash_events
List events recorded in redash. Returns event records with content-type-specific fields including id and an attributes object. Pagination is handled by Truto.
create_a_redash_event
Create a new event in redash. Returns the created event record with content-type-specific fields including id and an attributes object. The upstream spec does not enumerate request body fields.
list_all_redash_groups
List groups in Redash. Returns each group's id and attributes.
create_a_redash_group
Create a new group in Redash. Returns the created group object with its id and attributes.
get_single_redash_group_by_id
Get a single group in Redash by id. The Redash API does not document return fields for this endpoint; consult upstream docs for the response shape. Required: id.
update_a_redash_group_by_id
Update a group in Redash by id. Returns the updated group object with its id and attributes. Required: id.
delete_a_redash_group_by_id
Delete a group from Redash by id. Required: id.
list_all_redash_group_members
List the members of a Redash group. Returns the group's member list. Required: group_id.
delete_a_redash_group_member_by_id
Remove a member from a Redash group by id. Returns an empty 200 response on success. Required: id, group_id.
create_a_redash_group_member
Add a user to a Redash group. Returns an empty 200 response on success. Required: group_id.
list_all_redash_group_data_sources
List data sources attached to a Redash group. The response body shape is not documented in the discovered source. Required: group_id.
create_a_redash_group_data_source
Attach a data source to a Redash group. The request body shape is not documented in the discovered source. Required: group_id.
delete_a_redash_group_data_source_by_id
Detach a data source from a Redash group. The response body shape is not documented in the discovered source. Required: id, group_id.
update_a_redash_group_data_source_by_id
Attach an existing data source to a Redash group. The request body shape is not documented in the discovered source. Required: group_id, data_source_id.
get_single_redash_job_by_id
Retrieve info about a running query job in Redash. Returns the job object. Required: id.
delete_a_redash_job_by_id
Cancel a query job in progress in Redash. Returns a 200 OK response on success. Required: id.
list_all_redash_queries
List Redash queries ordered by the given column. Returns an array of query objects including id, name, query, data_source_id, schedule, is_archived, is_draft, and timestamps. Pass `q` to filter, `order` to choose the sort column. Max 250 per page.
create_a_redash_query
Create a new Redash query. Returns the created query object including id, name, query, data_source_id, schedule, api_key, version, is_archived, is_draft, and timestamps. Requires data_source_id and query text.
redash_queries_search
Search query text, names, and descriptions.
get_single_redash_query_by_id
Retrieve a query. Required: id.
update_a_redash_query_by_id
Modify a query. Required: id.
delete_a_redash_query_by_id
Archive a query in Redash. Returns an empty 204 response on success. Required: id. Redash archives the record (is_archived=true) rather than removing it.
list_all_redash_queries_archives
List archived queries in Redash. Returns an array of query records with content-type-specific fields.
list_all_redash_queries_favorites
List Redash queries the current user has marked as favorite. Returns an array of query objects (each with at minimum an id plus schema-specific attributes). Page-based pagination applies (max 250 per page).
list_all_redash_queries_recents
List the queries recently modified by the current user in Redash. Returns up to 10 query objects whose field shape comes from the upstream API and cannot be enumerated statically.
list_all_redash_queries_tags
List all Redash query tags, including tags associated with draft queries. Returns an array of tag name strings.
list_all_redash_my_queries
List queries in Redash created by the current user. Returns an array of Query objects under `results` including each query's id, name, query text, description, data_source_id, schedule, options, tags, version, and timestamps. Max 250 per page.
create_a_redash_query_result
Execute a query in Redash and return its result (or return cached results when recent). Returns the query result object with content-type-specific fields that depend on the executed query; the upstream OpenAPI spec does not enumerate the response shape. Use max_age (omitted or -1 returns cached when available,…
get_single_redash_query_result_by_id
Retrieve a previously executed Redash query result by its query result id. Returns the query result object with content-type-specific fields that depend on what the original query produced; the upstream OpenAPI spec does not enumerate the response shape. Required: id.
list_all_redash_query_results_resource
Retrieve query results in Redash for a saved query. Returns the query result object with cached or freshly executed data along with runtime and metadata. Required: query_id.
create_a_redash_query_results_resource
Execute a saved query in Redash and retrieve its results, optionally honoring a cache age. Returns the query result object with cached or freshly executed data, runtime, and metadata. Required: query_id.
get_single_redash_query_dropdown_by_id
Get the dropdown values for a Redash query by id. The upstream response body shape is undocumented; Truto returns the raw 200 OK response from the Redash API. Required: id. The dropdown's source query must have a cached result: run it first (query_results_resource.create), otherwise Redash returns 500.
create_a_redash_query_favorite
Mark a Redash query as a favorite. Required: query_id. Takes no request body.
redash_query_favorites_bulk_delete
Unmark a Redash query as a favorite. Required: query_id.
create_a_redash_query_fork
Fork a Redash query by id, creating a new query that copies the source query's text. Required: query_id. Takes no request body.
get_single_redash_query_job_by_id
Retrieve info about a running Redash query job scoped to a specific query. Returns the job status object including job id and job-state-specific fields. Required: query_id, id.
create_a_redash_query_refresh
Trigger a refresh of a saved query in Redash, updating the query object with the latest results. Returns query task details describing the refresh. Required: query_id. Takes no request body.
create_a_redash_query_regenerate_api_key
Regenerate the API key attached to a saved Redash query by query id. The endpoint rotates the query's existing API key and returns a 200 OK on success. Required: query_id. Takes no request body.
list_all_redash_query_snippets
List query snippets in Redash. Returns a collection of snippet records, each with an id and content-type-specific fields.
create_a_redash_query_snippet
Create a query snippet in Redash. Returns the created snippet record including its id and content-type-specific fields.
get_single_redash_query_snippet_by_id
Get a single query snippet by id in Redash. Returns the snippet record including its id and content-type-specific fields. Required: id.
update_a_redash_query_snippet_by_id
Update a query snippet by id in Redash. Returns the updated snippet record including its id and content-type-specific fields. Required: id.
delete_a_redash_query_snippet_by_id
Delete a query snippet by id in Redash. Returns an empty 204 response on success. Required: id.
list_all_redash_settings_organizations
Get the Redash organization's settings object. Returns the organization settings including its id and an attributes object containing content-type-specific organization fields. Returns a one-item array whose element holds the organization's settings object.
create_a_redash_settings_organization
Update Redash organization settings. Returns the updated settings object including its id and an attributes object containing content-type-specific organization fields.
list_all_redash_users
List Redash users. Returns user records under the `results` envelope, each item including id and upstream-defined attributes.
create_a_redash_user
Create a Redash user. Returns the created user object including its id and upstream-defined attributes.
get_single_redash_user_by_id
Get a Redash user by id. Returns the user object including its id and upstream-defined attributes. Required: id.
update_a_redash_user_by_id
Update a Redash user by id. Returns the updated user object including its id and upstream-defined attributes. Required: id.
delete_a_redash_user_by_id
Delete a Redash user by id. Returns an empty 200 response on success; the discovered source does not document a response body. Required: id.
redash_users_disable
Disable a user in Redash. Returns an empty response on success. Required: user_id. Takes no request body.
redash_users_enable
Enable a user in Redash. Returns an empty response on success. Required: user_id.
redash_users_invite
Invite a user in Redash. Returns an empty response on success. Required: user_id. Takes no request body.
create_a_redash_user_regenerate_api_key
Regenerate the API key for a Redash user. Returns a 200 OK response on success. Required: user_id. Takes no request body.
create_a_redash_user_reset_password
Reset a user's password in Redash. Required: user_id. Takes no request body.
create_a_redash_visualization
Create a Redash visualization. Returns a 200 OK confirmation.
update_a_redash_visualization_by_id
Update a Redash visualization by id. Returns a 200 OK confirmation. Required: id.
delete_a_redash_visualization_by_id
Delete a Redash visualization by id. Returns a 200 OK confirmation with no body. Required: id.
create_a_redash_widget
Create a widget on a Redash dashboard with a visualization reference, custom options, and a display width. Returns the created widget object. Always send visualization_id (null for a text widget); Redash fails with 500 if it is missing.
update_a_redash_widget_by_id
Update a Redash dashboard widget. Returns the updated widget object. Required: id.
delete_a_redash_widget_by_id
Remove a widget from a Redash dashboard. Returns an empty 200 response on success. Required: id.
get_single_redash_query_dropdown_option_by_id
Get a single dropdown's values from a Redash query by query id and dropdown id. The upstream response body shape is undocumented; Truto returns the raw 200 OK response from the Redash API. Required: query_id, dropdown_id. The dropdown's source query must have a cached result: run it first (query_results_resource.create), otherwise Redash returns 500.
list_all_redash_databricks_tables
List the tables of a database in a Databricks data source. Returns {schema, has_columns} when cached; otherwise {job}: poll jobs.get and read job.result. Pass refresh to also load each table's columns. Fails with 400 for non-Databricks data sources.
list_all_redash_databricks_columns
List the columns of a Databricks table. Always returns {job}: poll jobs.get until status 3 and read job.result. Fails with 400 for non-Databricks data sources.
Why Truto
Why use Truto’s MCP server for Redash
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Redash in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Redash account
Use Truto’s frontend SDK to connect your customer’s Redash account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Redash
Truto’s Proxy API is a 1-to-1 mapping of the Redash API. You call us, we call Redash, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Redash’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Redash on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How do end users authenticate their Redash account?
Redash uses per-user API keys (and per-query API keys) against a self-hosted or managed Redash host. Through Truto, your users supply their Redash base URL and API key during connection, and Truto handles storing and injecting the credential on every call.
Does this work with self-hosted Redash instances?
Yes. Most Redash deployments are self-hosted, so the integration is designed around a customer-provided host URL plus API key. Any reachable Redash instance running a standard API version is supported.
Can we fetch live query results, or only cached ones?
Both. You can read the latest cached result via the query results endpoints, or trigger a fresh execution using the query refresh and query results resource endpoints and then poll the job endpoint until the new result is ready.
Are Databricks-specific metadata endpoints supported?
Yes. For Redash instances connected to Databricks, you can list databases, tables, and columns, which is useful for building schema pickers or lineage tools on top of the Databricks + Redash stack.
What alerting operations are available?
You can list, create, update, and delete alerts, manage alert subscriptions (to register your app as a destination), evaluate alerts on demand, and create or bulk-delete alert mutes.
How does Truto handle rate limits and pagination?
Truto normalizes Redash's list endpoints with consistent pagination parameters and transparently manages retries and backoff when Redash returns rate-limit responses, so you can iterate large sets of queries, dashboards, or users without writing that logic yourself.
Redash
Get Redash integrated into your app
Our team understands what it takes to make a Redash integration successful. A short, crisp 30 minute call with folks who understand the problem.