Skip to content

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 us
Redash

Use Cases

Why integrate with Redash

Common scenarios for SaaS companies building Redash integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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.

01

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.

02

Automated user lifecycle management

Create, invite, disable, enable, or delete Redash users and manage group membership in response to HRIS or SSO events.

03

Alert subscription webhooks

Discover existing Redash alerts and attach your product as an alert subscription destination to receive real-time threshold breaches.

04

Dashboard and widget provisioning

Programmatically create dashboards, add widgets, and publish visualizations into a customer's Redash instance from templates in your product.

05

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.

06

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

01

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.

02

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.

03

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.

04

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.