Skip to content

Analytics · Beta

Metabase
API integration

Ship Analytics features without building the integration. Full Metabase API access via Proxy, normalized data through Unified APIs, and 450+ MCP-ready tools for AI agents — all extensible to your exact use case.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Metabase

Use Cases

Why integrate with Metabase

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

01

Automate user provisioning and deprovisioning in Metabase

IT governance and identity management platforms can use Truto's Unified User Directory API to automatically create, update, and suspend Metabase user accounts in sync with HRIS or IdP events — ensuring employees get the right analytics access on day one and lose it instantly on offboarding.

02

Sync permission groups with centralized role management

SaaS platforms managing enterprise software access can map organizational roles to Metabase permission groups via Truto, enforcing least-privilege access to sensitive dashboards and datasets without requiring manual admin intervention in each customer's Metabase instance.

03

Audit and report on analytics tool user access

Security and compliance platforms can pull a unified view of all Metabase users across their customers' instances to generate access reviews, detect dormant accounts, and flag permission drift — critical for SOC 2 and SOX compliance workflows.

04

Provision analytics dashboards alongside user onboarding

Vertical SaaS products that push data into customer warehouses can programmatically create Metabase users, assign them to the right groups, and point them at pre-built dashboards — delivering a seamless, zero-setup BI experience as part of their core product.

What You Can Build

Ship these features with Truto + Metabase

Concrete product features your team can ship faster by leveraging Truto’s Metabase integration instead of building from scratch.

01

Automated Metabase account lifecycle management

Automatically create and deactivate Metabase user accounts when employees join or leave, driven by HRIS or directory events synced through Truto's Unified User Directory API.

02

Cross-platform user access dashboard

Show a unified view of which employees have active Metabase accounts alongside their access to other SaaS tools, powered by Truto's normalized user directory data.

03

Role-based permission group mapping

Automatically assign Metabase users to the correct permission groups based on their department or role in a centralized identity source, reducing manual admin overhead.

04

Dormant account detection and cleanup

Identify Metabase users who haven't been active and trigger automated deprovisioning or review workflows to reduce license waste and security exposure.

05

Compliance-ready user access reports

Generate exportable audit logs of all Metabase user accounts, group memberships, and provisioning events for SOC 2 and internal security reviews.

SuperAI

Metabase AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

create_a_metabase_session

Create a login session in Metabase by authenticating a user. Returns an empty 204 response on success. Required: username, password.

list_all_metabase_users

List Metabase users. Returns: id, email, first_name, last_name. Active users are returned by default.

get_single_metabase_user_by_id

Get a Metabase user by id. Returns: id, email, first_name, last_name. Required: id.

delete_a_metabase_user_by_id

Disable a Metabase user account by id (the account is disabled, not permanently removed). Returns an empty 204 response on success. Required: id.

create_a_metabase_user

Create a new Metabase user by email address. Returns the created user record including id, email, first_name, and last_name. Required: email. Fails with a 400 error if the email address is already taken.

update_a_metabase_user_by_id

Update an existing Metabase user by id, including profile fields, locale, and group memberships. Returns the updated user record including id, email, first_name, and last_name. Required: id. Only personal users can be updated this way; API-key users return 404.

metabase_users_current

Get the current Metabase user — the account the connected API credential belongs to. Returns: id.

list_all_metabase_action_publics

List Metabase actions that have public UUIDs and are publicly accessible when public sharing is enabled. Returns: id, created_at, updated_at.

create_a_metabase_action

Create a new Metabase action. Returns the created action object (per the upstream action schema; includes the action id). Required: name, type, model_id.

delete_a_metabase_action_by_id

Delete a Metabase action by id. Returns an empty 204 response on success. Required: id.

metabase_actions_execute

Execute a Metabase action by id; the parameters field carries mapped dashboard parameter values. Returns an empty 204 response on success. Required: action_id.

get_single_metabase_action_by_id

Get a single Metabase action by id. Returns the action object (per the upstream action schema; includes the action id). Required: id.

list_all_metabase_actions

List Metabase actions that can be used for QueryActions; by default all viewable actions are returned. Returns an array of action objects (per-item fields follow the upstream action schema; id is the action identifier). Optional: model_id to limit to actions on a particular model.

update_a_metabase_action_by_id

Update an Action in Metabase by id. Returns the updated Action on success. Required: id.

list_all_metabase_activity_most_recently_viewed_dashboards

Get the most recently viewed dashboard for the current user in Metabase. Returns an empty 204 response when the user has not viewed any dashboards in the last 24 hours.

list_all_metabase_activity_popular_items

List the most popular things on a Metabase instance. Returns up to 5 popular items, each with an id and type-specific attributes.

list_all_metabase_activity_recent_views

List the cards, models, tables, dashboards, and collections the current user has viewed most recently in Metabase. Returns up to 100 items with their id and model-specific attributes, capped at 20 per model type. Deprecated upstream.

create_a_metabase_activity_recent

Add a model to the current Metabase user's list of recently selected items. Returns an empty 204 response on success. Required: context, model, model_id.

list_all_metabase_activity_recents

List the recent items the current Metabase user has been viewing or selecting most recently. Returns the recents list of recent items. Required: context.

create_a_metabase_agent_collection

Create a new Collection in Metabase via the Agent API, either at the root level or nested under a parent collection. Returns: revision, groups. Required: name.

create_a_metabase_agent_construct_native_query

Construct a native (raw SQL) query against a database in Metabase. Wraps the supplied SQL into a serialized native query and returns it base64-encoded as query, ready to save as a question; the SQL itself is not executed (MBQL execution endpoints reject native queries). Required: database_id, sql.

create_a_metabase_agent_construct_query

Construct an MBQL query in Metabase from a portable MBQL 5 external-query JSON payload. Returns the base64-encoded MBQL query in the query field, ready to execute via /api/agent/v1/execute or paginate via /api/agent/v2/query. Required: query.

create_a_metabase_agent_dashboard

Create a Metabase dashboard, optionally populated with existing saved questions passed as question_ids; cards are positioned automatically on the grid by display type. Returns: id, collection_path. Omitting collection_id saves to your personal collection; pass an explicit null for the root collection. Required: name.

update_a_metabase_agent_dashboard_by_id

Update a Metabase dashboard by id with patch semantics — only fields you pass are changed. Returns: id, collection_path. Required: id. Archiving is a soft delete (there is no delete endpoint); reverse it with archived: false. Dashcard edits go under dashcards as ordered action entries.

create_a_metabase_agent_execute_sql

Execute a raw SQL query against a Metabase database. Returns the query result with data (column metadata in cols plus result rows), row_count, status, and running_time. Required: database_id, sql.

create_a_metabase_agent_execute

Execute an MBQL query in Metabase. Returns: data, row_count, status, running_time, error. Limits: 2000 rows for simple queries, 10000 for aggregated. Required: query.

create_a_metabase_agent_metric

Save a previously constructed query as a named metric in Metabase; the underlying query must have exactly one aggregation and at most one date/datetime grouping. Returns: id, name, description, display, collection_id, collection_path, archived. Required: query, name.

update_a_metabase_agent_metric_by_id

Update a saved Metabase metric with patch semantics - only the fields you pass are changed. Archiving (archived: true) is a soft delete; there is no delete endpoint. Returns: id, name, description, display, collection_id, collection_path, archived. Required: id.

list_all_metabase_agent_pings

Ping the Metabase Agent API health check endpoint to verify connectivity. Returns: message. Takes no parameters.

create_a_metabase_agent_query

Execute a portable MBQL 5 representations JSON query in Metabase and stream the results with continuation-token pagination. Returns: results, column_metadata, continuation_token. Accepts either a JSON body with the query or a continuation_token from a previous response to fetch the next page.

create_a_metabase_agent_question

Save a previously constructed query as a named question (card) in Metabase. Returns: id, name, collection_path. Omitting collection_id saves the question to the caller's personal collection; pass an explicit null to save it to the root collection. Required: name, query.

update_a_metabase_agent_question_by_id

Update a saved Metabase question (card) with patch semantics — only the fields you pass are changed. Returns: id, name, collection_path. Required: id. Use collection_id to move the card, archived true to archive it (soft delete, reversible with archived false), or query to replace the underlying query.

create_a_metabase_agent_read_resource

Read one or more Metabase resources by resolving `metabase://` URI patterns, with per-URI validation and permission checks. Returns: resources, output. Up to 5 URIs per call. Required: uris.

metabase_agents_search

Search Metabase for tables, models, metrics, saved questions, dashboards, and collections using term-based and/or semantic queries; results are ranked with Reciprocal Rank Fusion when both query types are provided. Returns: id, attributes.

get_single_metabase_alert_by_id

Get a single Metabase alert by id. Returns: id, archived, attributes. Required: id. Metabase plans to remove the /api/alert endpoints in a future version (transitioning to a new notifications architecture).

list_all_metabase_alerts

List Metabase alerts the current user created or will receive, or all alerts if the user is an admin. Returns per alert: id, archived, and the remaining alert attributes object. Metabase plans to remove the /api/alert endpoints in a future version (transitioning to a new notifications architecture).

list_all_metabase_analytics_anonymous_stats

Get the anonymous usage stats collected about this Metabase instance — the data it phones home. Meant for testing and admin introspection. Returns an opaque usage-stats payload with content-type-specific fields; no fixed shape is documented.

create_a_metabase_analytics_internal

Record a batch of internal Metabase frontend analytics events as Prometheus metrics; only documented frontend metric counters can be incremented and other events are ignored. Returns an empty 204 response on success. Required: events.

create_a_metabase_analytics_proxy

Forward a batch of Snowplow tp2 analytics events from the client to sp.metabase.com server-side through Metabase, bypassing the page's connect-src CSP. Returns an empty 204 response on success. Required: data, schema.

create_a_metabase_api_key

Create a new Metabase API key (and an associated user) with the provided name and permissions group. Returns: id, name, group_id. Required: name, group_id.

list_all_metabase_api_keys

List Metabase API keys with the default scope. Returns: id, name, group_id. Non-paginated; all keys are returned in one response.

delete_a_metabase_api_key_by_id

Delete a Metabase API key by id. Returns an empty 204 response on success. Required: id. Deleted keys cannot be recovered — a new key must be created.

update_a_metabase_api_key_by_id

Update a Metabase API key by id, changing its group and/or its name. Returns the updated key's id, name, and group_id. Required: id.

create_a_metabase_execute_value

Fetch the values for filling in a Metabase action's execution parameters. Pass PK parameters and values to select; inputs go in the request body rather than the query string so their values stay out of URLs and logs. Returns a map of the fetched parameter values. Required: action_id, action-id, parameters.

create_a_metabase_execute_values_execute

Fetch the values for filling in a Metabase dashcard's execution parameters, passing PK parameters and values to select. Returns a JSON object of parameter values whose keys depend on the dashcard. Required: dashboard_id, dashcard_id.

metabase_public_links_bulk_delete

Delete the publicly-accessible link of a Metabase card, revoking its public access. Returns an empty 204 response on success. Required: card_id.

metabase_public_links_bulk_delete_action

Delete the publicly-accessible link of a Metabase action, revoking its public access. Returns an empty 204 response on success. Required: action_id.

metabase_public_links_bulk_delete_dashboard

Delete the publicly-accessible link of a Metabase dashboard, revoking its public access. Returns an empty 204 response on success. Required: dashboard_id.

metabase_public_links_bulk_delete_document_public_link

Delete the public link of a Metabase document, revoking public access so the existing link stops working. Returns an empty 204 response on success. Requires superuser and public sharing enabled; 404 if the document is missing, archived, or has no public link. Required: document_id.

create_a_metabase_public_link

Generate a publicly-accessible link for a Metabase card. Returns the UUID used to build the public link; if the card is already shared, the existing UUID is returned instead of a new one. Public sharing must be enabled. Required: card_id.

create_a_metabase_query

Run the query associated with a Metabase card. Returns the query result: data (column metadata and rows), row_count, status, and running_time. When stored_result_id is supplied, the cached snapshot is served instead of re-running the query, with rows optionally re-sorted via sort. Required: card_id, id.

get_single_metabase_query_by_id

Fetch the results of running an embedded Metabase card using a JWT signed with the embedding-secret-key. Returns the query result: data (column metadata and rows), row_count, status, and running_time. Required: id.

list_all_metabase_queries

Fetch the results of a publicly shared Metabase card. Returns the query result (data with column metadata and rows, row_count, status, running_time) plus card information. Public sharing must be enabled. Required: card_id, token, export-format.

create_a_metabase_queries_query

Run the query associated with a Metabase Card and download its results as a file. Returns the result file in the requested export format. Required: card_id, export_format.

list_all_metabase_queries_query

Download the query results of a Metabase embedded Card as a file. Returns the result file in the requested export format. Required: token, export_format.

metabase_subscriptions_bulk_delete

Unsubscribe the authenticated user from a Metabase alert. Returns an empty 204 response on success. Deprecated: /api/alert endpoints will be removed in a future version in favor of /api/notification. Required: alert_id.

metabase_subscriptions_bulk_delete_pulse

Unsubscribe the authenticated user from a Metabase pulse subscription (non-users use the email-link unsubscribe flow instead). Returns an empty 204 response on success. Deprecated: /api/pulse endpoints will be removed in a future version in favor of /api/notification. Required: pulse_id.

list_all_metabase_api_key_counts

Get the total count of API keys in Metabase with the default scope. Returns the count as a single integer. Takes no parameters.

metabase_api_key_regenerates_bulk_update

Regenerate a Metabase API key, replacing the existing key with a new one — the old key is invalidated and cannot be recovered. Returns: id, masked_key, prefix, unmasked_key. Required: api_key_id.

get_single_metabase_app_bundle_by_id

Get the cached JavaScript bundle for a single enabled Metabase data app. Returns the bundle as the response body, honoring If-None-Match against the content-hash ETag with 304 Not Modified when unchanged. Required: id.

create_a_metabase_app_draft

Create or reuse a Metabase data app draft for the given slug before its first repository import. Returns: id, name, display_name, description, bundle_path, enabled, allowed_hosts, resource_collection_id, permission_group_id, table_ids, bundle_hash, last_synced_sha, last_synced_at, sync_error, created_at, updated_at, and 1 more. Required: slug.

create_a_metabase_app_query

Resolve an authored Metabase data-app query definition into a serializable Metabase query. Returns: database_id, dataset_query, table_ids, metrics. Required: slug, stages.

create_a_metabase_app_query_table_dependency

Look up the tables read by already-saved queries in a Metabase app, including tables reached only through an implicit join (a metadata-based lookup; nothing is modified). Returns: table_ids. Required: slug, dataset_queries.

create_a_metabase_app_user_permission_warning

Create user permission warnings for a Metabase data app by checking which users cannot access every table the app uses. Returns: user_id, missing_tables (id, name, schema, database_id, database_name). Required: slug, user_ids.

list_all_metabase_apps

List the data apps provided by the connected Metabase repository, including their bundle and sync status. Returns: id, name, display_name, description, bundle_path, enabled, allowed_hosts, resource_collection_id, permission_group_id, table_ids, bundle_hash, last_synced_sha, last_synced_at, sync_error, created_at, updated_at, and 1 more.

get_single_metabase_app_by_id

Get metadata for a single enabled data app in Metabase by its slug. Returns: id, name, display_name, description, bundle_path, enabled, allowed_hosts, resource_collection_id, permission_group_id, table_ids, bundle_hash, last_synced_sha, last_synced_at, sync_error, created_at, updated_at, has_user_permission_warnings. Required: id.

update_a_metabase_app_by_id

Enable or disable a single Metabase data app; disabled apps are not served. Returns: id, name, display_name, description, bundle_path, enabled, allowed_hosts, resource_collection_id, permission_group_id, table_ids, bundle_hash, last_synced_sha, last_synced_at, sync_error, created_at, updated_at, has_user_permission_warnings. Required: id, enabled.

delete_a_metabase_app_by_id

Delete a single Metabase data app by id (its slug), removing the app row and cached bundle. Apps still present in a connected repository are re-materialized by the next sync. Returns an empty 204 response on success. Required: id.

list_all_metabase_apps_repo_status

Get the remote-sync repository status for Metabase data apps, which are pulled via manual "Pull changes", auto-import, or startup. Returns the status object with configured (whether a repository connection is set up on the remote-sync settings page) and url (repository URL, null when none). Requires no parameters.

list_all_metabase_apps_sandbox_hosts

Fetch the Metabase sandbox-host document used as the `src` of the Near-Membrane realm iframe. Returns the served document with content-type-specific fields, carried with a per-document CSP that confines 'unsafe-eval' to that realm. Takes no parameters.

metabase_app_table_dependencies_bulk_update

Store the tables used by the resources from a successful data app resource synchronization, replacing the recorded table dependencies for the data app identified by slug. Returns the updated data app object including id, name, display_name, enabled, table_ids, bundle_hash, and sync_error. Requires slug and table_ids. Required: slug, table_ids.

list_all_metabase_automagic_dashboards

Get the auto-generated Metabase dashboard for an entity such as a table, model, or question. Returns the automagic dashboard object: id plus an attributes object of entity-type-specific fields. Required: entity, entity_id_or_query.

metabase_bookmark_orderings_bulk_update

Set the order of the user's bookmarks in Metabase by submitting the full ordered list. Returns an empty 204 response on success. Required: orderings.

create_a_metabase_bookmark

Bookmark a card, dashboard, collection, or document in Metabase for the current user. Returns: id, created_at. Required: model, bookmark_id, id.

delete_a_metabase_bookmark_by_id

Delete a Metabase bookmark assigned to the current user by model and id. Returns an empty 204 response on success. Required: model, id.

list_all_metabase_bookmarks

List all bookmarks saved by the current Metabase user. Returns: id, attributes.

list_all_metabase_bug_reporting_connection_pool_details

Get database connection pool info for the current Metabase instance. Returns an opaque diagnostic payload whose fields are not enumerated in the upstream documentation. Takes no parameters.

list_all_metabase_bug_reporting_details

Get version and system information for the current Metabase instance to include when filing a bug report. Returns the bug-report details object with instance-specific version and system fields; the API does not document a fixed field set.

create_a_metabase_cache_invalidate

Invalidate Metabase cache entries for specific databases, dashboards, and questions; any number of ids can be supplied in each list. Pass include=overrides to also invalidate cache configuration overrides. Returns the invalidation acknowledgement JSON object.

metabase_caches_bulk_delete

Delete cache configurations in Metabase in bulk. Returns an empty 204 response on success. Requires model and model_id (list of model ids).

metabase_caches_bulk_update

Store a cache configuration in Metabase for a database, dashboard, question, or the root instance. Returns: id, attributes. Requires model, model_id, and strategy. Required: model, model_id, strategy.

list_all_metabase_caches

List Metabase cache configurations for the root instance, databases, dashboards, or questions. Returns: id, model, model_id, strategy. model defaults to root.

list_all_metabase_candidates

List Metabase automagic dashboard candidates for a database, ordered by interestingness. Returns candidate records with their id and candidate-specific attributes. Required: database_id, id.

create_a_metabase_card_collection

Bulk move a set of Metabase cards into a single collection, or remove them from all collections, in one call. Returns a success response; Metabase documents no response body fields for this endpoint. Required: card_ids.

list_all_metabase_card_embeddables

List Metabase cards that have embedding enabled. Returns: id, name, enable_embedding. Each returned card can be embedded via the embedding endpoints and a signed JWT.

list_all_metabase_card_publics

List Metabase cards that have public UUIDs; each card is publicly accessible only if public sharing is enabled. Returns: id, name, public_uuid.

metabase_cards_bulk_update

Update the cards and tabs laid out on a Metabase dashboard: each card's DashboardCard id, size, row/col position, series, and parameter mappings. Returns an empty 204 response on success. Deprecated in favor of updating the dashboard directly. Required: dashboard_id, id, cards.

create_a_metabase_card

Create a new Metabase card (type: question, metric, or model). Returns the created card including id, name, dataset_query, display, and collection_id. Required: name, dataset_query, display, visualization_settings.

delete_a_metabase_card_by_id

Hard delete a Metabase card by id, permanently removing it. Returns an empty 204 response on success. Required: id.

get_single_metabase_card_by_id

Get a Metabase card by id. Returns the card's id, name, description, dataset_query, display, and visualization_settings. Required: id. As of v57, dataset_query is returned as MBQL 5; legacy MBQL 4 can be requested with legacy-mbql.

list_all_metabase_cards

List Metabase cards. Returns card objects including id, name, description, display, dataset_query, and collection_id.

update_a_metabase_card_by_id

Update a Card (question) in Metabase by id. Returns the updated card including its id, name, description, display, dataset_query, collection_id, and archived state. Required: id. All body fields are optional; pass delete_old_dashcards=true to remove stale dashcards when the card is unarchived.

create_a_metabase_cards_card

Export a Card's query results from a public Metabase document as a csv, xlsx, or json file. Returns the results in the requested export format. Requires uuid, card_id, and export_format; public sharing must be enabled. Required: uuid, card_id, export_format.

get_single_metabase_cards_card_by_id

Run a query for a Card embedded in a public Metabase document and get its query results. Returns the query results for the card. Requires uuid and id; public sharing must be enabled. Required: id, uuid.

list_all_metabase_cards_card

Generate a single map tile image for a dashcard on a Metabase dashboard. Returns the generated tile image (binary PNG data) for the requested zoom, x, and y tile coordinates. Required: dashboard_id, dashcard_id, card_id, zoom, x, y, latField, lonField.

list_all_metabase_cells

Get the Metabase automagic (x-ray) dashboard analyzing the cell defined by cell_query for the given entity. Returns: id, attributes. Required: entity, entity_id_or_query, cell_query, entity-id-or-query, cell-query.

list_all_metabase_compares

Get a Metabase automagic comparison dashboard comparing one entity against another; comparison_entity can only be adhoc, segment, or table. Returns the generated comparison dashboard object with content-type-specific fields. Required: entity, entity_id_or_query, comparison_entity, comparison_entity_id_or_query, entity-id-or-query,…

list_all_metabase_compares_compare

Get a Metabase automagic comparison dashboard for a cell of an entity's automagic dashboard, compared with a comparison entity. Returns the comparison dashboard with its id and dynamic dashboard attributes. Required: entity, entity_id_or_query, cell_query, comparison_entity, comparison_entity_id_or_query.

get_single_metabase_model_index_primary_key_by_id

Get the Metabase automagic dashboard for a model index record identified by its primary key. Returns the dashboard with its id and model-dependent attributes. Unresolvable primary keys yield a pk-titled dashboard with no matching rows instead of a 404. Required: id, model_index_id, model-index-id, pk-id.

list_all_metabase_param_searches

Search for the possible values of a Metabase card parameter that contain a query string. Returns the matching values; the value shape depends on the underlying field's data type, and results are limited to the first 1000. Required: card_id, param_key, query, card-id, param-key.

get_single_metabase_query_metadata_by_id

Get all of the required query metadata for a card in Metabase, combining the field, database, and table query-metadata responses. Returns: id, db, fields, field_values. Required: id.

list_all_metabase_query_metadatas

Get metadata about a Metabase table that is useful for running queries. Returns: id, db, fields, field_values. Required: table_id, entity, entity_id_or_query.

list_all_metabase_query_metadatas_query_metadata

Get the combined query metadata for all cards on a Metabase dashboard in a single request. Returns: databases, fields, tables. Required: dashboard_id.

list_all_metabase_rules

Get the automagic dashboard Metabase generates for an entity using a rule and dashboard template. Returns the generated dashboard object with id plus attributes that vary by entity type, rule, and template. Required: entity, entity_id_or_query, prefix, dashboard_template, entity-id-or-query, dashboard-template.

list_all_metabase_rules_rule

Get the Metabase automagic dashboard that analyzes a cell of an entity as defined by cell_query, rendered with the given rule prefix and dashboard_template. Returns the generated dashboard record including its id and content-specific attributes. Required: entity, entity_id_or_query, cell_query, prefix, dashboard_template.

get_single_metabase_series_by_id

Get the series compatible with a Metabase card by id. Returns each compatible card record with its id, name, created_at, and updated_at. Required: id.

create_a_metabase_channel

Create a notification channel in Metabase (e.g. a namespaced channel like channel/http, channel/slack, or channel/email). Returns the created channel object with id, name, type, description, active, and details. Required: name, type.

get_single_metabase_channel_by_id

Get a single Metabase notification channel by id. Returns the channel object with id, name, type, description, active, and details. Required: id.

list_all_metabase_channels

List all notification channels in Metabase. Returns channel objects with id, name, type, description, active, and details. Pass include_inactive to also fetch deactivated channels.

update_a_metabase_channel_by_id

Update a Metabase notification channel by id. Returns the updated channel object with id, name, type, description, active, and details. Required: id.

create_a_metabase_collection

Create a new Metabase collection. Returns: id, name, description, authority_level, revision, groups. Required: name.

delete_a_metabase_collection_by_id

Permanently delete a Metabase collection by id. Returns the id of the deleted collection. Required: id.

get_single_metabase_collection_by_id

Get a single Metabase collection by id, with standard details added. Returns: id, name, description, revision, groups. Required: id.

list_all_metabase_collections

List Metabase collections the current user has read access to. Returns: id, name, description, authority_level, can_write. Optional archived=true shows archived collections, personal-only=true only personal ones.

update_a_metabase_collection_by_id

Update a Metabase collection, including archiving/unarchiving it or moving it. Returns: id, name, description, authority_level, revision, groups. Required: id.

create_a_metabase_dashboard

Create a new dashboard in Metabase. Returns the created dashboard object including its id, name, description, collection_id, and filter parameters. Required: name.

delete_a_metabase_dashboard_by_id

Hard delete a Metabase dashboard by id; to soft delete (archive) instead, use update with archived set to true. Returns an empty 204 response on success. Required: id.

get_single_metabase_dashboard_by_id

Get a single Metabase dashboard by id. Returns: id, name, description, cache_ttl, collection_id, collection_position, position, dashcards, tabs, archived, width, auto_apply_filters, enable_embedding, embedding_type, embedding_params, show_in_getting_started, caveats, points_of_interest. Required: id.

list_all_metabase_dashboards

List Metabase dashboards (legacy endpoint kept for backwards compatibility). Returns dashboard objects including their id, name, description, and collection_id.

update_a_metabase_dashboard_by_id

Update a Metabase dashboard by id, optionally including its dashcards and tabs. Returns the updated dashboard including its id, name, description, dashcards, and tabs. The body mirrors the structure returned by get. Required: id.

metabase_collection_graphs_bulk_update

Batch update Metabase Collection Permissions by submitting a modified graph; only the parts of the graph present in the request are overwritten. Returns the updated graph: groups (group id → collection id → write/read/none) and revision. Required: groups. force=true makes revision optional; skip-graph=true returns only the revision.

list_all_metabase_collection_graphs

Fetch Metabase's graph of all Collection Permissions. Returns: groups, revision. Since 0.56.13, 'none' entries are omitted — a missing group/collection entry means no permissions.

list_all_metabase_collection_roots

Get the root Metabase collection with standard details added. Returns the Collection object including its id, name, description, archived state, and can_write permission flag.

list_all_metabase_collection_roots_root

List the timelines belonging to the root collection in Metabase. Returns each timeline with its id and events.

list_all_metabase_collection_trashes

Fetch the Trash collection in Metabase, the special collection that holds all archived items. Returns the Collection object including id, name, description, can_write, archived, and parent_id. Takes no parameters.

list_all_metabase_collection_trees

List Metabase collections as a nested tree of collection nodes. Returns: name, here, below, children. Optional filters: exclude-archived, exclude-other-user-collections, include-library, namespace/namespaces; set shallow with collection-id to return only a single subtree (root if collection-id omitted).

create_a_metabase_comment

Create a comment on a Metabase entity such as a document; target_type currently only supports document. Returns the created comment including its id, content, target_id, target_type, and is_resolved. Required: target_type, target_id, content.

delete_a_metabase_comment_by_id

Soft delete a Metabase comment by id. Returns an empty 204 response on success. Required: id.

list_all_metabase_comments

List Metabase comments for an entity such as a document. Returns comments with id, content, target_id, target_type, is_resolved, and parent_comment_id. Required: target_type, target_id.

update_a_metabase_comment_by_id

Update a Metabase comment by id, editing its content or marking it resolved. Returns the updated comment including id, content, is_resolved, target_id, and target_type. Required: id.

list_all_metabase_comment_mentions

List Metabase entities suitable for mentions — currently only users. Returns: id, created_at, updated_at. Takes no parameters.

create_a_metabase_copy

Copy a Metabase card (question) by id; the duplicate is created with the name 'Copy of _name_'. Returns the copied card's id, name, created_at, and updated_at. Required: card_id, id.

create_a_metabase_copies_copy

Copy an existing Metabase document, creating a duplicate. Returns: id, revision, groups. Required: from_document_id.

list_all_metabase_dashboards_card

List the Metabase dashboards a card appears in, as lightweight name/id pairs. Returns: id, name. Required: card_id (integer greater than zero).

list_all_metabase_items

List the items of a Metabase dashboard. Returns each item with its id, model, name, description, and last_edited_at. Required: dashboard_id.

list_all_metabase_items_collection

List the items in a Metabase collection — dashboards, cards, models, tables, snippets, and more. Returns: data, revision, groups. Required: collection_id. Official collections are returned first.

get_single_metabase_items_metadatum_by_id

Get metadata about a Metabase collection's items list: the item model types that have at least one visible item in the requested scope, plus the count of items in scope. Returns: models. Required: id. Unlike the collection items list, the result does not depend on search text; the same scope params (models, archived, pinned-state) shape what is…

list_all_metabase_items_metadata

Get metadata about the Metabase root collection's items list: the item model types that have at least one visible item in the requested scope, plus the count of items in scope. Returns: models. Unlike the root collection items list, the result does not depend on search text; the same scope params (models, archived, pinned-state, namespace) shape…

get_single_metabase_param_remapping_by_id

Fetch the remapped display value for a Metabase card parameter. Returns the remapped display value as a bare string response body. Required: id, param_key, value, where value is the raw value to remap.

list_all_metabase_param_remappings

Fetch the remapped display value for a Metabase dashboard parameter. Returns the remapped display value as a bare string response body. Required: dashboard_id, param_key, value, where value is the raw value to remap.

list_all_metabase_param_remappings_remapping

Fetch the remapped display value for a given parameter value on an embedded Metabase card (embedded version of the card filter-values endpoint). The response is an undocumented raw payload; Metabase documents no response field structure. Requires token, param_key, and value.

list_all_metabase_param_searches_search

Search possible values of a dashboard parameter in Metabase by a containing string. Returns the matching values for the parameter, capped at the first 1000 results. Required: dashboard_id, param_key, query.

list_all_metabase_param_values

List the possible values of a Metabase card's filter parameter. Returns: values, has_more_values. Required: card_id, param_key.

list_all_metabase_param_values_params

Fetch the possible values of a dashboard parameter in Metabase. Returns the possible values for the given parameter; the response shape is content-specific to the parameter's underlying field or query. Required: dashboard_id, param_key.

create_a_metabase_cards_dashboard

Get the dashboards that multiple cards appear in, by card. Returns a sequence of maps, each with card_id and the dashboards containing that card; each dashboard may carry an error of unreadable-dashboard or unwritable-dashboard, in which case its details (name, id) are withheld. Required: card_ids.

create_a_metabase_cards_move

Move one or more Metabase cards to a single collection or dashboard in a single batch, which either fully succeeds or fully fails. Returns an empty 204 response on success. Required: card_ids.

create_a_metabase_channel_test

Test a channel connection in Metabase by sending the channel's type and connection details. A 2XX response confirms the connection works; 4XX/5XX means it failed — the upstream docs do not document a response body. Required: type (e.g. channel/http); details is also required for http and Slack channel types.

create_a_metabase_cloud_migration

Initiate a new cloud migration for the Metabase instance. Returns: id, created_at, updated_at.

list_all_metabase_cloud_migrations

Get the latest cloud migration for the Metabase instance, if one exists. Returns: id, created_at, updated_at.

metabase_cloud_migration_cancels_bulk_update

Cancel any ongoing cloud migrations in Metabase, if any. Takes no parameters. Returns no response body on success.

list_all_metabase_dashboard_question_candidates

List the cards in a Metabase collection that can be moved into dashboards in that collection (eligible cards appear in exactly one dashboard there and are not already dashboard questions). Returns an opaque candidates payload; Metabase documents no field structure for it. Required: collection_id, id.

create_a_metabase_move_dashboard_question_candidate

Move candidate cards in a Metabase collection to the dashboards they appear in. Optionally pass card_ids (unique card ids, each greater than zero) to restrict the move; omitting the body moves all candidates. Returns a JSON summary of the move operation. Required: collection_id, id.

list_all_metabase_root_dashboard_question_candidates

List candidate cards in the Metabase root collection that can be moved into dashboards in the root collection, grouped per dashboard. Returns: dashboards, candidate-cards. A card is eligible only if it appears in exactly one dashboard in the root collection and is not already a dashboard question.

list_all_metabase_root_items

List Metabase items visible at the root collection level — the top-level collections, dashboards, questions, and other objects the current user can access. Returns each item with its id, model type, and model-specific attributes. Library collections are excluded by default.

create_a_metabase_root_move_dashboard_question_candidate

Move dashboard-question candidate cards to the dashboards they appear in for the Metabase root collection. Returns a JSON result body whose fields Metabase's API reference does not enumerate. The request body is optional.

list_all_metabase_databases

List all databases connected to Metabase. Pass include=tables or include=schemas to hydrate each database's tables or visible schemas. Returns: id, name, engine, details, tables, schemas, is_full_sync, is_on_demand, cache_ttl, auto_run_queries, description, points_of_interest, caveats, settings, schedules, created_at, updated_at, and 2 more.

create_a_metabase_database

Add a new database connection to Metabase. Returns the created database object including id, name, engine, details, and schedules. Required: name, engine, details.

get_single_metabase_database_by_id

Get a single Metabase database by id. Pass include=tables or include=tables.fields to hydrate its tables, or tables plus fields. Returns: id, name, engine, details, tables, schemas, is_full_sync, is_on_demand, cache_ttl, auto_run_queries, description, points_of_interest, caveats, settings, created_at, updated_at, and 3 more. Required: id.

update_a_metabase_database_by_id

Update an existing Metabase database by id, changing any of its settings such as name, description, engine details, or sync schedules. Returns the updated database object including id, name, engine, details, and schedules. Required: id.

delete_a_metabase_database_by_id

Delete a Metabase database by id, permanently removing it and its synced metadata. Returns an empty 204 response on success. Required: id.

create_a_metabase_database_sample_database

Add the built-in Metabase sample database to your instance as a new Database. Takes no request body or query parameters; returns a successful response with no documented body fields.

create_a_metabase_database_validate

Validate that Metabase can connect to a database with the given connection details before adding it. Returns an opaque success response with no documented body. Required: details.

list_all_metabase_autocomplete_suggestions

List Metabase autocomplete suggestions for tables and fields in a database, for use while typing raw SQL. Returns suggestion strings in the format `[table_name "Table"]` for tables and `[field_name "table_name base_type semantic_type"]` (or without the semantic_type) for fields. Specify only one of prefix or substring;…. Required: database_id, id.

list_all_metabase_card_autocomplete_suggestions

List Card autocomplete suggestions in a Metabase database matching a query string, intended for template-tag completion in the ACE editor ({{#...}}). Returns a list of suggestion entries; the upstream API does not document their structure. Required: database_id, query, id.

create_a_metabase_dismiss_spinner

Manually set the initial sync status of a Metabase database and its corresponding tables to complete. Returns an empty response on success. Required: database_id, id.

create_a_metabase_discard_values_database

Discard all saved field values for a Metabase database. Returns an empty 204 response on success. Required: database_id.

create_a_metabase_rescan_values_database

Trigger a manual scan of the field values for a database in Metabase, refreshing Metabase's cached field value metadata. Returns an empty 204 response on success. Required: database_id.

get_single_metabase_healthcheck_by_id

GET /api/database/{id}/healthcheck. Required: id.

get_single_metabase_metadatum_by_id

Get metadata about a Metabase database, including all of its tables, fields, and field values. Returns: id, name, tables. Required: id. Hidden tables and fields are excluded by default.

list_all_metabase_idfields

List all primary key Fields of a Metabase database. Returns each primary key Field's id. Required: database_id, id.

list_all_metabase_syncable_schemas

List all syncable schemas found for a database in Metabase. Returns the list of syncable schema names as strings. Required: database_id, id.

get_single_metabase_settings_available_by_id

Get all database-local settings and their availability for a Metabase database. Returns a settings map keyed by setting name with each setting's availability info (keys vary by the database's driver). Required: id.

get_single_metabase_usage_info_by_id

Get usage info for a database in Metabase. Returns a map whose keys are model names and whose values are the number of entities of each model that use the database. Required: id.

list_all_metabase_fields

List all fields in a Metabase database. Returns each field's id, table_id, display_name, semantic_type, and visibility_type. Required: database_id, id.

get_single_metabase_field_by_id

Get a single Metabase field by id. Returns the field's id, table_id, display_name, description, semantic_type, and visibility_type. Required: id.

update_a_metabase_field_by_id

Update a Field in Metabase by id. Returns the updated Field object including id, display_name, description, visibility_type, semantic_type, and settings. All body attributes are optional and nullable. Required: id.

create_a_metabase_discard_value

Discard the saved FieldValues for a Metabase field. Only applies to fields that have FieldValues; if the field's database is set up to automatically sync FieldValues, they are recreated during the next sync cycle. Required: field_id, id.

create_a_metabase_rescan_value

Trigger a manual rescan of the field values for a Metabase Field, updating its FieldValues. Only applies to Fields that are eligible for FieldValues. Returns an empty 204 response on success. Required: field_id, id.

create_a_metabase_discard_values_table

Discard the cached field values for every field in a Metabase table; values auto-synced by the database are recreated on the next sync cycle. Only applies to fields that have field values. Returns an empty 204 response on success. Required: table_id.

create_a_metabase_rescan_values_table

Manually trigger a field values rescan for a Metabase table, updating the FieldValues for all fields belonging to it (only fields eligible for FieldValues are scanned). Returns an empty 204 response on success. Required: table_id.

create_a_metabase_sync_schema

Trigger a manual update of a table's schema metadata in Metabase. Returns an empty 204 response on success. Required: table_id, id.

create_a_metabase_sync_schemas_sync_schema

Trigger a manual update of the schema metadata for a database in Metabase. Returns an empty 204 response on success. Required: database_id.

get_single_metabase_related_by_id

Get related entities for a Metabase dashboard by id. Returns a heterogeneous map of related entity types to their entities; the exact keys vary with the dashboard's context. Required: id.

list_all_metabase_relateds

List related entities for a Metabase field. Returns a heterogeneous map of related entity types to their entities; the exact keys vary with the field's context. Required: field_id.

list_all_metabase_relateds_related

List the entities related to a Metabase table. Returns the related-entities payload; Metabase's spec documents no field-level schema for it. Required: table_id.

list_all_metabase_datasets

List all datasets (saved questions exposed as tables) in Metabase's saved-questions virtual database. Returns a list of dataset entries whose fields depend on the saved questions in the instance. Required: virtual_db.

create_a_metabase_dataset

Execute a query in Metabase and retrieve the results in the usual format; the query will not use the cache. Returns: data, row_count, status, running_time.

create_a_metabase_datasets_dataset

Execute a Metabase ad-hoc MBQL query and download the result data as a file in the specified format. Optional body flags: format_rows, pivot_results, csv_include_bom, visualization_settings. Required: export_format, query.

list_all_metabase_dashboard_embeddables

List Metabase dashboards where embedding is enabled (enable_embedding is true); these dashboards can be embedded via the embedding endpoints with a signed JWT. Returns: id, name, description, enable_embedding, created_at, updated_at.

list_all_metabase_dashboard_publics

List the public UUIDs of Metabase dashboards that have been publicly shared. Returns an array of public UUID strings. Dashboards are only publicly accessible if public sharing is enabled.

create_a_metabase_dashboard_save

Save a denormalized description of a dashboard in Metabase, persisting its name, description, tabs, filters, and dashcards in one call. Returns the saved dashboard: id, name, description, dashcards, tabs, parameters, width, and auto_apply_filters. All request body fields are optional.

create_a_metabase_save_collection

Save a denormalized description of a dashboard into a Metabase collection. Returns the saved dashboard, including id, name, dashcards, parameters, and tabs. Required: collection_id, parent-collection-id.

metabase_dashcards_execute

Execute the action associated with a Metabase dashboard dashcard, applying the supplied parameter values. Returns the action execution result with an action-specific shape; Metabase documents no fixed response fields. Required: dashboard_id, dashcard_id, dashboard-id, dashcard-id.

create_a_metabase_dashcard

Execute the action associated with a dashcard on a public Metabase dashboard, applying the supplied parameter values. Returns the action execution result with an action-specific shape; Metabase documents no fixed response fields. Required: uuid, dashcard_id.

list_all_metabase_params_valid_filter_fields

Resolve which filtering fields actually apply to a set of filtered fields in a Metabase dashboard chain filter query. Returns a map from each filtered field ID to the subset of filtering field IDs that would be used (e.g. {"1": [2, 3]}). Required: filtered.

create_a_metabase_pdf

Render a Metabase dashboard to a PDF server-side — the same way dashboard subscriptions render charts — and stream it back as a PDF file download. Optional body fields: paper_size (a4 by default, or letter) and parameters (runtime overrides as id/value maps; unspecified parameters fall back to the dashboard's own defaults). Required: dashboard_id,…

create_a_metabase_reaction

Toggle an emoji reaction on a Metabase comment. Returns a successful response with no documented body fields. Required: comment_id, emoji.

list_all_metabase_schemas

List the schemas that contain tables for a Metabase database; schemas with no tables are excluded. Returns a JSON array of schema name strings. Required: database_id, id.

get_single_metabase_schema_by_id

List the tables in a Metabase database, optionally scoped to one schema by name (schema names containing slashes are supported). Returns matching Table records with their id and data-model attributes. Required: id.

list_all_metabase_schemas_schema

List the tables in a database schema in Metabase. Returns the list of Table records including id, name, and schema. Required: database_id, schema. Schema names containing slashes, backslashes, or percent signs are rejected on this path; use the /:id/schema/ variant instead.

create_a_metabase_table_discard_value

Discard cached field values for a batch of Metabase tables in one call (batch version of /table/:id/discard_values). Selects the target tables with an abstract table selection via table_ids, schema_ids, or database_ids. Returns no response body on success.

create_a_metabase_table_edit

Bulk update tables in Metabase's data studio in a single request. Apply changes to data_authority, data_layer, data_source, entity_type, or ownership (owner_email, owner_user_id) to the tables listed in table_ids. Returns an empty response body on success.

create_a_metabase_table_rescan_value

Trigger a batch rescan of field values for selected tables in Metabase — the batch form of the per-table rescan_values endpoint. Accepts an abstract table selection body (table_ids, schema_ids, database_ids) as /table/edit does. Returns an empty 204 response on success.

create_a_metabase_table_selection

Get information about selected tables in Metabase Data Studio. Returns the bulk selection info object: id plus upstream-defined attributes (field-level shape defined in Metabase's bulk-table-selection-info schema). Select tables via table_ids, schema_ids, or database_ids in the request body.

create_a_metabase_table_sync_schema

Trigger a batch schema metadata sync for a selection of Metabase tables. Returns an empty 204 response on success. The sync runs asynchronously, so the call may return before all selected tables have synced; policy failures return a 4xx before it starts. Select tables via database_ids, schema_ids, or table_ids.

list_all_metabase_ee_billings

Get billing information for the signed-in Metabase user. This endpoint proxies Metabase's billing-info service, so the response is the billing payload forwarded as-is and its fields are not enumerated in the upstream docs. No parameters required.

create_a_metabase_action_v_2_execute_bulk

Execute a Metabase action once per entry in inputs in a single bulk call, which is more efficient than executing each input individually (e.g. batch SQL operations). Returns the outputs from the performed action; the shape of the response depends on the executed action. Required: action, inputs, scope.

create_a_metabase_action_v_2_execute_form

Fetch a Metabase action's parameter form description ahead of execution, without executing the action, so its parameters can be presented correctly in a modal. Returns a form description whose fields depend on the specific action. Required: action, scope. Marked as a temporary endpoint upstream.

create_a_metabase_action_v_2_execute

Execute a Metabase action with a single input, such as a database table row primary key or query result. Returns the outputs from the performed action. Required: action, scope.

metabase_audit_app_users_bulk_delete

Delete all Alerts and DashboardSubscriptions for a Metabase user, so they no longer receive them, and archive any subscriptions they created. Returns an empty 204 response on success. Only admins or the current user may call this. Required: user_id.

list_all_metabase_cloud_add_ons_addons

List cloud add-ons information for this Metabase instance. Returns the addons payload forwarded from the Metabase Store API with store-defined fields; the endpoint takes no caller-supplied parameters.

list_all_metabase_cloud_add_ons_plans

Get plans information for Metabase cloud add-ons from the Metabase Store API. Returns the plans information exactly as provided by the Metabase Store API; the upstream docs do not document a field-level response shape. No required parameters.

list_all_metabase_content_translation_csvs

Download the Metabase content translation dictionary as a CSV file. The response is the raw CSV dictionary — a content-type-specific payload with no enumerable JSON fields. No required parameters.

list_all_metabase_document_publics

List Metabase documents that have public links. Returns: id, name, public_uuid. Archived documents are excluded, and documents are only publicly accessible while public sharing is enabled.

list_all_metabase_user_audit_infos

Get audit info for the current user in Metabase. Returns an opaque audit-info map whose fields are not enumerated upstream, or an empty map when the user lacks audit collection access. Takes no parameters.

delete_a_metabase_advanced_permissions_impersonation_by_id

Delete a Connection Impersonation entry in Metabase by id. Returns an empty 204 response on success. Required: id.

list_all_metabase_advanced_permissions_impersonations

List Metabase's Impersonation policies currently in effect. Returns: id, group_id, db_id, created_at, updated_at.

metabase_ai_controls_permissions_bulk_update

Update Metabot AI-controls permissions for all groups in Metabase, upserting each permission entry. Returns the full permissions list with defaults filled in: advanced, permissions (group_id, perm_type, perm_value). Required: permissions.

list_all_metabase_ai_controls_permissions

List all Metabot AI-controls permissions for every group in Metabase, filling in defaults for missing entries. Returns: advanced, permissions.

create_a_metabase_analytics_dev_export

Export Metabase analytics content as a .tar.gz tarball for local development. Returns a tarball of the analytics YAMLs in canonical format, ready to commit to source control. Takes no parameters. Only available when MB_ANALYTICS_DEV_MODE=true; requires superuser.

metabase_application_graphs_bulk_update

Batch update Application Permissions in Metabase by submitting a modified permission graph. Returns the updated graph including its revision and groups map. Required: groups.

list_all_metabase_application_graphs

Fetch the graph of Application Permissions from Metabase. Returns the graph object including its revision and the groups map of group IDs to "yes"/"no" permission values.

create_a_metabase_dataset_native

Convert an MBQL query to its native (SQL) equivalent in Metabase (read-only despite the POST verb). Returns the native query representation as an opaque object; its field set is not enumerated in the Metabase docs. Required: stages.

create_a_metabase_dataset_pivot

Generate a pivoted dataset for an ad-hoc Metabase query submitted in the request body (legacy form: database, query, type). Returns the query result including the pivoted data columns and rows, row_count, status, and running_time. The query is not persisted. Required: stages.

create_a_metabase_dataset_query_metadata

Get all of the required query metadata for an ad-hoc Metabase query. Returns the query metadata map with query-specific fields; the upstream docs do not enumerate its shape. The ad-hoc MBQL or legacy query is passed in the request body. Required: stages.

list_all_metabase_datasets_database

List the tables (datasets) available under a schema of the saved questions virtual database in Metabase. Returns a list of tables; each table's fields (id, name, field metadata, etc.) are returned as a JSON array. Required: virtual_db, schema.

create_a_metabase_parameter_remapping

Fetch the remapped parameter values for a card or dashboard parameter being edited in Metabase. Returns a remapped-values payload whose exact field shape is not enumerated in the upstream API spec. Required: parameter, value, passed in the JSON request body.

create_a_metabase_parameter_search

Search parameter values in Metabase for cards or dashboards that are being edited. Returns the matching parameter values for the given search string. Required: query, parameter.

create_a_metabase_parameter_value

Fetch the available parameter values for a Metabase card or dashboard parameter that is being edited. Returns the values for the supplied parameter, optionally scoped to the given field_ids. Required: parameter.

create_a_metabase_document

Create a new Document in Metabase. Returns the created document including id, name, document (ProseMirror content), cards, collection_id, and archived. Required: name (max 254 chars), document.

delete_a_metabase_document_by_id

Permanently delete an archived Document in Metabase by id; the document must already be archived. Returns an empty 204 response on success. Required: id.

get_single_metabase_document_by_id

Get an existing Document by id from Metabase. Returns the document record including id, name, document content, cards, collection_id, and archived. Required: id.

list_all_metabase_documents

List existing Documents in Metabase. Returns document records including id, name, document content, cards, collection_id, and archived.

update_a_metabase_document_by_id

Update an existing Document in Metabase by id — modify its name, document content, embedded cards, collection placement, or archived state. Returns the updated document (id, name, document, cards, collection_id, archived). Required: id.

metabase_ee_cloud_add_ons_bulk_delete

Remove a Metabase Cloud add-on for the given product type (e.g. metabase-ai, transforms, dwh-rent). Returns: status, body. Required: product_type.

create_a_metabase_ee_cloud_add_on

Purchase a Metabase Cloud add-on for the given product type (e.g. metabase-ai, python-execution, transforms, dwh-rent). Returns: status, body. The body accepts only quantity and terms_of_service. Required: product_type, product-type.

create_a_metabase_ee_cloud_proxy

Proxy a call to the Metabase Store API (hosted instances only) via the Harbormaster client. Returns the proxied Store operation response; the shape depends on the operation-id. Required: operation_id, operation-id.

create_a_metabase_ee_custom_viz_plugin

Register a new custom visualization plugin in Metabase from an uploaded tar.gz bundle. Returns the created plugin with id, identifier, display_name, status, and enabled. Required: file.

delete_a_metabase_ee_custom_viz_plugin_by_id

Delete a custom visualization plugin by id in Metabase and evict its on-disk cache. Returns an empty 204 response on success. Required: id.

list_all_metabase_ee_custom_viz_plugins

List all registered custom visualization plugins in Metabase. Returns each plugin's id, identifier, display_name, status, and enabled, plus bundle metadata such as bundle_hash, manifest, and warnings.

update_a_metabase_ee_custom_viz_plugin_by_id

Update a custom visualization plugin in Metabase. Currently only the enabled flag may be toggled. Returns the updated plugin with id, identifier, display_name, status, and enabled. Required: id.

create_a_metabase_content_translation_upload_dictionary

Upload a CSV of content translations to Metabase as a multipart file. The success response body is not documented by the Metabase API, so no fields can be listed. Required: file.

create_a_metabase_custom_viz_plugin_dev

Register a dev-only custom visualization plugin in Metabase from a local dev server — no bundle upload is needed since files are served directly from the dev server URL. Returns: id, display_name, identifier, status, enabled, dev_only, created_at, dev_bundle_url, and 7 more. Required: dev_bundle_url. Custom viz plugin dev mode must be enabled.

metabase_permissions_advanceds_bulk_delete

Switch Metabase back to simple Metabot permissions, removing the metabot permissions of every group other than Administrators, All Users, and All tenant users. Returns: permissions, revision, groups.

create_a_metabase_permissions_advanced

Switch Metabase to group-level metabot permissions, removing the permissions of All Users and All tenant users so nobody has access until they are in a group that grants it. Returns: advanced, permissions.

get_single_metabase_usage_group_by_id

Get the metabot usage limit for a specific group in Metabase. Returns: group_id, max_usage. Required: id (the group's integer id).

list_all_metabase_usage_groups

List all group-level metabot usage limits configured in Metabase. Returns: group_id, max_usage.

update_a_metabase_usage_group_by_id

Set or update the metabot usage limit for a specific group in Metabase. Returns: group_id, max_usage. Required: id, max_usage. Pass max_usage as null to remove the limit.

metabase_usage_instances_bulk_update

Set or update the instance-wide Metabot usage limit in Metabase. Returns the applied limit as max_usage (null when unlimited). Required: max_usage. Pass max_usage: null to remove the limit (unlimited).

list_all_metabase_usage_instances

Get the instance-wide Metabot usage limit configured for Metabot in Metabase. Returns: max_usage. No required parameters.

get_single_metabase_usage_tenant_by_id

Get the metabot usage limit for a specific tenant in Metabase. Returns: tenant_id, max_usage. Required: id.

list_all_metabase_usage_tenants

List all tenant-level metabot usage limits in Metabase. Returns one record per tenant with: tenant_id, max_usage.

update_a_metabase_usage_tenant_by_id

Set or update the metabot usage limit for a specific tenant in Metabase. Returns: tenant_id, max_usage. Required: id, max_usage.

get_single_metabase_content_translation_dictionary_by_id

Get the Metabase content translation dictionary via a JWT signed with the embedding-secret-key. Returns: data. Required: id, token.

list_all_metabase_content_translation_dictionaries

List the Metabase content translation dictionary entries for authenticated users (auth-based embedding flows). Returns: data. Required: locale.

list_all_metabase_admin_enrolled_users

List Metabase users who have a confirmed second factor (MFA-enrolled). Returns each user's id, email, first_name, last_name, common_name, sso_source, is_active, is_superuser, and enrolled_at. Search by first name, last name, or email with query.

list_all_metabase_admin_overviews

Get the Metabase admin MFA enrollment overview. Returns: encryption_key_set, enrolled_count, unenrolled_count. No parameters required.

create_a_metabase_admin_remove

Remove another Metabase user's two-factor enrollment entirely — the lockout escape hatch when the authenticator is lost with no recovery codes. Returns an empty 204 response on success. The affected user is notified by email and must re-enroll from scratch; removing your own enrollment is refused. Required: user_id.

list_all_metabase_admin_unenrolled_users

List active Metabase users who have not set up a second factor, including SSO sign-ins whose identity provider owns MFA (matches unenrolled_count from /admin/overview). Returns: id, email, first_name, last_name, common_name, sso_source, is_active, is_superuser. Enterprise-only endpoint.

create_a_metabase_connection_sync

Trigger an immediate sync of the Metabase Google Sheets connection. Returns the gsheets connection shape, including the attached data warehouse id in db_id.

get_single_metabase_custom_viz_plugin_asset_by_id

Serve a Metabase custom visualization plugin's icon image from its uploaded bundle. Returns the icon asset itself as binary image data, not a JSON record. Only the manifest icon is served. Required: id, path.

metabase_custom_viz_plugin_bundles_bulk_update

Replace the bundle for an existing Metabase custom visualization plugin with a multipart tar.gz upload. Returns the updated plugin record: id, display_name, identifier, status, enabled, warnings, created_at, updated_at. Required: custom_viz_plugin_id, file. The bundle manifest's name field must match the plugin's existing identifier.

get_single_metabase_custom_viz_plugin_bundle_by_id

Download the JavaScript bundle for a custom visualization plugin in Metabase, served from the on-disk cache (proxied from dev_bundle_url in dev mode). Returns the raw JS bundle as application/javascript with ETag and Cache-Control headers — not a JSON object. Required: id.

get_single_metabase_custom_viz_plugin_dev_ss_by_id

Proxy Server-Sent Events from a Metabase custom viz plugin's dev server to the browser. Returns a live stream of SSE events forwarded from the plugin's dev server origin. Requires custom viz plugin dev mode to be enabled. Required: id.

metabase_custom_viz_plugin_dev_urls_bulk_update

Set or clear the dev base URL (dev_bundle_url) for a custom viz plugin in Metabase; the plugin bundle is then fetched from {base}/index.js. Returns the saved dev_bundle_url. Pass null for dev_bundle_url to clear it. Required: custom_viz_plugin_id, dev_bundle_url. Custom viz plugin dev mode must be enabled.

list_all_metabase_custom_viz_plugin_lists

List active and enabled custom visualization plugins in Metabase. Returns an array of plugin records with id, identifier, display_name, bundle_url, and warnings; plugins with version mismatches are included with soft warnings, and dev-only plugins are excluded when dev mode is disabled.

create_a_metabase_custom_viz_plugin_refresh

Refresh a Metabase custom visualization plugin by re-fetching its manifest from the dev server. Returns the plugin record: id, display_name, identifier, status, error_message, bundle_hash, warnings, created_at. No-op for uploaded plugins — upload a new bundle to update those. Required: custom_viz_plugin_id, id.

list_all_metabase_custom_viz_plugin_sandbox_hosts

Fetch the Metabase custom-viz sandbox host document, a minimal HTML page served as the iframe src for the custom-viz sandbox. Returns content-type-specific HTML rather than JSON fields; no parameters are required. Responds 404 unless the custom-viz feature is enabled.

list_all_metabase_data_complexity_score_complexities

Get the most recently stored Data Complexity Score for the Metabase instance. Returns: library, meta, metabot, universe. Pass force-recalculation=true to recompute, persist, and return a fresh score.

create_a_metabase_database_replication_connection

Create a new PG replication connection for a Metabase database. Returns a successful response on completion. Optionally send replicationSchemaFilters (schema-filters-type: inclusion/exclusion/all, schema-filters-patterns) to scope which schemas replicate. Required: connection_id, database-id.

delete_a_metabase_database_replication_connection_by_id

Delete the PG replication connection for a Metabase database by id. Returns a successful response on completion. Required: id.

metabase_database_replication_connections_preview

Preview the pg-replication connection info Metabase would report for a database, without creating the connection. Returns the connection info object; its field set is not documented upstream. When replicationSchemaFilters is provided, both schema-filters-type and schema-filters-patterns are required. Required: database_id, database-id.

create_a_metabase_database_routing_destination_database

Create one or more destination databases for Metabase database routing under a router database. Unlike the normal database-creation endpoint, destinations need not be reachable and their details are not verified when added. Returns an empty 204 response on success. Required: destinations, router_database_id.

update_a_metabase_database_routing_router_database_by_id

Update the user_attribute a Metabase database routes on: a non-empty string promotes the database to a Router database or changes its routing attribute, and null turns a Router database back into a regular database. Returns an empty 204 response on success. Required: id.

list_all_metabase_dependencies_backfill_status

Check the status of the Metabase dependency backfill. Returns complete, a boolean that is true when there are no stale or outdated entities awaiting processing.

list_all_metabase_dependencies_graphs

Get the upstream dependency graph for a Metabase entity. Returns a graph of nodes and edges: each node has id, type, data, and dependent_counts, and each edge is a dependency record. Supply id (integer greater than zero) and type (a supported entity type).

list_all_metabase_ee_erds

Get the Entity Relationship Diagram (ERD) for Metabase tables and their foreign-key relationships. Returns the ERD structure linking tables to their FK relationships; the shape follows Metabase's internal erd-response schema and is not enumerated in the public docs.

create_a_metabase_ee_library

Create the Metabase Library collection if it doesn't already exist. Returns the created collection object including id, name, created_at, and updated_at. The request takes no body fields.

list_all_metabase_ee_libraries

Get the Metabase Library. Returns the Library as a collection item object, or a response with data set to null when no Library exists yet. Takes no parameters.

list_all_metabase_ee_permission_debugs

Debug Metabase enterprise permissions for a user against a model (e.g., a question). Returns: decision, model-type, model-id, segment, message, data, suggestions. Requires user_id, model_id, and action_type (card/read, card/query, or card/download-data). Required: user_id, model_id, action_type.

metabase_email_overrides_bulk_delete

Clear all cloud email related settings in Metabase with a single call. Returns an empty 204 response on success.

metabase_email_overrides_bulk_update

Update multiple cloud email SMTP settings in Metabase at once; valid settings automatically enable cloud SMTP. Accepts email-smtp-host-override, email-smtp-port-override, email-smtp-username-override, email-smtp-password-override, and email-smtp-security-override (all optional). Returns an empty 204 response on success.

list_all_metabase_embedding_hub_checklists

Get the status of the Metabase embedding setup guide checklist, indicating which setup steps are complete. Returns: checklist, data-isolation-strategy.

create_a_metabase_enroll_confirm

Confirm TOTP enrollment in Metabase by verifying a code from the authenticator app. Activates the second factor and returns the single-use recovery codes — the only time they exist in plaintext. Returns: recovery_codes. Required: code.

list_all_metabase_graph_breakings

List Metabase entities that are breaking other entities — tables or cards whose dependents have validation errors traced back to them. Returns: data, total, offset, limit, revision, groups. All filter, search, and sort parameters are optional.

list_all_metabase_graph_brokens

List the broken dependents for a source entity in Metabase — entities with validation errors traced back to that source. Returns an array of dependent entities including id, type, name, and location. Sorts by name ascending by default. Required: id, type.

list_all_metabase_graph_dependents

List dependents for a Metabase entity in the dependency graph. Returns dependent entity records including id and content-type-specific attributes. Required: id, type. dependent-card-types is ignored unless dependent-types includes card.

list_all_metabase_graph_unreferenceds

List unreferenced items in Metabase — items that are not a dependency of any other item. Returns: data, total, offset, limit. Filterable by types, card-types, and query; personal collections are excluded by default and results default to limit 50 sorted by name ascending.

metabase_gsheets_connections_bulk_delete

Disconnect the Google service account, removing the Metabase Google Sheets connection. There is only one (or zero) at a time. Returns an empty 204 response on success.

create_a_metabase_gsheets_connection

Connect a new Google Drive folder or Google Sheet to Metabase so its content is watched and ETL'd into Metabase. Returns the gsheets connection object including db_id. Required: url.

list_all_metabase_gsheets_connections

Check the status of the Metabase Google Sheets connection; the frontend polls this to know when setup is complete. Returns the gsheets connection object including db_id, the id of the attached data warehouse database.

list_all_metabase_gsheets_service_accounts

Check whether a Google Sheets service account is set up for the Metabase instance. Returns the service account email, or null when no service account has been configured. Takes no parameters.

list_all_metabase_library_trees

List the Metabase library collection as a tree, matching /api/collection/tree but returning only the library collection. Returns: name, here, below, children.

list_all_metabase_logs_query_executions

List the raw query_execution log rows Metabase recorded for a given month. Returns rows with table-specific fields defined upstream in the query_execution logs table; the exact columns are not enumerated in the API docs and vary by Metabase version. Required: yyyy_mm, yyyy-mm (month as YYYY-MM, e.g. 2020-04).

get_single_metabase_metabot_analytics_conversation_by_id

Get full details for a specific Metabot analytics conversation, including all of its messages. Returns: conversation_id, created_at, title, user, message_count, total_tokens, search_count, query_count, profile_id, slack_permalink, messages, queries, feedback, ip_address, user_agent, sanitized_user_agent, and 4 more. Required: id.

list_all_metabase_metabot_analytics_conversations

List AI conversations with summary statistics from Metabot analytics in Metabase. Returns: conversation_id, title, message_count, user_message_count, assistant_message_count, total_tokens, cache_read_tokens, last_message_at, created_at, profile_id, search_count, query_count, ip_address, embedding_hostname, embedding_path, user, and 3 more.

list_all_metabase_metabot_usages

Get the current Metabot token usage for the current billing period in Metabase. Returns: is_locked, tokens, updated_at.

create_a_metabase_mfa_disable

Disable two-factor authentication for the current Metabase user. Returns an empty 204 response on success. Required: code.

create_a_metabase_mfa_enroll

Start TOTP enrollment for the current user in Metabase. Returns: secret, otpauth_uri. Required: password. Enrollment is not active until confirmed with a live code.

create_a_metabase_mfa_enrolls_enroll

Complete first-time MFA enrollment in Metabase during a two-step login, submitting the single-use enrollment_token JWT and the OTP code. Returns: id, recovery_codes. On success the pending enrollment and the token are consumed and the session cookie is set, logging the user in. Required: enrollment_token, code.

create_a_metabase_mfa_recovery_code

Regenerate the current user's MFA recovery codes in Metabase, invalidating the entire previous set. Returns: recovery_codes. Required: code.

list_all_metabase_mfa_status

Get the current user's MFA status in Metabase, as shown in the account-settings UI. Returns: mfa_enabled, enrolled, pending, method, recovery_codes_remaining. Takes no parameters.

get_single_metabase_publishing_info_by_id

Get the latest valid publishing information for a published table in Metabase Data Studio. Returns: published_at, published_by (with id, common_name); no content is returned when publishing info is unavailable. Required: id.

create_a_metabase_table_publish_table

Publish tables in Metabase Data Studio by setting the collection for each selected table and all of its upstream dependencies recursively. Returns a JSON publish result (the upstream publish-tables-response object). Required: collection_id.

create_a_metabase_table_unpublish_table

Unpublish selected tables in Metabase by unsetting their collection, including all downstream dependents recursively. Returns an empty 204 response on success.

list_all_metabase_current

Get the currently active support access grant in Metabase, if one exists. Returns the grant record with its id and grant-specific attributes; empty when no active grant exists.

list_all_metabase_current_support_access_grant

Get the currently active support access grant in Metabase, if one exists. Returns the active grant record: id, token_url, expires_at, created_at, and user_id. Takes no parameters.

create_a_metabase_current_task_cancel

Cancel the currently running Metabase remote-sync import/export task. Returns the task record including id, sync_task_type, progress, started_at, and status.

list_all_metabase_ee_security_centers

List Metabase Enterprise security advisories with their match status against this instance. Returns each advisory with advisory_id, title, severity, match_status, published_at, remediation, affected_versions, and acknowledgement details.

get_single_metabase_ee_stale_by_id

List stale entities in a Metabase collection (id accepts the string `root` for the root collection) — entities last edited before a cutoff date, 6 months by default, returned in the same shape as collection items. Returns: id, model, name, description, last_edited_by, last_edited_at, last_used_at. Required: id.

list_all_metabase_remote_sync_branches

List Metabase remote-sync branch names from the configured source. Returns: items.

list_all_metabase_remote_sync_current_tasks

Get the current remote sync task in Metabase. Returns: id, sync_task_type, progress, started_at, ended_at, status, last_progress_report_at, conflicts, initiated_by, cancelled, error_message, version, outcome. Returns null when no sync task is active.

list_all_metabase_remote_sync_dirties

List all Metabase models with changes that have not been pushed to the remote sync source in any remote-synced collection. Returns a dirty array of changed models, each with id, name, model, sync_status, table_id, collection_id, created_at, and updated_at.

list_all_metabase_remote_sync_export_preflights

Run a dry-run export preflight in Metabase, previewing what pushing the current state to a remote-sync branch would do without writing anything. Returns: has_changes, clean, conflicts, summary, force_push_casualties, reason. Required: branch.

list_all_metabase_remote_sync_has_remote_changes

Check whether the Metabase Remote Sync remote branch has new changes that can be pulled. Returns: has_changes, remote_version, local_version, cached, branch_missing, revision, groups. Results are served from an in-memory cache; pass force-refresh to bypass it.

list_all_metabase_remote_sync_is_dirties

Check whether any remote-synced collection or collection item in Metabase has local changes that have not been pushed to the remote sync source. Returns: is_dirty.

list_all_metabase_semantic_search_status

Get the indexing status of the currently active semantic search index table in Metabase. Returns: indexed_count, total_est. Returns an empty map when no index is active or no pgvector database is configured.

create_a_metabase_remote_sync_create_branch

Create a new Metabase remote-sync branch from the current remote-sync branch and switch to it. Returns: message, status. Required: name. Requires superuser permissions.

create_a_metabase_remote_sync_export

Export the current state of the Metabase Remote Sync collection to a Source — fetching the latest changes, creating a branch or subdirectory, and committing and syncing the serialized collection. Returns: message, task_id. Required: branch.

create_a_metabase_remote_sync_import

Import Metabase content from the configured Remote Sync source, fetching the latest changes and loading them into the instance. Returns: message, status, task_id. Required: expected_branch. Fails with 400 if the Remote Sync collection has unsaved changes unless force is true.

metabase_remote_sync_settings_bulk_update

Update Metabase Remote Sync settings, such as the source URL, branch, sync type, and auto-import flag. Returns: success, task_id. Requires superuser access.

create_a_metabase_remote_sync_stash

Stash Metabase remote-sync changes to a new branch and switch the current branch to it. Returns: status, message, task_id. Required: new_branch, message.

create_a_metabase_remote_sync_test_connection

Test whether Metabase's Remote Sync credentials can reach the connected git repository. Returns: status. With an empty body, validates the currently saved URL and token; only checks connection and authentication, not branch existence.

create_a_metabase_ee_tenant

Create a new tenant in Metabase. Returns the created tenant including id, name, slug, is_active, member_count, tenant_collection_id, and attributes. Requires name and slug (slug must match ^[-_a-z0-9]{1,255}$). Required: name, slug.

get_single_metabase_ee_tenant_by_id

Get info about a tenant in Metabase. Returns: id, name, slug, is_active, tenant_collection_id, member_count, attributes. Required: id.

list_all_metabase_ee_tenants

List all tenants in Metabase. Returns each tenant with id, name, slug, is_active, member_count, and tenant_collection_id. Filter by status: all (default), deactivated, or active.

update_a_metabase_ee_tenant_by_id

Update a tenant in Metabase — can set its name, attributes, or whether the tenant is active. Returns the updated tenant including id, name, slug, is_active, member_count, tenant_collection_id, and attributes. Required: id.

create_a_metabase_ee_support_access_grant

Create a new Metabase support access grant. Returns the created grant object with its id and attributes. Requires a JSON request body. Only one active grant can exist at a time. Required: grant_duration_minutes.

list_all_metabase_ee_support_access_grants

List Metabase support access grants with optional filtering and pagination. Returns each grant with its id and attributes.

metabase_ee_support_access_grants_update_revoke

Revoke a Metabase support access grant by id. Returns the revoked grant with its id and attributes. Required: support_access_grant_id, id.

create_a_metabase_replacement_check_replace_source

Check whether a source entity in Metabase can be replaced by a target entity. Returns compatibility errors describing column mismatches, type mismatches, primary key mismatches, and foreign key mismatches. Requires source_entity_id, source_entity_type, target_entity_id, and target_entity_type. Required: source_entity_id, source_entity_type,…

create_a_metabase_replacement_replace_model_with_transform

Create a Metabase transform from a model, run it, and replace all usages of the model with the output table (the model is un-persisted into a saved question). Returns 202 with run_id for polling. Requires card_id, transform_name, and transform_target. On transform failure nothing changes; on source-swap failure the transform and output table are….…

create_a_metabase_replacement_replace_source

Replace all usages of a source entity with a target entity in Metabase asynchronously. Returns: run_id. Required: source_entity_id, source_entity_type, target_entity_id, target_entity_type. Rejects with 409 if a replacement is already running.

metabase_replacement_runs_cancel

Cancel a running source replacement in Metabase. Returns: success. Required: run_id.

get_single_metabase_replacement_run_by_id

Get the status of a Metabase source replacement run by id, e.g. to poll a run started asynchronously via the replace-source endpoint. Returns: id, status. Required: id.

list_all_metabase_replacement_runs

List Metabase source replacement runs, optionally filtered to only active runs. Returns replacement runs with: id, status.

create_a_metabase_scim_api_key

Create a new SCIM API key in Metabase, or refresh one that already exists; the first call is equivalent to enabling SCIM. Takes no request parameters. Returns a successful response whose body fields the vendor docs do not enumerate.

list_all_metabase_scim_api_keys

Fetch the SCIM API key for this Metabase instance if one exists. The key is returned in masked form only, since the unmasked value is unavailable after creation. Takes no request parameters; the vendor docs do not enumerate the response body fields.

create_a_metabase_scim_group

Create a SCIM group in Metabase. Returns the created group object including id, displayName, schemas, members, and meta. Required: displayName, schemas.

delete_a_metabase_scim_group_by_id

Delete a SCIM group in Metabase by id. Returns an empty 204 response on success. Required: id.

get_single_metabase_scim_group_by_id

Get a single SCIM group in Metabase by id. Returns: id, displayName, schemas, members, meta. Required: id.

list_all_metabase_scim_groups

List SCIM groups in Metabase. Returns group records including id, displayName, schemas, members, and meta.

update_a_metabase_scim_group_by_id

Update a SCIM group in Metabase by id. Returns the updated group object including id, displayName, schemas, members, and meta. Required: id, displayName, schemas.

create_a_metabase_scim_user

Create a single SCIM user in Metabase. Returns the created user record including id, userName, name, emails, active, and groups. Requires schemas, userName, name, and emails. Required: schemas, name, userName, emails.

get_single_metabase_scim_user_by_id

Get a single Metabase SCIM user by id. Returns the user record including id, userName, name, emails, active, and groups. Required: id.

list_all_metabase_scim_users

List Metabase SCIM users. Returns user records including id, userName, name, emails, active, and groups, optionally filtered with a SCIM filter expression and paginated with startIndex and count.

metabase_scim_users_partial_update

Activate or deactivate a Metabase SCIM user by applying specific replace operations; arbitrary patches are not supported. Returns the updated user record including id, userName, active, and emails. Required: user_id, schemas, Operations.

update_a_metabase_scim_user_by_id

Replace an existing Metabase SCIM user's record by id. Returns the updated user including id, userName, name, emails, active, and groups. Requires id, schemas, userName, name, and emails. Required: id, schemas, name, userName, emails.

create_a_metabase_security_center_acknowledge

Acknowledge multiple Metabase security advisories in one call, skipping ones already acknowledged. Returns one acknowledgment result per advisory, each with advisory_id, match_status, acknowledged_by, and acknowledged_at. Required: advisory_ids.

create_a_metabase_security_center_sync

Trigger an async security-center advisory sync and re-evaluation in Metabase. Returns: status. The request returns immediately, and it is a no-op if a sync is already running.

create_a_metabase_security_center_test_notification

Send a test notification through Metabase Security Center channels, optionally using the unsaved config from the dialog. Returns: success. Both email_recipients and slack_channel are optional; when omitted, the saved setting is used.

create_a_metabase_security_center_acknowledges_acknowledge

Acknowledge a Metabase security advisory, which stops repeat notifications for it. Returns the acknowledgement record including advisory_id, match_status, acknowledged_by, and acknowledged_at. Required: advisory_id.

create_a_metabase_serialization_export

Serialize and export a Metabase instance as a downloadable .tar.gz archive containing the serialized collections, data model, and settings plus an export.log manifest; on error, serialization logs are returned directly instead of a file. Returns a binary .tar.gz export archive (content-type-specific, no JSON body). All inputs are optional —…

create_a_metabase_serialization_import

Import a Metabase serialization archive to deserialize it into the instance. Returns the deserialization logs as a variable-shape listing. Required: file.

list_all_metabase_transforms_python_libraries

Get the Python library source file for user modules in Metabase (Enterprise transforms endpoint). Returns the Python source code stored at the given path — opaque file content, not enumerable as fields. Required: path.

metabase_transforms_python_libraries_bulk_update

Update the Python library source code for user modules in Metabase (Enterprise transforms endpoint). Returns the library content stored at the given path — opaque file content, not enumerable as fields. Requires path and source. Required: path, source.

metabase_dimensions_bulk_delete

Remove the dimension associated with a Metabase field by id. Returns an empty 204 response on success. Required: field_id.

create_a_metabase_dimension

Set the dimension for a Metabase field by id. Returns an empty 204 response on success. Required: field_id, id, name, type.

get_single_metabase_dimension_by_id

List a Metabase metric's curated dimensions. Returns: added, addable. Required: id.

update_a_metabase_dimension_by_id

Update a metric dimension's display_name, description, default_temporal_unit, or source column in Metabase. Returns the updated dimension object. The new source column must have the same effective type as the current one. Required: id, metric_id.

create_a_metabase_eid_translation_translate

Translate Metabase entity IDs to model IDs in a single batch lookup. Returns the translated model IDs keyed by the submitted entity IDs; the source documents no fixed response field structure. Required: entity_ids. Accepts no other body fields.

create_a_metabase_email_test

Send a test email in Metabase using the configured SMTP settings. Returns: ok.

metabase_emails_bulk_delete

Clear all email-related settings in Metabase, wiping the configured SMTP settings. Returns an empty 204 response on success.

metabase_emails_bulk_update

Update multiple Metabase email SMTP settings in a single call. Only the five email-smtp-* setting keys are accepted. Returns an empty 204 response on success.

get_single_metabase_embed_card_by_id

Fetch a Metabase Card via the signed-embed endpoint using a JWT signed with the embedding secret key whose resource is the question's card id. Returns the Card as id plus a content-specific attributes object; upstream docs do not enumerate its fields. Required: id.

get_single_metabase_embed_dashboard_by_id

Get a single embedded dashboard in Metabase by id. Returns the dashboard with id, created_at, and updated_at. Required: id.

list_all_metabase_embed_mcp_bootstraps

Get the bootstrap payload the Metabase MCP Apps iframe needs to mount, so its UI credential never authenticates a general REST endpoint. Returns: user, settings.

create_a_metabase_embed_mcp_drill

Stash a base64-encoded MBQL query for a pending Metabase embed MCP drill-through. Returns a handle UUID the iframe threads into the agent message so the render_drill_through tool can fetch it. Required: encodedQuery.

create_a_metabase_embed_mcp_feedback

Persist MCP Apps visualization feedback in Metabase. Returns an empty 204 response on success. Required: feedback, conversation_data.

list_all_metabase_embed_mcp_queries

Resolve a Metabase MCP Apps query handle — the UUID returned by visualize_query or render_drill_through — to the base64-encoded MBQL the iframe should render. Returns: query, prompt. Required: handle (valid UUID).

get_single_metabase_summary_by_id

Get the count and distinct count summary for a Metabase field. Returns the field's count and distinct count. Required: id.

create_a_metabase_embed_theme

Create a new embedding theme in Metabase. Returns the created theme's id, name, and settings. Required: name, settings.

delete_a_metabase_embed_theme_by_id

Delete an embedding theme in Metabase by id. Returns an empty 204 response on success. Required: id.

get_single_metabase_embed_theme_by_id

Get a single Metabase embedding theme by id. Returns the theme's id, name, and settings. Required: id.

list_all_metabase_embed_themes

List all embedding themes configured in Metabase. Returns each theme's id, name, and settings.

update_a_metabase_embed_theme_by_id

Update an embedding theme in Metabase by id. Returns the updated theme's id, name, and settings. Required: id.

create_a_metabase_embed_theme_copy

Copy an embedding theme in Metabase, creating a duplicate of an existing theme. Returns the copied theme with its id, name, and settings. Required: embed_theme_id, id.

create_a_metabase_embed_theme_seed_default

Seed Metabase's default embedding themes by submitting the light/dark theme payloads built by the frontend. Idempotent: once the defaults are seeded, subsequent calls are no-ops even if the seeded themes were deleted. Returns an empty 204 response on success. Required: themes.

list_all_metabase_embedding_sdk_react_18_hosts

List Metabase host apps that used the React embedding SDK with React 18, newest first, covering the last 4 days. Returns: host. At most 50 records.

get_single_metabase_eval_trace_by_id

Get the captured eval trace for a session in Metabase as JSONL, one span per line. Returns the eval-trace span stream; span fields are dynamic and not enumerated upstream. Required: id. Served only when the MB_AI_EVAL_CAPTURE setting is enabled.

create_a_metabase_field_table_id

Get the unique Metabase Table IDs for a list of Field IDs. Returns: table_ids. Required: field_ids.

create_a_metabase_frontend_error

Report a frontend error to Metabase for tracking. The call increments a Prometheus counter labeled with the given error type and returns no response body on success. Required: type.

get_single_metabase_geojson_by_id

Fetch a custom GeoJSON file registered in Metabase's custom-geojson setting. Metabase acts as a simple proxy for the file stored under the given key, so the response is the raw GeoJSON file itself as an opaque payload whose structure depends on that file. Required: id.

list_all_metabase_geojsons

Load a custom GeoJSON file in Metabase directly from a URL or file path, without first saving the custom map to the database. The file is forwarded as an opaque payload whose structure depends on the source file. Required: url.

create_a_metabase_glossary

Create a new glossary entry in Metabase. Returns the created entry with its id, term, and definition. Requires term and definition. Required: definition, term.

delete_a_metabase_glossary_by_id

Delete a Metabase glossary entry by id. Returns an empty 204 response on success. Required: id.

list_all_metabase_glossaries

List all Metabase glossary entries, optionally filtered by search term. Returns each entry's id, term, and definition.

update_a_metabase_glossary_by_id

Update an existing glossary entry in Metabase by id. Returns the updated entry with its id, term, and definition. Requires id, term, and definition. Required: id, definition, term.

metabase_google_settings_bulk_update

Bulk-update Google Sign-In related settings in Metabase by submitting one or more of google-auth-enabled, google-auth-client-id, and google-auth-auto-create-accounts-domain. Returns an empty response on success. No fields are required; send only the settings you want to change.

list_all_metabase_health_inspectors

List recent health check runs in Metabase. Returns: id, attributes.

get_single_metabase_remapping_by_id

Get the remapped display value for a Metabase Field value. Returns a [value, display-name] pair if a remapping exists, or [value] otherwise. Required: id, field_id, value, remapped-id.

list_all_metabase_remappings

Get the remapped display value for a Metabase metric dimension value. Returns a [value, display-name] pair if a remapping exists, or [value] otherwise. Required: metric_id, dimension_id, and value.

list_all_metabase_remappings_remapping

Fetch the remapped display name for a Metabase measure dimension. Returns a [value, display-name] pair, or a single-element [value] tuple when no remapping exists. Required: measure_id, dimension_id, and value.

get_single_metabase_search_by_id

Search for values of a Metabase field that start with a given value, as used to populate dashboard filter dropdowns. Returns matching field values. Required: id, field_id, search-id.

metabase_searches_search

Search Metabase for items such as dashboards, cards, tables, collections, and models matching a query string. Returns matching search results. Optional filters narrow results by models, collection, creator, timestamps, and archived state.

list_all_metabase_tiles_cards

Get a single map tile image for an embedded Card using the map visualization in Metabase. Returns the tile image as raw binary image data, not a JSON object. Required: token, zoom, x, y, latField, lonField.

list_all_metabase_tiles_cards_card

Get a single map tile image for a publicly-accessible Metabase Card using the map visualization. Returns the tile as raw binary image data, not a JSON object. Required: uuid, zoom, x, y, latField, lonField. Public sharing must be enabled.

get_single_metabase_transform_inspect_by_id

Discover the inspector lenses available for a Metabase transform. Returns the discovery payload with the transform's structural metadata and the lens types available for inspection; its field structure is defined by Metabase's internal inspector schema. Phase 1 of the transform inspector flow. Required: id.

get_single_metabase_transform_inspects_inspect_by_id

Get the full contents of a Metabase transform inspector lens for a transform. Returns: sections, cards, triggers. Required: id, transform_id.

create_a_metabase_transforms_python_test_run

Run a Metabase Python transform test: evaluate ad-hoc Python code on a sample of input data. Returns: logs, output, error. Intended for short runs for early feedback; input/output/timeout limits apply. Required: code, source_tables.

delete_a_metabase_upload_management_table_by_id

Delete an uploaded table from the database in Metabase by id, optionally archiving cards for which it is the primary source. Returns an empty 204 response on success. Required: id.

list_all_metabase_upload_management_tables

List all Metabase tables visible to the current user that were created by uploading a file. Returns uploaded Table records including id, created_at, and updated_at.

list_all_metabase_values

Get the distinct values of a Metabase field, including any user-defined human-readable remappings. Returns: values, field_id, has_more_values. Values are auto-created for eligible fields that do not have them yet. Required: field_id, id.

create_a_metabase_value

Update the values and optional human-readable display names of a Metabase field. Returns: values, field_id, has_more_values. Only fields with semantic type category, city, state, or country, or base type type/Boolean, are supported. Required: field_id, values.

list_all_metabase_values_dimension

List field values for a dimension of a metric in Metabase. Returns: values, field_id, has_more_values. Required: metric_id, dimension_key.

metabase_channels_slack_settings_metabot_update

Update the Metabot Slack settings in Metabase atomically. Returns: ok. Requires slack-connect-client-id, slack-connect-client-secret, and metabot-slack-signing-secret together; setting values needs the metabot-v3 feature, passing null clears them. Required: metabot-slack-signing-secret, slack-connect-client-id, slack-connect-client-secret.

create_a_metabase_conversation_fork

Fork a Metabase metabot conversation at an assistant message, returning a brand-new conversation that copies the thread from the start up to and including that message. Returns: conversation_id, created_at, title, user_id, forked_from_conversation_id, context_window_tokens, state, messages, saved_entities. Required: conversation_id, id, message_id.

create_a_metabase_conversation_saved_entity

Save a Metabot-generated chart from a conversation as a Metabase card, stamping the card's origin columns in the same request. Returns: id, name, dataset_query, display, metabot_chart_id, metabot_conversation_id, description, collection_id, dashboard_id, and 2 more. Required: conversation_id, id, card, chart_id.

get_single_metabase_conversation_title_by_id

Get the title generation status for a Metabase Metabot conversation. Returns: status, title. Required: id (conversation UUID).

create_a_metabase_dimension_add

Add dimensions to a Metabase metric. Each entry carries its UUID and mapping_target; the column-derived fields and mapping are recomputed server-side. Returns the updated list of dimensions including id, display_name, description, and mapping_target. Required: metric_id, id, dimensions.

create_a_metabase_document_generate_content

Generate a new piece of content to insert into a Metabase document via Metabot's AI agent. Returns: draft_card, error, description. Required: instructions. Legacy endpoint backed by the native Clojure agent.

create_a_metabase_index_request

Create a Metabase index request on a transform's target table. Returns the created request with id, transform_id, index_name, structured, status, error_message, created_at, updated_at, and last_executed_at. Requires structured and transform_id. Requires write access to the transform. Required: structured, transform_id.

delete_a_metabase_index_request_by_id

Delete a Metabase index request by id, marking it delete-pending; the physical index is only dropped when the target table is next rebuilt. Returns an empty 204 response on success. Required: id.

get_single_metabase_index_request_by_id

Get a single Metabase index request by id, e.g. to poll its build status. Returns: id, transform_id, index_name, structured, status, error_message, created_by, created_at, updated_at, last_executed_at. Required: id.

update_a_metabase_index_request_by_id

Replace the structured definition of a Metabase index request by id, marking it update-pending. Returns the updated request with id, transform_id, index_name, structured, status, error_message, created_at, updated_at, and last_executed_at. Requires id and structured. Required: id, structured.

list_all_metabase_indexes

List a Metabase transform's indexes: those physically present in the warehouse merged with the transform's managed index requests (each entry flagged metabase_managed). Returns: metabase_managed, present_in_warehouse, name, kind, key_columns, include_columns, is_unique, is_primary, is_valid, partial_predicate, and 2 more. Required: transform-id.

metabase_ldap_settings_bulk_update

Update Metabase's LDAP-related settings in bulk. Supply any subset of LDAP keys such as ldap-host, ldap-enabled, ldap-security, or ldap-group-mappings; only these LDAP keys are accepted. Returns an empty 204 response on success.

create_a_metabase_llm_extract_source

Parse the sources of a native SQL query in Metabase for a given database. Returns the permission-filtered referenced tables (each with id, name, schema, and column metadata) and card_ids extracted from template tags. Required: database_id, sql.

create_a_metabase_llm_generate_sql

Generate SQL from a natural language prompt in Metabase. Returns: sql, referenced_entities. Requires database_id and prompt; an LLM must be configured in admin settings and at least one table must be referenced (explicit @mention in the prompt or implicit from source_sql). Required: database_id, prompt.

list_all_metabase_llm_models

List the LLM models available from every configured Metabase connection, grouped by connection. Returns: key, name, models, error. A connection with rejected credentials comes back with an empty model list and an error message instead of failing the whole call.

list_all_metabase_llm_provider_types

List the Metabase LLM provider types a connection can be created for, with the credential fields each one needs. Returns: type, label, available, managed, default_model, models, requires, required_any, fields.

create_a_metabase_llm_provider

Create a provider connection in Metabase; credentials are verified before the connection is saved. Returns: config, env_fields, env_vars, key, name, source, usable. Required: type.

delete_a_metabase_llm_provider_by_id

Delete a provider connection in Metabase by id. Returns an empty 204 response on success. Required: id.

list_all_metabase_llm_providers

List the configured provider connections in Metabase, with their secrets masked. Returns: config, env_fields, env_vars, key, name, source, usable.

update_a_metabase_llm_provider_by_id

Update a provider connection in Metabase by id; secret fields echoed back masked keep their stored value. Returns: config, env_fields, env_vars, key, name, source, usable. Required: id.

metabase_logger_adjustments_bulk_delete

Undo any log level adjustments in Metabase, reverting all loggers to their pre-adjustment levels. Returns an empty 204 response on success. Takes no parameters.

create_a_metabase_logger_adjustment

Temporarily adjust Metabase logger levels for a fixed window of time. The adjustment applies for `duration` time units (`duration_unit`) and returns a generic successful response on success. Required: duration, duration_unit, log_levels.

list_all_metabase_logger_logs

List recent application log entries from Metabase. Returns log entries whose fields are defined by Metabase's logging layer and are not enumerated in the API spec. Takes no parameters.

list_all_metabase_logger_presets

List all known logger presets in Metabase. Returns preset objects with id, display_name, and a loggers array of logger name/level pairs.

create_a_metabase_measure

Create a new Measure in Metabase. The measure's table is derived from its definition. Returns: id, name, description, definition, archived. Required: name, definition.

get_single_metabase_measure_by_id

Get a single Metabase measure by id. Returns: id, name, description, definition, archived. Required: id.

list_all_metabase_measures

List all measures in Metabase. Returns an array of measure records with id, name, description, definition, and archived status.

update_a_metabase_measure_by_id

Update a Metabase measure by id. Returns the updated measure object including its id, name, description, definition, and archived status. Required: id and revision_message.

create_a_metabase_metabot_agent_streaming

Send a chat message to the Metabot LLM in Metabase via the AI Proxy. The LLM reply is returned as a streaming response rather than a fixed JSON object. Required: message, context, conversation_id.

get_single_metabase_metabot_conversation_by_id

Get a single Metabot conversation by id, including its flattened chat messages. Returns: conversation_id, created_at, title, user_id, context_window_tokens, state, messages, saved_entities, forked_from_conversation_id. Required: id.

list_all_metabase_metabot_conversations

List Metabot conversations visible in the current user's history, most-recent first. Returns per conversation: conversation_id, title, created_at, message_count, last_message_at, profile_id, user_id, forked_from_conversation_id.

create_a_metabase_metabot_feedback

Submit feedback on a Metabot message in Metabase. Optionally include issue_type and freeform_feedback when the feedback is negative. Returns an empty 204 response on success. Required: metabot_id, message_id, positive.

create_a_metabase_metabot_source_feedback

Persist Metabot source feedback for a Metabot answer in Metabase. Returns an empty 204 response on success. Requires message_id, metabot_id, source_id, source_type (table, card, or model), and positive. Required: message_id, metabot_id, positive, source_id, source_type.

get_single_metabase_metabot_by_id

Get a single Metabase metabot instance by id. Returns: id, collection_id, use_verified_content. Required: id.

list_all_metabase_metabots

List configured metabot instances in Metabase. Returns each metabot's id, collection_id, and use_verified_content.

update_a_metabase_metabot_by_id

Update a metabot instance's configuration in Metabase by id. Returns an empty 204 response on success. Required: id.

create_a_metabase_metric_breakout_value

POST /api/metric/breakout-values. Required: definition.

create_a_metabase_metric_dataset

Execute a metric or measure-based query in Metabase and stream the results. Returns the dataset result with query-specific fields determined by the submitted definition (expression tree, optional filters and projections). Required: definition.

get_single_metabase_metric_by_id

Get a Metabase metric by id. Returns the metric record with hydrated dimensions and dimension mappings. Returns: id, dimensions, dimension_mappings. Required: id.

list_all_metabase_metrics

List metrics in Metabase. Returns metric Cards (type='metric') visible to the current user, filtered by collection visibility. Returns: id, name, description, display, collection_id, dataset_query, visualization_settings, created_at, updated_at.

list_all_metabase_permissions_user_permissions

Get the current user's resolved Metabot permissions in Metabase, taking the most permissive value across all their groups. Returns: permissions.

metabase_prompt_suggestions_bulk_delete

Delete all prompt suggestions for a Metabot metabot. Returns an empty 204 response on success. Required: metabot_id.

delete_a_metabase_prompt_suggestion_by_id

Delete a single prompt suggestion by id for a Metabot metabot. Returns an empty 204 response on success. Required: id, metabot_id, prompt-id.

list_all_metabase_prompt_suggestions

List the prompt suggestions generated for a Metabot metabot. Returns each suggestion's id and attributes (upstream-defined suggestion fields). Required: metabot_id.

create_a_metabase_prompt_suggestions_regenerate

Regenerate prompt suggestions for a Metabot by removing any existing ones and generating new suggestions. Returns: status, prompt_count. Required: metabot_id. Fails when the instance's managed-AI usage limit is reached.

list_all_metabase_search_dimensions

Search values of a Metabase metric dimension that contain the query string. Returns matching values as [value] or [value, display-name] tuples in the field-values format. Required: metric_id, dimension_key, query, id, dimension-key.

list_all_metabase_search_dimensions_search

Search values of a Metabase measure dimension that contain the query string. Returns matching value tuples ([value] or [value, display-name]) in the same format as the field values API. Required: measure_id, dimension_key, query.

create_a_metabase_slack_event

Send a Slack activity payload to Metabot's Slack events endpoint so Metabot can respond to events in Slack. Accepts URL verification handshakes and event callbacks. Returns: body, headers, status. Required: type.

create_a_metabase_slack_interactive

POST /api/metabot/slack/interactive. Required: payload.

metabase_slack_settings_bulk_update

Update Slack-related settings (Slack app token and bug-report channel) in Metabase. A falsy or invalid token clears the Slack channel/user cache; a truthy, valid token refreshes it. Returns an empty 204 response on success.

create_a_metabase_document_public_link

Create a public link for a Metabase Document by generating a public UUID so it can be viewed without authentication. Returns: revision, groups. If the Document is already shared, the existing UUID is returned instead of a new one. Required: document_id. Public sharing must be enabled via the enable-public-sharing setting.

create_a_metabase_action_public_link

Create a public link for a Metabase action. Returns the public UUID (uuid) to use in publicly-accessible links, or the existing UUID if the action is already shared. Public sharing must be enabled. Required: action_id.

list_all_metabase_activity_summaries

Get the activity summary from Metabase. The endpoint takes no parameters; the upstream documentation does not enumerate the fields of the returned summary payload, so treat the response shape as opaque.

Why Truto

Why use Truto’s MCP server for Metabase

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 950+ 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.

Unified APIs

Unified APIs for Metabase

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Users

The User object represents a User.

View Docs

How It Works

From zero to integrated

Go live with Metabase in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Metabase account

Use Truto’s frontend SDK to connect your customer’s Metabase 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 Metabase

Truto’s Proxy API is a 1-to-1 mapping of the Metabase API. You call us, we call Metabase, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Metabase’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Metabase on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work with Metabase instances?

Metabase's REST API supports session-based authentication using username/password credentials, as well as API keys for programmatic access. Truto handles the authentication flow so your end users can securely connect their Metabase instances without you managing tokens or session renewal directly.

Which Truto Unified API is available for Metabase today?

Metabase is currently supported through Truto's Unified User Directory API, which covers user listing, creation, updates, and deactivation. Additional tools and unified API coverage (such as for cards, dashboards, and collections) can be built on request.

Does this work with both self-hosted and Metabase Cloud instances?

Yes. Since Metabase exposes the same REST API regardless of deployment model, Truto can connect to both self-hosted Metabase instances and Metabase Cloud — as long as the API endpoint is reachable and valid credentials are provided.

Can I manage Metabase permission groups through Truto?

Metabase's API exposes permission group management endpoints. While Truto's Unified User Directory API covers core user operations, group assignment and permission mapping capabilities can be built as custom tools on request to fit your specific workflow.

Are there rate limits I should be aware of on the Metabase API?

Metabase does not enforce strict published rate limits in the same way as large SaaS APIs, but self-hosted instances are limited by server resources, and aggressive polling can degrade performance. Truto handles pagination and request management to minimize load on your customers' instances.

What if I need to work with Metabase cards, dashboards, or query execution?

These are not covered by the Unified User Directory API, but Metabase's API supports full CRUD operations on cards, dashboards, collections, and query execution. Truto can build custom tools for these workflows on request — reach out to discuss your specific use case.

Metabase

Get Metabase integrated into your app

Our team understands what it takes to make a Metabase integration successful. A short, crisp 30 minute call with folks who understand the problem.