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 usUse Cases
Why integrate with Metabase
Common scenarios for SaaS companies building Metabase integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
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.
How It Works
From zero to integrated
Go live with Metabase in under an hour. No boilerplate, no maintenance burden.
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.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call 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.
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.
From the Blog
Metabase integration guides
Deep dives, architecture guides, and practical tutorials for building Metabase integrations.
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.