Metabase
An open-source business intelligence tool that allows you to ask questions about your data and visualize the results.
Authentication
This connector uses Token-based authentication.
info
Set up your connection in the Abstra Console before using it in your workflows.
How to use
Using the Smart Chat
Execute the action "CHOOSE_ONE_ACTION_BELOW" from my connector "YOUR_CONNECTOR_NAME" using the params "PARAMS_HERE".
Using the Web Editor
from abstra.connectors import run_connection_action
result = run_connection_action(
connection_name="your_connection_name",
action_name="your_action_name",
params={
"param1": "value1",
"param2": "value2"
})
Available Actions
This connector provides 602 actions:
| Action | Purpose | Parameters |
|---|---|---|
| get_api_action | Returns actions that can be used for QueryActions. By default lists all viewable actions. Pass optional ?model-id=model-id to limit to actions on a particular model. | model-id |
| post_api_action | Create a new action. | data required |
| get_api_action_public | Fetch a list of Actions with public UUIDs. These actions are publicly-accessible if public sharing is enabled. | No parameters |
| get_api_action_by_action_id | Fetch an Action. | action-id (integer) |
| delete_api_action_by_action_id | Delete an Action. | action-id (integer) |
| get_api_action_by_action_id_execute | Fetches the values for filling in execution parameters. Pass PK parameters and values to select. | action-id (integer) parameters (string) required |
| put_api_action_by_id | Update an Action. | id (integer) data required |
| post_api_action_by_id_execute | Execute the Action. parameters should be the mapped dashboard parameters with values. | id (integer) data required |
| post_api_action_by_id_public_link | Generate publicly-accessible links for this Action. Returns UUID to be used in public links. If this Action has already been shared, it will return the existing public link rather than creating a new one. Public sharing must be enabled. | id (integer) |
| delete_api_action_by_id_public_link | Delete the publicly-accessible link to this Dashboard. | id (integer) |
| get_api_activity_most_recently_viewed_dashboard | Get the most recently viewed dashboard for the current user. Returns a 204 if the user has not viewed any dashboards in the last 24 hours. | No parameters |
| get_api_activity_popular_items | Get the list of 5 popular things on the instance. Query takes 8 and limits to 5 so that if it finds anything archived, deleted, etc it can usually still get 5. | No parameters |
| get_api_activity_recent_views | Get a list of 100 models cards, models, tables, dashboards, and collections that the current user has been viewing most recently. Return a maximum of 20 model of each, if they've looked at at least 20. | No parameters |
| get_api_activity_recents | Get a list of recent items the current user has been viewing most recently under the :recents key. Allows for filtering by context: views or selections | context (array) required include_metadata required |
| post_api_activity_recents | Adds a model to the list of recently selected items. | data: { . context (string) . model (string) . model_id (integer) } (object) required |
| post_api_agent_v1_construct_query | Construct an MBQL query from a table or metric. Returns a base64-encoded MBQL query that can be used with the query API. For tables, supports: filters, fields, aggregations, group_by, order_by, limit. For metrics, supports: filters, group_by aggregation is defined by the metric. | data required |
| post_api_agent_v1_execute | Execute an MBQL query and return results. Accepts a base64-encoded MBQL query as returned by /v1/construct-query and executes it, returning results with column metadata. Response format: - On success: :data :cols ... :rows ... :row_count N :status :completed :running_time M - On failure: :status :failed :error 'message' ... Standard userspace query limits are enforced 2000 rows for simple queries, 10000 for aggregated. | data: { . query (string) } (object) required |
| get_api_agent_v1_metric_by_id | Get details for a metric by ID. | id (integer) with-default-temporal-breakout with-field-values with-queryable-dimensions with-segments |
| get_api_agent_v1_metric_by_id_field_by_field_id_values | Get statistics and sample values for a metric field. | id (integer) field-id (string) |
| get_api_agent_v1_ping | Health check endpoint for the Agent API. | No parameters |
| post_api_agent_v1_search | Search for tables and metrics. Supports both term-based and semantic search queries. Results are ranked using Reciprocal Rank Fusion when both query types are provided. | data: { . semantic_queries . term_queries } (object) required |
| get_api_agent_v1_table_by_id | Get details for a table by ID. | id (integer) with-field-values with-fields with-related-tables with-metrics with-measures with-segments |
| get_api_agent_v1_table_by_id_field_by_field_id_values | Get statistics and sample values for a table field. | id (integer) field-id (string) |
| get_api_alert | Fetch alerts which the current user has created or will receive, or all alerts if the user is an admin. The optional user_id will return alerts created by the corresponding user, but is ignored for non-admin users. | archived required user_id |
| get_api_alert_by_id | Fetch an alert by ID | id (integer) |
| delete_api_alert_by_id_subscription | For users to unsubscribe themselves from the given alert. | id (integer) |
| get_api_analytics_anonymous_stats | Anonymous usage stats. Endpoint for testing, and eventually exposing this to instance admins to let them see what is being phoned home. | No parameters |
| post_api_api_key | Create a new API key and an associated User with the provided name and group ID. | data: { . group_id (integer) . name (string) } (object) required |
| get_api_api_key | Get a list of API keys with the default scope. Non-paginated. | No parameters |
| get_api_api_key_count | Get the count of API keys in the DB with the default scope. | No parameters |
| put_api_api_key_by_id | Update an API key by changing its group and/or its name | id (integer) data: { . group_id . name } (object) required |
| delete_api_api_key_by_id | Delete an ApiKey | id (integer) |
| put_api_api_key_by_id_regenerate | Regenerate an API Key | id (integer) |
| get_api_automagic_dashboards_database_by_id_candidates | Return a list of candidates for automagic dashboards ordered by interestingness. | id (integer) |
| get_api_automagic_dashboards_model_index_by_model_index_id_primary_key_by_pk_id | Return an automagic dashboard for an entity detail specified by entity with id id and a primary key of indexed-value. | model-index-id (integer) pk-id (integer) |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query | Return an automagic dashboard for entity entity with id id. | entity (string) entity-id-or-query (string) show |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query_cell_by_cell_query | Return an automagic dashboard analyzing cell in automagic dashboard for entity entity defined by query cell-query. | entity (string) entity-id-or-query (string) cell-query show |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query_cell_by_cell_query_compare_by_comparison_entity_by_comparison_entity_id_or_query | Return an automagic comparison dashboard for cell in automagic dashboard for entity entity with id id defined by query cell-query; compared with entity comparison-entity with id comparison-entity-id-or-query.. | entity (string) entity-id-or-query (string) cell-query comparison-entity (string) comparison-entity-id-or-query (string) show |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query_cell_by_cell_query_rule_by_prefix_by_dashboard_template | Return an automagic dashboard analyzing cell in question with id id defined by query cell-query using dashboard-template dashboard-template. | entity (string) entity-id-or-query (string) prefix dashboard-template cell-query show |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query_cell_by_cell_query_rule_by_prefix_by_dashboard_template_compare_by_comparison_entity_by_comparison_entity_id_or_query | Return an automagic comparison dashboard for cell in automagic dashboard for entity entity with id id defined by query cell-query using dashboard-template dashboard-template; compared with entity comparison-entity with id comparison-entity-id-or-query.. | entity (string) entity-id-or-query (string) prefix dashboard-template cell-query comparison-entity (string) comparison-entity-id-or-query (string) show |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query_compare_by_comparison_entity_by_comparison_entity_id_or_query | Return an automagic comparison dashboard for entity entity with id id compared with entity comparison-entity with id comparison-entity-id-or-query. | entity-id-or-query (string) entity (string) comparison-entity (string) comparison-entity-id-or-query (string) show |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query_query_metadata | Return all metadata for an automagic dashboard for entity entity with id id. | entity (string) entity-id-or-query (string) |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query_rule_by_prefix_by_dashboard_template | Return an automagic dashboard for entity entity with id id using dashboard-template dashboard-template. | entity (string) entity-id-or-query (string) prefix dashboard-template show |
| get_api_automagic_dashboards_by_entity_by_entity_id_or_query_rule_by_prefix_by_dashboard_template_compare_by_comparison_entity_by_comparison_entity_id_or_query | Return an automagic comparison dashboard for entity entity with id id using dashboard-template dashboard-template; compared with entity comparison-entity with id comparison-entity-id-or-query.. | entity (string) entity-id-or-query (string) prefix dashboard-template comparison-entity (string) comparison-entity-id-or-query (string) show |
| get_api_bookmark | Fetch all bookmarks for the user | No parameters |
| put_api_bookmark_ordering | Sets the order of bookmarks for user. | data: { . orderings (array) } (object) required |
| post_api_bookmark_by_model_by_id | Create a new bookmark for user. | model (string) id (integer) |
| delete_api_bookmark_by_model_by_id | Delete a bookmark. Will delete a bookmark assigned to the user making the request by model and id. | model (string) id (integer) |
| get_api_bug_reporting_connection_pool_details | Returns database connection pool info for the current Metabase instance. | No parameters |
| get_api_bug_reporting_details | Returns version and system information relevant to filing a bug report against Metabase. | No parameters |
| get_api_cache | Return cache configuration. Supports pagination via limit and offset query parameters, and sorting via sort_column and sort_direction. | model (array) required collection id sort_column (string) required sort_direction (string) required |
| put_api_cache | Store cache configuration. | data: { . model (string) . model_id (integer) . strategy } (object) required |
| delete_api_cache | Delete cache configurations. | data: { . model (string) . model_id (array) } (object) required |
| post_api_cache_invalidate | Invalidate cache entries. Use it like /api/cache/invalidate?database=1 and dashboard=15 any number of database/dashboard/question can be supplied. and include=overrides controls whenever you want to invalidate cache for a specific cache configuration without touching all nested configurations, or you want your invalidation to trickle down to every card. | include database dashboard question |
| get_api_card | Get all the Cards. Option filter param f can be used to change the set of Cards that are returned; default is all, but other options include mine, bookmarked, database, table, using_model, using_segment, and archived. See corresponding implementation functions above for the specific behavior of each filter option. 📇 | f (string) required model_id |
| post_api_card | Create a new Card. Card type can be question, metric, or model. | data: { . visualization_settings (object) . dashboard_tab_id . entity_id . dataset_query (object) . parameter_mappings . name (string) . collection_position . result_metadata . collection_id . cache_ttl . type . display (string) . parameters . description . dashboard_id } (object) required |
| post_api_card_collections | Bulk update endpoint for Card Collections. Move a set of Cards with card_ids into a Collection with collection_id, or remove them from any Collections by passing a null collection_id. | data: { . card_ids (array) . collection_id } (object) required |
| get_api_card_embeddable | Fetch a list of Cards where enable_embedding is true. The cards can be embedded using the embedding endpoints and a signed JWT. | No parameters |
| post_api_card_pivot_by_card_id_query | Run the query associated with a Card. | card-id (integer) data: { . ignore_cache } (object) required |
| get_api_card_public | Fetch a list of Cards with public UUIDs. These cards are publicly-accessible if public sharing is enabled. | No parameters |
| get_api_card_by_card_id_params_by_param_key_search_by_query | Fetch possible values of the parameter whose ID is :param-key that contain :query. ;; fetch values for Card 1 parameter 'abc' that contain 'Orange'; GET /api/queries/1/params/abc/search/Orange Currently limited to first 1000 results. | card-id (integer) param-key (string) query (string) |
| get_api_card_by_card_id_params_by_param_key_values | Fetch possible values of the parameter whose ID is :param-key. ;; fetch values for Card 1 parameter 'abc' that are possible GET /api/queries/1/params/abc/values | card-id (integer) param-key (string) |
| post_api_card_by_card_id_public_link | Generate publicly-accessible links for this Card. Returns UUID to be used in public links. If this Card has already been shared, it will return the existing public link rather than creating a new one. Public sharing must be enabled. | card-id (integer) |
| delete_api_card_by_card_id_public_link | Delete the publicly-accessible link to this Card. | card-id (integer) |
| post_api_card_by_card_id_query | Run the query associated with a Card. | card-id data: { . collection_preview . dashboard_id . ignore_cache (boolean) } (object) required |
| post_api_card_by_card_id_query_by_export_format | Run the query associated with a Card, and return its results as a file in the specified format. parameters, pivot-results? and format-rows? should be passed as application/x-www-form-urlencoded form content or json in the body. This is because this endpoint is normally used to power 'Download Results' buttons that use HTML form actions. | card-id (integer) export-format (string) data: { . format_rows (boolean) . parameters . pivot_results (boolean) } (object) required |
| get_api_card_by_id | Get Card with ID. As of v57, returns the MBQL query dataset_query as MBQL 5; to return the query as MBQL 4 aka legacy MBQL instead, you can specify ?legacy-mbql=true. | id legacy-mbql |
| put_api_card_by_id | Update a Card. | id (integer) delete_old_dashcards data: { . enable_embedding . visualization_settings . dashboard_tab_id . collection_preview . dataset_query . parameter_mappings . embedding_type . name . archived . collection_position . embedding_params . result_metadata . collection_id . cache_ttl . type . display . parameters . description . dashboard_id } (object) required |
| delete_api_card_by_id | Hard delete a Card. To soft delete, use PUT /api/queries/:id | id (integer) |
| post_api_card_by_id_copy | Copy a Card, with the new name 'Copy of name' | id (integer) |
| get_api_card_by_id_dashboards | Get a list of :name ... :id ... pairs for all the dashboards this card appears in. | id (integer) |
| get_api_card_by_id_params_by_param_key_remapping | Fetch the remapped value for a given value of the parameter with ID :param-key. ;; fetch the remapped value for Card 1 parameter 'abc' for value 100 GET /api/queries/1/params/abc/remapping?value=100 | id (integer) param-key (string) value (string) required |
| get_api_card_by_id_query_metadata | Get all of the required query metadata for a card. | id |
| get_api_card_by_id_series | Fetches a list of compatible series with the card with id card_id. - last_cursor with value is the id of the last card from the previous page to fetch the next page. - query to search card by name. - exclude_ids to filter out a list of card ids | id (integer) last_cursor query exclude_ids |
| post_api_cards_dashboards | Get the dashboards that multiple cards appear in. The response is a sequence of maps, each of which has a card_id and dashboards. dashboard may include an :error key, either :unreadable-dashboard or :unwritable-dashboard. In the case of an unreadable-dashboard the dashboard details name, ID will NOT be present. | data: { . card_ids (array) } (object) required |
| post_api_cards_move | Moves a number of Cards to a single collection or dashboard. For now, just either succeed or fail as a batch - we can think more about error handling later down the road. | data: { . card_ids (array) . collection_id . dashboard_id } (object) required |
| get_api_channel | Get all channels | data: { . include_inactive } (object) required |
| post_api_channel | Create a channel | data: { . active . description . details (object) . name (string) . type } (object) required |
| post_api_channel_test | Test a channel connection | data: { . details (object) . type } (object) required |
| get_api_channel_by_id | Get a channel | id (integer) |
| put_api_channel_by_id | Update a channel | id (integer) data: { . active . description . details . name . type } (object) required |
| post_api_cloud_migration | Initiate a new cloud migration. | No parameters |
| get_api_cloud_migration | Get the latest cloud migration, if any. | No parameters |
| put_api_cloud_migration_cancel | Cancel any ongoing cloud migrations, if any. | No parameters |
| get_api_collection | Fetch a list of all Collections that the current user has read permissions for :can_write is returned as an additional property of each Collection so you can tell which of these you have write permissions for. By default, this returns non-archived Collections, but instead you can show archived ones by passing ?archived=true. By default, admin users will see all collections. To hide other user's collections pass in ?exclude-other-user-collections=true. If personal-only is true, the | archived required exclude-other-user-collections required namespace personal-only required |
| post_api_collection | Create a new Collection. | data: { . authority_level . description . name (string) . namespace . parent_id } (object) required |
| get_api_collection_graph | Fetch a graph of all Collection Permissions. | namespace |
| put_api_collection_graph | Do a batch update of Collections Permissions by passing in a modified graph. Will overwrite parts of the graph that are present in the request, and leave the rest unchanged. If the force query parameter is true, a revision number is not required. The provided graph will be persisted as-is, and has the potential to clobber other writes that happened since the last read. If the skip_graph query parameter is true, it will only return the current revision, not the entire permissions grap | force required skip-graph required data: { . groups (object) . namespace . revision } (object) required |
| get_api_collection_root | Return the 'Root' Collection object with standard details added | namespace |
| get_api_collection_root_dashboard_question_candidates | Find cards in the root collection that can be moved into dashboards in the root collection. Same as the above endpoint, but for the root collection | No parameters |
| get_api_collection_root_items | Fetch objects that the current user should see at their root level. As mentioned elsewhere, the 'Root' Collection doesn't actually exist as a row in the application DB: it's simply a virtual Collection where things with no collection_id exist. It does, however, have its own set of Permissions. This endpoint will actually show objects with no collection_id for Users that have Root Collection permissions, but for people without Root Collection perms, we'll just show the objects that have | models collection_type (string) include_can_run_adhoc_query required archived required namespace include_library required pinned_state sort_column sort_direction official_collections_first show_dashboard_questions |
| post_api_collection_root_move_dashboard_question_candidates | Move candidate cards to the dashboards they appear in for the root collection | data required |
| get_api_collection_trash | Fetch the trash collection, as in /api/collection/:trash-id | No parameters |
| get_api_collection_tree | Similar to GET /, but returns Collections in a tree structure, e.g. :name 'A' :below :card :dataset :children :name 'B' :name 'C' :here :dataset :card :below :dataset :card :children :name 'D' :here :dataset :children :name 'E' :name 'F' :here :card :children :name ' | exclude-archived required exclude-other-user-collections required include-library required namespace namespaces shallow required collection-id |
| get_api_collection_by_id | Fetch a specific Collection with standard details added | id |
| put_api_collection_by_id | Modify an existing Collection, including archiving or unarchiving it, or moving it. | id (integer) data: { . archived . authority_level . description . name . parent_id . type } (object) required |
| delete_api_collection_by_id | Deletes a collection permanently | id (integer) |
| get_api_collection_by_id_dashboard_question_candidates | Find cards in this collection that can be moved into dashboards in this collection. To be eligible, a card must only appear in one dashboard which is also in this collection, and must not already be a dashboard question. | id (integer) |
| get_api_collection_by_id_items | Fetch a specific Collection's items with the following options: models - only include objects of a specific set of models. If unspecified, returns objects of all models archived - when true, return archived objects instead of unarchived ones. Defaults to false. pinned_state - when is_pinned, return pinned objects only. when is_not_pinned, return non pinned objects only. when all, return everything. By default returns everything. include_can_ | id models archived required include_can_run_adhoc_query required pinned_state sort_column sort_direction official_collections_first show_dashboard_questions required |
| post_api_collection_by_id_move_dashboard_question_candidates | Move candidate cards to the dashboards they appear in. | id (integer) data required |
| get_api_comment | Get comments for an entity | target_type (string) required target_id (integer) required |
| post_api_comment | Create a new comment | data: { . child_target_id . content (object) . parent_comment_id . target_id (integer) . target_type (string) } (object) required |
| get_api_comment_mentions | Get a list of entities suitable for mentions. NOTE: only users for now. | No parameters |
| put_api_comment_by_comment_id | Update a comment | comment-id (integer) data: { . content (object) . is_resolved (boolean) } (object) required |
| delete_api_comment_by_comment_id | Soft delete a comment | comment-id (integer) |
| post_api_comment_by_comment_id_reaction | Toggle a reaction on a comment | comment-id (integer) data: { . emoji (string) } (object) required |
| get_api_dashboard | This endpoint is currently unused by the Metabase frontend and may be out of date with the rest of the application. It only exists for backwards compatibility and may be removed in the future. Get Dashboards. With filter option f default all, restrict results as follows: all - Return all Dashboards. mine - Return Dashboards created by the current user. archived - Return Dashboards that have been archived. By default, these are excluded. | f |
| post_api_dashboard | Create a new Dashboard. | data: { . cache_ttl . collection_id . collection_position . description . name (string) . parameters } (object) required |
| get_api_dashboard_embeddable | Fetch a list of Dashboards where enable_embedding is true. The dashboards can be embedded using the embedding endpoints and a signed JWT. | No parameters |
| get_api_dashboard_params_valid_filter_fields | Utility endpoint for powering Dashboard UI. Given some set of filtered Field IDs presumably Fields used in parameters and a set of filtering Field IDs that will be used to restrict values of filtered Fields, for each filtered Field ID return the subset of filtering Field IDs that would actually be used in a chain filter query with these Fields. e.g. in a chain filter query like GET /api/dashboard/10/params/PARAM_1/values?PARAM_2=100 Assume PARAM_1 maps to Field 1 and PARAM_2 maps | filtered (array) required filtering |
| post_api_dashboard_pivot_by_dashboard_id_dashcard_by_dashcard_id_card_by_card_id_query | Run a pivot table query for a specific DashCard. | dashboard-id (integer) dashcard-id (integer) card-id (integer) data: { . parameters } (object) required |
| get_api_dashboard_public | Fetch a list of Dashboards with public UUIDs. These dashboards are publicly-accessible if public sharing is enabled. | No parameters |
| post_api_dashboard_save | Save a denormalized description of dashboard. | No parameters |
| post_api_dashboard_save_collection_by_parent_collection_id | Save a denormalized description of dashboard into collection with ID :parent-collection-id. | parent-collection-id (integer) |
| post_api_dashboard_by_dashboard_id_dashcard_by_dashcard_id_card_by_card_id_query | Run the query associated with a Saved Question Card in the context of a Dashboard that includes it. | dashboard-id (integer) dashcard-id (integer) card-id (integer) data: { . dashboard_load_id . parameters } (object) required |
| post_api_dashboard_by_dashboard_id_dashcard_by_dashcard_id_card_by_card_id_query_by_export_format | Run the query associated with a Saved Question Card in the context of a Dashboard that includes it, and return its results as a file in the specified format. parameters should be passed as query parameter encoded as a serialized JSON string this is because this endpoint is normally used to power 'Download Results' buttons that use HTML form actions. | dashboard-id (integer) dashcard-id (integer) card-id (integer) export-format (string) data: { . format_rows (boolean) . parameters . pivot_results (boolean) } (object) required |
| get_api_dashboard_by_dashboard_id_dashcard_by_dashcard_id_execute | Fetches the values for filling in execution parameters. Pass PK parameters and values to select. | dashboard-id (integer) dashcard-id (integer) parameters (string) |
| post_api_dashboard_by_dashboard_id_dashcard_by_dashcard_id_execute | Execute the associated Action in the context of a Dashboard and DashboardCard that includes it. parameters should be the mapped dashboard parameters with values. extra_parameters should be the extra, user entered parameter values. | dashboard-id (integer) dashcard-id (integer) data: { . parameters } (object) required |
| post_api_dashboard_by_dashboard_id_public_link | Generate publicly-accessible links for this Dashboard. Returns UUID to be used in public links. If this Dashboard has already been shared, it will return the existing public link rather than creating a new one. Public sharing must be enabled. | dashboard-id (integer) |
| delete_api_dashboard_by_dashboard_id_public_link | Delete the publicly-accessible link to this Dashboard. | dashboard-id (integer) |
| post_api_dashboard_by_from_dashboard_id_copy | Copy a Dashboard. | from-dashboard-id (integer) data: { . collection_id . collection_position . description . is_deep_copy . name } (object) required |
| get_api_dashboard_by_id | Get Dashboard with ID. | id |
| delete_api_dashboard_by_id | Hard delete a Dashboard. To soft delete, use PUT /api/dashboard/:id This will remove also any questions/models/segments/metrics that use this database. | id (integer) |
| put_api_dashboard_by_id | Update a Dashboard, and optionally the dashcards and tabs of a Dashboard. The request body should be a JSON object with the same structure as the response from GET /api/dashboard/:id. | id (integer) data: { . points_of_interest . enable_embedding . width (string) . embedding_type . show_in_getting_started . position . name . archived . collection_position . embedding_params . tabs . collection_id . cache_ttl . caveats . parameters . dashcards . description } (object) required |
| put_api_dashboard_by_id_cards | DEPRECATED -- Use the PUT /api/dashboard/:id endpoint instead. Update Cards and Tabs on a Dashboard. Request body should have the form: :cards :id ... ; DashboardCard ID :size_x ... :size_y ... :row ... :col ... :parameter_mappings ... :series :id 123 | id (integer) data: { . cards (array) . tabs } (object) required |
| get_api_dashboard_by_id_items | Get Dashboard with ID. | id (integer) |
| get_api_dashboard_by_id_params_by_param_key_remapping | Fetch the remapped value for a given value of the parameter with ID :param-key. ;; fetch the remapped value for Dashboard 1 parameter 'abc' for value 100 GET /api/dashboard/1/params/abc/remapping?value=100 | id (integer) param-key (string) value (string) required |
| get_api_dashboard_by_id_params_by_param_key_search_by_query | Fetch possible values of the parameter whose ID is :param-key that contain :query. Optionally restrict these values by passing query parameters like other-parameter=value e.g. ;; fetch values for Dashboard 1 parameter 'abc' that contain 'Cam' and are possible when parameter 'def' is set ;; to 100 GET /api/dashboard/1/params/abc/search/Cam?def=100 Currently limited to first 1000 results. | id (integer) param-key (string) query (string) |
| get_api_dashboard_by_id_params_by_param_key_values | Fetch possible values of the parameter whose ID is :param-key. If the values come directly from a query, optionally restrict these values by passing query parameters like other-parameter=value e.g. ;; fetch values for Dashboard 1 parameter 'abc' that are possible when parameter 'def' is set to 100 GET /api/dashboard/1/params/abc/values?def=100 | id (integer) param-key (string) |
| get_api_dashboard_by_id_query_metadata | Get all of the required query metadata for the cards on dashboard. | id |
| get_api_dashboard_by_id_related | Return related entities. | id (integer) |
| post_api_data_studio_table_discard_values | Batch version of /table/:id/discard_values. Takes an abstract table selection as /table/edit does. | data: { . database_ids (array) . schema_ids (array) . table_ids (array) } (object) required |
| post_api_data_studio_table_edit | Bulk updating tables. | data: { . data_authority . data_layer . table_ids (array) . owner_email . owner_user_id . data_source . schema_ids (array) . entity_type . database_ids (array) } (object) required |
| post_api_data_studio_table_rescan_values | Batch version of /table/:id/rescan_values. Takes an abstract table selection as /table/edit does. | data: { . database_ids (array) . schema_ids (array) . table_ids (array) } (object) required |
| post_api_data_studio_table_selection | Gets information about selected tables | data: { . database_ids (array) . schema_ids (array) . table_ids (array) } (object) required |
| post_api_data_studio_table_sync_schema | Batch version of /table/:id/sync_schema. Takes an abstract table selection as /table/edit does. - Currently checks policy before returning so you might receive a 4xx on e.g. AuthZ policy failure - The sync itself is however, asynchronous. This call may return before all tables synced. | data: { . database_ids (array) . schema_ids (array) . table_ids (array) } (object) required |
| get_api_database | Fetch all Databases. include=tables means we should hydrate the Tables belonging to each DB. Default: false. saved means we should include the saved questions virtual database. Default: false. include_editable_data_model will only include DBs for which the current user has data model editing permissions. If include=tables, this also applies to the list of tables in each DB. Should only be used if Enterprise Edition code is available the advanced-permissions feature is enabled | include include_analytics required saved required include_editable_data_model required exclude_uneditable_details required include_only_uploadable required router_database_id can-query can-write-metadata |
| post_api_database | Add a new Database. | data: { . provider_name . name (string) . is_on_demand . cache_ttl . engine (string) . details (object) . is_full_sync . connection_source . auto_run_queries . schedules } (object) required |
| post_api_database_sample_database | Add the sample database as a new Database. | No parameters |
| post_api_database_validate | Validate that we can connect to a database given a set of details. | data: { . details (object) } (object) required |
| get_api_database_by_id | Get a single Database with id. Optionally pass ?include=tables or ?include=tables.fields to include the Tables belonging to this database, or the Tables and Fields, respectively. If the requestor has write permissions for the DB i.e. is an admin or has data model permissions, then certain inferred secret values will also be included in the returned details see metabase.secrets.models.secret/expand-db-details-inferred-secret-values for full details. Passing include_editable_data_mod | id (integer) include include_editable_data_model (boolean) exclude_uneditable_details (boolean) |
| put_api_database_by_id | Update a Database. | id (integer) data: { . points_of_interest . provider_name . write_data_details . settings . name . cache_ttl . engine . details . auto_run_queries . caveats . refingerprint . schedules . description } (object) required |
| delete_api_database_by_id | Delete a Database. | id (integer) |
| get_api_database_by_id_autocomplete_suggestions | Return a list of autocomplete suggestions for a given prefix, or substring. Should only specify one, but substring will have priority if both are present. This is intended for use with the ACE Editor when the User is typing raw SQL. Suggestions include matching Tables and Fields in this Database. Tables are returned in the format table_name 'Table'; When Fields have a semantic_type, they are returned in the format field_name 'table_name base_type semantic_type' When Fields lack a s | id (integer) prefix substring |
| get_api_database_by_id_card_autocomplete_suggestions | Return a list of Card autocomplete suggestions for a given query in a given Database. This is intended for use with the ACE Editor when the User is typing in a template tag for a Card, e.g. .... | id (integer) query (string) required include_dashboard_questions (boolean) |
| post_api_database_by_id_discard_values | Discards all saved field values for this Database. | id (integer) |
| post_api_database_by_id_dismiss_spinner | Manually set the initial sync status of the Database and corresponding tables to be complete see 20863 | id (integer) |
| get_api_database_by_id_fields | Get a list of all Fields in Database. | id (integer) |
| get_api_database_by_id_healthcheck | Reports whether the database can currently connect | id (integer) connection-type (string) |
| get_api_database_by_id_idfields | Get a list of all primary key Fields for Database. | id (integer) |
| get_api_database_by_id_metadata | Get metadata about a Database, including all of its Tables and Fields. Returns DB, fields, and field values. By default only non-hidden tables and fields are returned. Passing include_hidden=true includes them. Passing include_editable_data_model will only return tables for which the current user has data model editing permissions, if Enterprise Edition code is available and a token with the advanced-permissions feature is present. In addition, if the user has no data access for the DB | id (integer) include_hidden required include_editable_data_model required remove_inactive required skip_fields required |
| post_api_database_by_id_permission_workspace_check | Check if database's connection has the required permissions to manage workspaces. By default it'll return the cached permission check. | id (integer) cached (boolean) |
| post_api_database_by_id_rescan_values | Trigger a manual scan of the field values for this Database. | id (integer) |
| get_api_database_by_id_schema | Return a list of Tables for a Database whose schema is nil or an empty string. Optional filters: - can-query=true - filter to only tables the user can query - can-write-metadata=true - filter to only tables the user can edit metadata for | id (integer) include_hidden required include_editable_data_model required can-query can-write-metadata |
| get_api_database_by_id_schema_by_schema | Returns a list of Tables for the given Database id and schema. Optional filters: - can-query=true - filter to only tables the user can query - can-write-metadata=true - filter to only tables the user can edit metadata for | id (integer) schema (string) include_hidden required include_editable_data_model required can-query can-write-metadata |
| get_api_database_by_id_schemas | Returns a list of all the schemas with tables found for the database id. Excludes schemas with no tables. Optional filters: - can-query=true - filter to only schemas containing tables the user can query - can-write-metadata=true - filter to only schemas containing tables the user can edit metadata for | id (integer) include_editable_data_model required include_hidden required can-query can-write-metadata include_workspace required |
| get_api_database_by_id_settings_available | Get all database-local settings and their availability for the given database. | id (integer) |
| post_api_database_by_id_sync_schema | Trigger a manual update of the schema metadata for this Database. | id (integer) |
| get_api_database_by_id_syncable_schemas | Returns a list of all syncable schemas found for the database id. | id (integer) |
| get_api_database_by_id_usage_info | Get usage info for a database. Returns a map with keys are models and values are the number of entities that use this database. | id (integer) |
| get_api_database_by_virtual_db_datasets | Returns a list of all the datasets found for the saved questions virtual database. | virtual-db (string) |
| get_api_database_by_virtual_db_datasets_by_schema | Returns a list of Tables for the datasets virtual database. | virtual-db (string) schema (string) |
| get_api_database_by_virtual_db_metadata | Endpoint that provides metadata for the Saved Questions 'virtual' database. Used for fooling the frontend and allowing it to treat the Saved Questions virtual DB just like any other database. | virtual-db (string) |
| get_api_database_by_virtual_db_schema_by_schema | Returns a list of Tables for the saved questions virtual database. | virtual-db (string) schema (string) |
| get_api_database_by_virtual_db_schemas | Returns a list of all the schemas found for the saved questions virtual database. | virtual-db (string) |
| post_api_dataset | Execute a query and retrieve the results in the usual format. The query will not use the cache. | data: { . database } (object) required |
| post_api_dataset_native | Fetch a native version of an MBQL query. | data: { . database (integer) . pretty } (object) required |
| post_api_dataset_parameter_remapping | Return the remapped parameter values for cards or dashboards that are being edited. | data: { . field_ids . parameter (object) . value } (object) required |
| post_api_dataset_parameter_search_by_query | Return parameter values for cards or dashboards that are being edited. Expects a query string at ?query=foo. | query (string) data: { . field_ids . parameter (object) } (object) required |
| post_api_dataset_parameter_values | Return parameter values for cards or dashboards that are being edited. | data: { . field_ids . parameter (object) } (object) required |
| post_api_dataset_pivot | Generate a pivoted dataset for an ad-hoc query | data: { . database (integer) } (object) required |
| post_api_dataset_query_metadata | Get all of the required query metadata for an ad-hoc query. You can pass :settings :include-sensitive-fields true in the query to include fields with visibility_type :sensitive in the response. | data: { . database (integer) . settings } (object) required |
| post_api_dataset_by_export_format | Execute a query and download the result data as a file in the specified format. | export-format (string) data: { . format_rows (boolean) . pivot_results (boolean) . query (object) . visualization_settings (object) } (object) required |
| get_api_document | Gets existing Documents. | No parameters |
| post_api_document | Create a new Document. | data: { . cards . collection_id . collection_position . document . name (string) } (object) required |
| get_api_document_public | List all Documents that have public links. Returns a sequence of Documents that have been publicly shared. Each Document includes its :id, :name, and :public_uuid. Documents are only actually accessible via the public endpoint if public sharing is currently enabled. Archived Documents are excluded from the results. This endpoint is used to populate the public links listing in the Admin settings UI. Requires superuser permissions. Public sharing must be enabled via the enable-public- | No parameters |
| get_api_document_by_document_id | Returns an existing Document by ID. | document-id (integer) |
| put_api_document_by_document_id | Updates an existing Document. | document-id (integer) data: { . archived . cards . collection_id . collection_position . document . name (string) } (object) required |
| delete_api_document_by_document_id | Permanently deletes an archived Document. | document-id (integer) |
| post_api_document_by_document_id_card_by_card_id_query_by_export_format | Download query results for a Card embedded in a Document. Returns query results in the requested format. The user must have read access to the document to download results. If the card's query fails, standard query error responses are returned. Route parameters: - document-id: ID of the document containing the card - card-id: ID of the card to download results from - export-format: Output format csv, xlsx, json Body parameters snake_case: - parameters: Optional query parameter | document-id (integer) card-id (integer) export-format (string) data: { . format_rows (boolean) . parameters . pivot_results (boolean) } (object) required |
| post_api_document_by_document_id_public_link | Generate a publicly-accessible UUID for a Document. Creates a public link that allows viewing the Document without authentication. If the Document already has a public UUID, returns the existing one rather than generating a new one. This enables sharing the Document via GET /api/ee/public/document/:uuid. Returns a map containing :uuid the public UUID string. Requires superuser permissions. Public sharing must be enabled via the enable-public-sharing setting. | document-id (integer) |
| delete_api_document_by_document_id_public_link | Remove the public link for a Document. Deletes the public UUID from the Document, making it no longer accessible via the public sharing endpoint. This revokes public access to the Document - the existing public link will no longer work. Returns a 204 No Content response on success. Requires superuser permissions. Public sharing must be enabled via the enable-public-sharing setting. Throws a 404 if the Document doesn't exist, is archived, or doesn't have a public link. | document-id (integer) |
| post_api_document_by_from_document_id_copy | Copy a Document. | from-document-id (integer) data: { . collection_id . collection_position . name } (object) required |
| post_api_ee_action_v2_execute | Execute an action with a single input. Takes: - action - an identifier or an expression for what we want to execute. - scope - where the action is being invoked from. - input - a single map. currently these are typically a database table row pk, or query result. - params optional - a map of values for the parameters taken by the action's mapping. The input and params are used by the relevant mapping to calculate a map argument to the underly | data: { . action . input (object) . params (object) . scope } (object) required |
| post_api_ee_action_v2_execute_bulk | Execute an action with multiple inputs. This is typically more efficient than calling execute with each input individually, for example by performing batch SQL operations. Takes: - action - an identifier or an expression for what we want to execute. - scope - where the action is being invoked from. - inputs - a list of maps. currently these are typically a database table row pk, or query result. - params optional - a map of values for the | data: { . action . inputs (array) . params (object) . scope } (object) required |
| post_api_ee_action_v2_execute_form | Temporary endpoint for describing an actions parameters such that they can be presented correctly in a modal ahead of execution. | No parameters |
| get_api_ee_advanced_permissions_application_graph | Fetch a graph of Application Permissions. | No parameters |
| put_api_ee_advanced_permissions_application_graph | Do a batch update of Application Permissions by passing a modified graph. | skip-graph required force required data: { } (object) required |
| get_api_ee_advanced_permissions_impersonation | Fetch a list of all Impersonation policies currently in effect, or a single policy if both group_id and db_id are provided. | group_id db_id |
| delete_api_ee_advanced_permissions_impersonation_by_id | Delete a Connection Impersonation entry. | id (integer) |
| post_api_ee_ai_entity_analysis_analyze_chart | Analyze a chart image using an AI vision model. This function sends the image data to a separate external AI service for analysis. | data: { . description . image_base64 (string) . name . timeline_events } (object) required |
| post_api_ee_ai_sql_fixer_fix | Suggest fixes for a SQL query. | data: { . error_message (string) . query (object) } (object) required |
| post_api_ee_ai_sql_generation_generate | Generate a SQL query. | data: { . database_id (integer) . prompt (string) } (object) required |
| post_api_ee_audit_app_analytics_dev_export | Export analytics content as a .tar.gz file for local development. Only available when MB_ANALYTICS_DEV_MODE=true. Returns a tarball containing the analytics YAMLs in canonical format, ready to commit to source control. Requires superuser permissions. | No parameters |
| get_api_ee_audit_app_user_audit_info | Gets audit info for the current user if he has permissions to access the audit collection. Otherwise return an empty map. | No parameters |
| delete_api_ee_audit_app_user_by_id_subscriptions | Delete all Alert and DashboardSubscription subscriptions for a User i.e., so they will no longer receive them. Archive all Alerts and DashboardSubscriptions created by the User. Only allowed for admins or for the current user. | id (integer) |
| post_api_ee_autodescribe_card_summarize | Summarize a question. | data: { . visualization_settings (object) . dataset . dataset_query (object) . parameter_mappings . collection_position . result_metadata . collection_id . cache_ttl . display (string) . parameters . description } (object) required |
| post_api_ee_autodescribe_dashboard_summarize_by_id | Provide a summary of a dashboard. | id (integer) |
| get_api_ee_billing | Get billing information. This acts as a proxy between metabase-billing-info-url and the client, using the embedding token and signed in user's email to fetch the billing information. | No parameters |
| get_api_ee_cloud_add_ons_addons | Get addons information from the Metabase Store API. | No parameters |
| get_api_ee_cloud_add_ons_plans | Get plans information from the Metabase Store API. | No parameters |
| post_api_ee_cloud_add_ons_by_product_type | Purchase an add-on. | product-type (string) data: { . quantity . terms_of_service } (object) required |
| post_api_ee_cloud_proxy_by_operation_id | Proxy a call to the Metabase Store API via harbormaster client. This endpoint is used only for hosted instances, and calls Harbormaster Store using a OpenAPI client. :operation-id is the operation-id of the Harbormaster Store endpoint. All parameters for the operation are taken in the POST body. | operation-id (string) data required |
| get_api_ee_content_translation_csv | Provides content translation dictionary in CSV | No parameters |
| get_api_ee_content_translation_dictionary | Fetch the content translation dictionary for authenticated users auth-based embedding flows. | locale (string) required |
| get_api_ee_content_translation_dictionary_by_token | Fetch the content translation dictionary via a JSON Web Token signed with the embedding-secret-key. | token (string) |
| post_api_ee_content_translation_upload_dictionary | Upload a CSV of content translations | No parameters |
| post_api_ee_data_studio_table_publish_tables | Set collection for each of selected tables and all upstream dependencies recursively. | data: { . database_ids (array) . schema_ids (array) . table_ids (array) } (object) required |
| post_api_ee_data_studio_table_unpublish_tables | Unset collection for each of selected tables and all downstream dependents recursively. | data: { . database_ids (array) . schema_ids (array) . table_ids (array) } (object) required |
| post_api_ee_database_replication_connection_by_database_id | Create a new PG replication connection for the specified database. | database-id (integer) data: { . replicationSchemaFilters (object) } (object) required |
| delete_api_ee_database_replication_connection_by_database_id | Delete PG replication connection for the specified database. | database-id (integer) |
| post_api_ee_database_replication_connection_by_database_id_preview | Return info about pg-replication connection that is about to be created. | database-id (integer) data: { . replicationSchemaFilters (object) } (object) required |
| post_api_ee_database_routing_destination_database | Create new Destination Databases. Note that unlike the normal POST /api/database endpoint, does NOT check the details before adding the Database. This is OK, it's not an invariant that all database details are always valid, but it's something to note. | check_connection_details (boolean) data: { . destinations (array) . router_database_id (integer) } (object) required |
| put_api_ee_database_routing_router_database_by_id | Updates an existing Database with the user_attribute to route on. Will either: - turn an existing Database into a Router database - change the user_attribute used to route for an existing Router database, or - turn a Router database into a regular Database depending on the value of user_attribute | id (integer) data: { . user_attribute } (object) required |
| post_api_ee_dependencies_check_card | Check a proposed edit to a card, and return the card IDs for those cards this edit will break. | data: { . dataset_query . parameter_mappings . id . name . database_id . document_id . result_metadata . collection_id . type . parameters . description . dashboard_id } (object) required |
| post_api_ee_dependencies_check_snippet | Check a proposed edit to a native snippet, and return the cards, etc. which will be broken. | data: { . content (string) . id (integer) . name } (object) required |
| post_api_ee_dependencies_check_transform | Check a proposed edit to a transform, and return the card, transform, etc. IDs for things that will break. | data: { . id (integer) . name (string) . source . target } (object) required |
| get_api_ee_dependencies_graph | This endpoint takes an :id and a supported entity :type, and returns a graph of all its upstream dependencies. The graph is represented by a list of :nodes and a list of :edges. Each node has an :id, :type, :data which depends on the node type, and a map of :dependent_counts per entity type. Each edge is a :model/Dependency. Optional :archived parameter controls whether entities in archived collections are included: - false default: Excludes entities in archived collections - true: In | id (integer) type (string) archived (boolean) |
| get_api_ee_dependencies_graph_breaking | Returns a list of entities that are breaking other entities sources of errors. These are tables or cards that other entities depend on, where those dependents have validation errors traced back to this source entity. Accepts optional parameters for filtering: - types: List of source entity types - only :card or :table default: both - card-types: List of card types to include when filtering cards e.g., :question :model :metric - query: Search string to filter by name or locatio | types card-types query (string) archived (boolean) include-personal-collections (boolean) sort-column (string) sort-direction (string) |
| get_api_ee_dependencies_graph_broken | Returns the broken dependents for a specific source entity. These are entities that have validation errors traced back to the specified source. Required parameters: - id: The ID of the source entity - type: The type of the source entity card, table Optional parameters: - dependent-types: Dependency types to filter by. Can be single value or array. - dependent-card-types: Card types to filter by when dependent-types includes :card. - include-personal-collections: Include | id (integer) required type (string) required dependent-types dependent-card-types include-personal-collections (boolean) sort-column (string) sort-direction (string) |
| get_api_ee_dependencies_graph_dependents | Returns a list of dependents for the specified entity. Required parameters: - id: The ID of the entity - type: The type of the entity card, table, dashboard, etc. Optional parameters: - dependent-types: Dependency types to filter by. Can be single value or array. If not provided, returns all types. Example: ?dependent-types=card and dependent-types=dashboard - dependent-card-types: Card types to filter by when dependent-types includes :card. Ignored if dependent-typ | id (integer) required type (string) required dependent-types dependent-card-types archived (boolean) broken (boolean) query (string) include-personal-collections (boolean) sort-column (string) sort-direction (string) |
| get_api_ee_dependencies_graph_unreferenced | Returns a list of all unreferenced items in the instance. An unreferenced item is one that is not a dependency of any other item. Accepts optional parameters for filtering: - types: List of entity types to include e.g., :card :transform :snippet :dashboard - card-types: List of card types to include when filtering cards e.g., :question :model :metric - query: Search string to filter by name or location - archived: Controls whether archived entities are included - include-pe | types card-types query (string) archived (boolean) include-personal-collections (boolean) sort-column (string) sort-direction (string) |
| put_api_ee_email_override | Update multiple cloud email Settings. You must be a superuser or have setting permission to do this. Calling this automatically sets cloud-smtp-enabled to true if the settings are valid. | data: { . email-smtp-host-override . email-smtp-password-override . email-smtp-port-override . email-smtp-security-override . email-smtp-username-override } (object) required |
| delete_api_ee_email_override | Clear all cloud email related settings. You must be a superuser or have setting permission to do this. | No parameters |
| get_api_ee_embedding_hub_checklist | Get the embedding hub checklist status, indicating which setup steps have been completed. | No parameters |
| post_api_ee_gsheets_connection | Hook up a new google drive folder or sheet that will be watched and have its content ETL'd into Metabase. | data: { . url (string) } (object) required |
| get_api_ee_gsheets_connection | Check the status of a connection. This endpoint gets polled by FE to determine when to stop showing the setup widget. Returns the gsheets shape, with the attached datawarehouse db id at :db_id. | No parameters |
| delete_api_ee_gsheets_connection | Disconnect the google service account. There is only one or zero at the time of writing. | No parameters |
| post_api_ee_gsheets_connection_sync | Force a sync of the connection now. Returns the gsheets shape, with the attached datawarehouse db id at :db_id. | No parameters |
| get_api_ee_gsheets_service_account | Checks to see if service-account is setup or not, delegates to HM only if we haven't set it from a metabase cluster before. | No parameters |
| post_api_ee_library | Creates the Library if it doesn't exist. Returns the created collection. Requires data analyst or superuser permissions. | No parameters |
| get_api_ee_library | Get the Library. If no library exists, it doesn't fail but returns an empty response | No parameters |
| get_api_ee_library_tree | This matches /api/collection/tree but only returns the library collection. | No parameters |
| get_api_ee_logs_query_execution_by_yyyy_mm | Fetch rows for the month specified by :yyyy-mm from the query_execution logs table. Must be a superuser. | yyyy-mm (string) |
| post_api_ee_metabot_tools_answer_sources | Return top level meta information about available information sources. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_check_transform_dependencies | Check a proposed edit to a transform and return details of cards or transforms that would be broken by the change. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_create_dashboard_subscription | Create a dashboard subscription. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_field_values | Return statistics and/or values for a given field of a given entity. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_filter_records | Construct a query from a metric. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_find_outliers | Find outliers in the values provided by a data source for a given column. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_generate_insights | Generate insights. | data: { . arguments (object) . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_current_user | Get information about user that started the conversation. | data: { . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_dashboard_details | Get information about a given dashboard. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_document_details | Get information about a given document. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_metric_details | Get information about a given metric. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_query_details | Get information about a given query. | data: { . arguments (object) . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_report_details | Get information about a given report. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_snippet_details | Get the content of a single SQL snippet. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_snippets | Get a list of all known SQL snippets. | data: { . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_table_details | Get information about a given table or model. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_tables | Get information about the tables in a given database. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_transform_details | Get information about a transform. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_transform_python_library_details | Get information about a Python library by path. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_get_transforms | Get a list of all known transforms. | data: { . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_query_datasource | Construct a query from a model or table data source. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_query_metric | Construct a query from a metric. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_query_model | Construct a query from a model. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_search | Enhanced search with term and semantic queries using Reciprocal Rank Fusion. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_tools_search_v2 | Enhanced search with term and semantic queries using Reciprocal Rank Fusion. This is identical to /search, but duplicated in order to add a new capability to AI service that indicates that Metabot can search transforms. The /search endpoint is kept around for backward compatibility. | data: { . arguments . conversation_id (string) . profile_id } (object) required |
| post_api_ee_metabot_v3_agent_streaming | Send a chat message to the LLM via the AI Proxy. | data: { . context (object) . conversation_id (string) . history . message (string) . metabot_id (string) . profile_id (string) . state (object) } (object) required |
| post_api_ee_metabot_v3_document_generate_content | Create a new piece of content to insert into the document. | data: { . instructions (string) . references (object) } (object) required |
| post_api_ee_metabot_v3_feedback | Proxy Metabot feedback to Harbormaster, adding the premium embedding token. | data: { } (object) required |
| get_api_ee_metabot_v3_metabot | List configured metabot instances | No parameters |
| get_api_ee_metabot_v3_metabot_by_id | Retrieve one metabot instance | id (integer) |
| put_api_ee_metabot_v3_metabot_by_id | Update a metabot instance | id (integer) data: { . collection_id . use_verified_content (boolean) } (object) required |
| get_api_ee_metabot_v3_metabot_by_id_prompt_suggestions | Return the prompt suggestions for the metabot instance with id. | id (integer) sample (boolean) model (string) model_id (integer) |
| delete_api_ee_metabot_v3_metabot_by_id_prompt_suggestions | Delete all prompt suggestions for the metabot instance with id. | id (integer) |
| post_api_ee_metabot_v3_metabot_by_id_prompt_suggestions_regenerate | Remove any existing prompt suggestions for the Metabot instance with id and generate new ones. | id (integer) |
| delete_api_ee_metabot_v3_metabot_by_id_prompt_suggestions_by_prompt_id | Delete the prompt suggestion with ID prompt-id for the metabot instance with id. | id (integer) prompt-id (integer) |
| get_api_ee_permission_debug | This endpoint expects a user_id, a model_id to debug permissions against, and action_type. The type of model we are debugging against is inferred by the action_type. It will return: - decision: The overall permission decision 'allow', 'denied', or 'limited' - model-type: The type of model being checked e.g., 'question' - model-id: The ID of the model being checked - segment: A set of segmentation types applied e.g., 'sandboxed', 'impersonated', 'routed' - message: A sequence of st | user_id (integer) required model_id (string) required action_type (string) required |
| get_api_ee_remote_sync_branches | Get list of branches from the configured source. Returns a JSON object with branch names under the :items key. Requires superuser permissions. | No parameters |
| post_api_ee_remote_sync_create_branch | Create a new branch from the current remote-sync branch and switches the current remote-sync branch to it. Requires superuser permissions. | data: { . name (string) } (object) required |
| get_api_ee_remote_sync_current_task | Get the current sync task | No parameters |
| post_api_ee_remote_sync_current_task_cancel | Cancels the current task if one is running | No parameters |
| get_api_ee_remote_sync_dirty | Return all models with changes that have not been pushed to the remote sync source in any remote-synced collection. | No parameters |
| post_api_ee_remote_sync_export | Export the current state of the Remote Sync collection to a Source. This endpoint will: - Fetch the latest changes from the source - Create a branch or subdirectory depending on source support If no branch is supplied, use the configured export branch - Export the Remote Sync collection via serialization to the branch or subdirectory - Commit the changes if possible - Sync to the source if possible Requires superuser permissions. | No parameters |
| get_api_ee_remote_sync_has_remote_changes | Check if there are new changes on the remote branch that can be pulled. Uses in-memory caching configurable TTL via remote-sync-check-changes-cache-ttl-seconds setting. Returns: - has_changes: true if remote version differs from last imported version, or if never imported - remote_version: current Git SHA on remote branch - local_version: Git SHA of last successful import nil if never imported - cached: true if result was served from cache | force-refresh (boolean) |
| post_api_ee_remote_sync_import | Import Metabase content from configured Remote Sync source. This endpoint will: - Fetch the latest changes from the configured source - Load the updated content using the serialization/deserialization system If force=false default and there are unsaved changes in the Remote Sync collection, the import returns a 400 response. Requires superuser permissions. | data: { . branch (string) . force (boolean) } (object) required |
| get_api_ee_remote_sync_is_dirty | Check if any remote-synced collection or collection item has local changes that have not been pushed to the remote sync source. | No parameters |
| put_api_ee_remote_sync_settings | Update Remote Sync related settings. You must be a superuser to do this. | data: { . collections . remote-sync-auto-import . remote-sync-branch . remote-sync-token . remote-sync-transforms . remote-sync-type . remote-sync-url } (object) required |
| post_api_ee_remote_sync_stash | Stashes changes to a new branch, and changes the current branch to it. Requires superuser permissions. | data: { . message (string) . new_branch (string) } (object) required |
| get_api_ee_scim_api_key | Fetch the SCIM API key if one exists. Does not return an unmasked key, since we don't have access to that after it is created. | No parameters |
| post_api_ee_scim_api_key | Create a new SCIM API key, or refresh one that already exists. When called for the first time, this is equivalent to enabling SCIM. | No parameters |
| get_api_ee_scim_v2_groups | Fetch a list of groups. | startIndex count filter |
| post_api_ee_scim_v2_groups | Create a single group, and populates it if necessary. | data: { . displayName (string) . id (string) . members (array) . schemas (array) } (object) required |
| get_api_ee_scim_v2_groups_by_id | Fetch a single group. | id (string) |
| put_api_ee_scim_v2_groups_by_id | Update a group. | id (string) data: { . displayName (string) . id (string) . members (array) . schemas (array) } (object) required |
| delete_api_ee_scim_v2_groups_by_id | Delete a group. | id (string) |
| get_api_ee_scim_v2_users | Fetch a list of users. | startIndex count filter |
| post_api_ee_scim_v2_users | Create a single user. | data: { . active (boolean) . emails (array) . groups (array) . id (string) . locale . name (object) . schemas (array) . userName (string) } (object) required |
| get_api_ee_scim_v2_users_by_id | Fetch a single user. | id (string) |
| put_api_ee_scim_v2_users_by_id | Update a user. | id (string) data: { . active (boolean) . emails (array) . groups (array) . id (string) . locale . name (object) . schemas (array) . userName (string) } (object) required |
| patch_api_ee_scim_v2_users_by_id | Activate or deactivate a user. Supports specific replace operations, but not arbitrary patches. | id (string) data: { . Operations (array) . schemas (array) } (object) required |
| get_api_ee_semantic_search_status | Fetch the indexing status of the currently active semantic search index table. Returns a map with keys: :indexed_count number of indexed items :total_est estimated total number of items to index If no index is active, returns an empty map. | No parameters |
| post_api_ee_serialization_export | Serialize and retrieve Metabase instance. Outputs .tar.gz file with serialization results and an export.log file. On error outputs serialization logs directly. | dirname collection all_collections (boolean) required settings (boolean) required data_model (boolean) required field_values (boolean) required database_secrets (boolean) required continue_on_error (boolean) required full_stacktrace (boolean) required |
| post_api_ee_serialization_import | Deserialize Metabase instance from an archive generated by /export. Parameters: - file: archive encoded as multipart/form-data required. Returns logs of deserialization. | continue_on_error (boolean) required full_stacktrace (boolean) required reindex (boolean) required |
| get_api_ee_stale_by_id | A flexible endpoint that returns stale entities, in the same shape as collections/items, with the following options: - before_date - only return entities that were last edited before this date default: 6 months ago - is_recursive - if true, return entities from all children of the collection, not just the direct children default: false - sort_column - the column to sort by default: name - sort_direction - the direction to sort by default: asc | id before_date is_recursive (boolean) required sort_column (string) required sort_direction (string) required |
| post_api_ee_support_access_grant | Create a new support access grant. Requires superuser permissions. Only one active grant can exist at a time. | data: { . grant_duration_minutes (integer) . notes . ticket_number } (object) required |
| get_api_ee_support_access_grant | List support access grants with optional filtering and pagination. Requires superuser permissions. Query parameters: - ticket-number: Filter by ticket number - user-id: Filter by user who created the grant - include-revoked: Include revoked grants default false | ticket-number user-id include-revoked |
| get_api_ee_support_access_grant_current | Get the currently active support access grant, if one exists. Requires superuser permissions. | No parameters |
| put_api_ee_support_access_grant_by_id_revoke | Revoke an existing support access grant. Requires superuser permissions. Any admin can revoke any grant. | id (integer) |
| post_api_ee_tenant | Create a new Tenant | data: { . attributes . name (string) . slug (string) } (object) required |
| get_api_ee_tenant | Get all tenants | status (string) required |
| put_api_ee_tenant_by_id | Update a tenant, can set name, attributes, or whether this tenant is active. | id (integer) data: { . attributes . is_active . name } (object) required |
| get_api_ee_tenant_by_id | Get info about a tenant | id (integer) |
| get_api_ee_transforms_python_library_by_path | Get the Python library for user modules. | path (string) |
| put_api_ee_transforms_python_library_by_path | Update the Python library source code for user modules. | path (string) data: { . source (string) } (object) required |
| post_api_ee_transforms_python_test_run | Evaluate an ad-hoc python transform on a sample of input data. Intended for short runs for early feedback. Input/output/timeout limits apply. | data: { . code (string) . output_row_limit . per_input_row_limit . source_tables (object) } (object) required |
| get_api_ee_upload_management_tables | Get all Tables visible to the current user which were created by uploading a file. | No parameters |
| delete_api_ee_upload_management_tables_by_id | Delete the uploaded table from the database, optionally archiving cards for which it is the primary source. | id (integer) archive-cards |
| get_api_ee_workspace | Get a list of all workspaces | No parameters |
| post_api_ee_workspace | Create a new workspace Potential payload: :name 'a' :database_id 2 | data: { . database_id (integer) . name (string) } (object) required |
| get_api_ee_workspace_checkout | Get checkout status for a global transform. Returns: - checkout_disabled: Why this transform cannot be checked out nil if allowed - workspaces: All workspaces for this transform's database, with checkout status - transforms: DEPRECATED Use :workspaces instead | transform-id (integer) required |
| get_api_ee_workspace_database | Get a list supported databases, and whether they're enabled and have required permissions. | No parameters |
| get_api_ee_workspace_enabled | Test whether the current user can use Workspaces. Optionally takes a specific database. Factors include: driver support, database user privileges, metabase permissions. | database-id (integer) |
| get_api_ee_workspace_by_ws_id | Get a single workspace by ID | ws-id (integer) |
| put_api_ee_workspace_by_ws_id | Update simple workspace properties. Can set database_id only on uninitialized workspaces. | ws-id (integer) data: { . database_id (integer) . name (string) } (object) required |
| delete_api_ee_workspace_by_ws_id | Delete a workspace and all its contents, including mirrored entities. | ws-id (integer) |
| post_api_ee_workspace_by_ws_id_archive | Archive a workspace. Deletes the isolated schema and tables, but preserves mirrored entities. | ws-id (integer) |
| get_api_ee_workspace_by_ws_id_external_transform | Get transforms that are external to the workspace, i.e. no matching workspace_transform row exists. | ws-id (integer) database-id (integer) |
| get_api_ee_workspace_by_ws_id_graph | Display the dependency graph between the Changeset and the potentially external entities that they depend on. | ws-id (integer) |
| get_api_ee_workspace_by_ws_id_log | Get workspace creation status and recent log entries for polling during async setup | ws-id (integer) |
| post_api_ee_workspace_by_ws_id_merge | This will: 1. Update original transforms with workspace versions 2. Archive the workspace and clean up isolated resources Returns a report of merged entities, or error in errors key. Request body may include: - commit-message: A description of what changes are being merged optional, will be required in future | ws-id (integer) data: { . commit-message (string) } (object) required |
| get_api_ee_workspace_by_ws_id_problem | Detect problems in the workspace that would affect downstream transforms after merge. Returns a list of problems, each with: - category: the problem category e.g. 'unused', 'internal-downstream', 'external-downstream' - problem: the specific problem e.g. 'not-run', 'stale', 'removed-field' - severity: :error, :warning, or :info - block-merge: whether this problem prevents merging - data: extra information, shape depends on the problem type See metabase-ent | ws-id (integer) |
| post_api_ee_workspace_by_ws_id_query | Execute an arbitrary SQL query in the workspace's isolated database context. Table references are remapped to isolated workspace tables. Returns the first 2000 rows of query results. | ws-id (integer) data: { . sql (string) } (object) required |
| post_api_ee_workspace_by_ws_id_run | Execute all transforms in the workspace in dependency order. Returns which transforms succeeded, failed, and were not run. | ws-id (integer) data: { . stale_only } (object) required |
| get_api_ee_workspace_by_ws_id_table | Get workspace tables | ws-id (integer) |
| post_api_ee_workspace_by_ws_id_transform | Add another transform to the Changeset. This could be a fork of an existing global transform, or something new. | ws-id (integer) data: { . description . name (string) . source } (object) required |
| get_api_ee_workspace_by_ws_id_transform | Get all transforms in a workspace. | ws-id (integer) |
| post_api_ee_workspace_by_ws_id_transform_validate_target | Validate the target table for a workspace transform | ws-id (integer) transform-id (string) data: { . db_id (integer) . target (object) } (object) required |
| get_api_ee_workspace_by_ws_id_transform_by_tx_id | Get a specific transform in a workspace. | ws-id (integer) tx-id (string) |
| put_api_ee_workspace_by_ws_id_transform_by_tx_id | Update or create a transform in a workspace. If the transform exists, updates it. If it doesn't exist, creates a new transform with the provided ref_id. For creation, name, source, and target are required. | ws-id (integer) tx-id (string) data: { . description . name (string) . source . target (object) } (object) required |
| delete_api_ee_workspace_by_ws_id_transform_by_tx_id | Discard a transform from the changeset. Equivalent to resetting a checked-out transform to its global definition, or deleting a provisional transform. | ws-id (integer) tx-id (string) |
| post_api_ee_workspace_by_ws_id_transform_by_tx_id_archive | Mark the given transform to be archived when the workspace is merged. For provisional transforms we will skip even creating it in the first place. | ws-id (integer) tx-id (string) |
| post_api_ee_workspace_by_ws_id_transform_by_tx_id_dry_run | Dry-run a transform in a workspace without persisting to the target table. Returns the first 2000 rows of transform output for preview purposes. Does not update last_run_at or create any database tables. When run_stale_ancestors is true, any stale ancestor transforms will be executed first in dependency order these ARE persisted. If any ancestor fails, execution stops and the dry-run will not proceed. | ws-id (integer) tx-id (string) data: { . run_stale_ancestors } (object) required |
| post_api_ee_workspace_by_ws_id_transform_by_tx_id_merge | Merge single transform from workspace back to the core. If workspace transform is archived the corresponding core transform is deleted. Request body may include: - commit-message: A description of what changes are being merged optional, will be required in future | ws-id (integer) tx-id (string) data: { . commit-message (string) } (object) required |
| post_api_ee_workspace_by_ws_id_transform_by_tx_id_run | Run a transform in a workspace. App DB changes are rolled back. Warehouse DB changes persist. When run_stale_ancestors is true, any stale ancestor transforms will be executed first in dependency order. If any ancestor fails, execution stops and remaining ancestors are marked as not_run. The target transform will not run if any ancestor failed. | ws-id (integer) tx-id (string) data: { . run_stale_ancestors } (object) required |
| post_api_ee_workspace_by_ws_id_transform_by_tx_id_unarchive | Unmark the given transform for archival. This will recall the last definition it had within the workspace. | ws-id (integer) tx-id (string) |
| post_api_ee_workspace_by_ws_id_unarchive | Restore an archived workspace. Recreates the isolated schema and tables. | ws-id (integer) |
| post_api_eid_translation_translate | Translate entity IDs to model IDs. | data: { . entity_ids (object) } (object) required |
| put_api_email | Update multiple email Settings. You must be a superuser or have setting permission to do this. | data: { . email-smtp-host . email-smtp-password . email-smtp-port . email-smtp-security . email-smtp-username } (object) required |
| delete_api_email | Clear all email related settings. You must be a superuser or have setting permission to do this. | No parameters |
| post_api_email_test | Send a test email using the SMTP Settings. You must be a superuser or have setting permission to do this. Returns :ok true if we were able to send the message successfully, otherwise a standard 400 error response. | No parameters |
| get_api_embed_card_by_token | Fetch a Card via a JSON Web Token signed with the embedding-secret-key. Token should have the following format: :resource :question card-id | token (string) |
| get_api_embed_card_by_token_params_by_param_key_remapping | Embedded version of api.card filter values endpoint. | token (string) param-key (string) value (string) required |
| get_api_embed_card_by_token_params_by_param_key_search_by_prefix | Embedded version of chain filter search endpoint. | token (string) param-key (string) prefix (string) |
| get_api_embed_card_by_token_params_by_param_key_values | Embedded version of api.card filter values endpoint. | token (string) param-key (string) |
| get_api_embed_card_by_token_query | Fetch the results of running a Card using a JSON Web Token signed with the embedding-secret-key. Token should have the following format: :resource :question card-id :params parameters | token (string) |
| get_api_embed_card_by_token_query_by_export_format | Like GET /api/embed/card/query, but returns the results as a file in the specified format. | token (string) export-format (string) format_rows (boolean) required pivot_results (boolean) required |
| get_api_embed_dashboard_by_token | Fetch a Dashboard via a JSON Web Token signed with the embedding-secret-key. Token should have the following format: :resource :dashboard dashboard-id | token (string) |
| get_api_embed_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_id | Fetch the results of running a Card belonging to a Dashboard using a JSON Web Token signed with the embedding-secret-key | token (string) dashcard-id (integer) card-id (integer) |
| get_api_embed_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_id_by_export_format | Fetch the results of running a Card belonging to a Dashboard using a JSON Web Token signed with the embedding-secret-key return the data in one of the export formats | token (string) dashcard-id (integer) card-id (integer) export-format (string) format_rows (boolean) required pivot_results (boolean) required |
| get_api_embed_dashboard_by_token_params_by_param_key_remapping | Embedded version of the remapped dashboard param value endpoint. | token (string) param-key (string) |
| get_api_embed_dashboard_by_token_params_by_param_key_search_by_prefix | Embedded version of chain filter search endpoint. | token (string) param-key (string) prefix (string) |
| get_api_embed_dashboard_by_token_params_by_param_key_values | Embedded version of chain filter values endpoint. | token (string) param-key (string) |
| get_api_embed_pivot_card_by_token_query | Fetch the results of running a Card using a JSON Web Token signed with the embedding-secret-key. Token should have the following format: :resource :question card-id :params parameters | token (string) |
| get_api_embed_pivot_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_id | Fetch the results of running a Card belonging to a Dashboard using a JSON Web Token signed with the embedding-secret-key | token (string) dashcard-id (integer) card-id (integer) |
| get_api_embed_tiles_card_by_token_by_zoom_by_x_by_y | Generates a single tile image for an embedded Card using the map visualization. | token (string) zoom (integer) x (integer) y (integer) parameters (string) latField (string) required lonField (string) required |
| get_api_embed_tiles_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_id_by_zoom_by_x_by_y | Generates a single tile image for a Card on an embedded Dashboard using the map visualization. | token (string) dashcard-id (integer) card-id (integer) zoom (integer) x (integer) y (integer) parameters (string) latField (string) required lonField (string) required |
| get_api_field_by_id | Get Field with ID. | id (integer) include_editable_data_model (boolean) required |
| put_api_field_by_id | Update Field with ID. | id (integer) data: { . points_of_interest . settings . visibility_type . coercion_strategy . json_unfolding . semantic_type . has_field_values . display_name . nfc_path . caveats . description . fk_target_field_id } (object) required |
| post_api_field_by_id_dimension | Sets the dimension for the given field at ID | id (integer) data: { . human_readable_field_id . name (string) . type (string) } (object) required |
| delete_api_field_by_id_dimension | Remove the dimension associated to field at ID | id (integer) |
| post_api_field_by_id_discard_values | Discard the FieldValues belonging to this Field. Only applies to fields that have FieldValues. If this Field's Database is set up to automatically sync FieldValues, they will be recreated during the next cycle. | id (integer) |
| get_api_field_by_id_related | Return related entities. | id (integer) |
| get_api_field_by_id_remapping_by_remapped_id | Fetch remapped Field values. | id (integer) remapped-id (integer) value (string) required |
| post_api_field_by_id_rescan_values | Manually trigger an update for the FieldValues for this Field. Only applies to Fields that are eligible for FieldValues. | id (integer) |
| get_api_field_by_id_search_by_search_id | Search for values of a Field with search-id that start with value. See docstring for metabase.parameters.field/search-values for a more detailed explanation. | id (integer) search-id (integer) value (string) |
| get_api_field_by_id_summary | Get the count and distinct count of Field with ID. | id (integer) |
| get_api_field_by_id_values | If a Field's value of has_field_values is :list, return a list of all the distinct values of the Field or remapped Field, and if defined by a User a map of human-readable remapped values. If has_field_values is not :list, checks whether we should create FieldValues for this Field; if so, creates and returns them. | id (integer) |
| post_api_field_by_id_values | Update the fields values and human-readable values for a Field whose semantic type is category/city/state/country or whose base type is type/Boolean. The human-readable values are optional. | id (integer) data: { . values (array) } (object) required |
| get_api_geojson | Load a custom GeoJSON file based on a URL or file path provided as a query parameter. This behaves similarly to /api/geojson/:key but doesn't require the custom map to be saved to the DB first. | url (string) required |
| get_api_geojson_by_key | Fetch a custom GeoJSON file as defined in the metabase.geojson.settings/custom-geojson setting. This just acts as a simple proxy for the file specified for key. | key (string) |
| get_api_glossary | Fetch all glossary entries, optionally filtered by search term. | No parameters |
| post_api_glossary | Create a new glossary entry. | data: { . definition (string) . term (string) } (object) required |
| put_api_glossary_by_id | Update an existing glossary entry. | id (integer) data: { . definition (string) . term (string) } (object) required |
| delete_api_glossary_by_id | Delete a glossary entry. | id (integer) |
| put_api_google_settings | Update Google Sign-In related settings. You must be a superuser to do this. | data: { . google-auth-auto-create-accounts-domain . google-auth-client-id . google-auth-enabled } (object) required |
| put_api_ldap_settings | Update LDAP related settings. You must be a superuser to do this. | data: { . ldap-enabled . ldap-host . ldap-password . ldap-port } (object) required |
| post_api_llm_extract_tables | Parse SQL and return referenced tables with their columns. Uses Macaw to parse the SQL, resolves table names to IDs, and returns permission-filtered tables with column metadata. This is a lightweight endpoint that does not trigger fingerprinting or field value fetching. | data: { . database_id (integer) . sql (string) } (object) required |
| post_api_llm_generate_sql | Generate SQL from a natural language prompt. Requires: - LLM to be configured Anthropic API key set in admin settings - At least one table reference explicit @mention or implicit from source_sql - A database_id parameter Returns generated SQL and the list of tables used for context. | data: { . database_id (integer) . prompt (string) . referenced_entities (array) . source_sql (string) } (object) required |
| get_api_llm_list_models | List available LLM models from the configured provider. Requires LLM to be configured Anthropic API key set in admin settings. | No parameters |
| post_api_logger_adjustment | Temporarily adjust the log levels. | data: { . duration (integer) . duration_unit (string) . log_levels } (object) required |
| delete_api_logger_adjustment | Undo any log level adjustments. | No parameters |
| get_api_logger_logs | Logs. | No parameters |
| get_api_logger_presets | Get all known presets. | No parameters |
| get_api_login_history_current | Fetch recent logins for the current user. | No parameters |
| post_api_measure | Create a new Measure. | data: { . definition (object) . description . name (string) . table_id (integer) } (object) required |
| get_api_measure | Fetch all Measures. | No parameters |
| get_api_measure_by_id | Fetch Measure with ID. | id (integer) |
| put_api_measure_by_id | Update a Measure with ID. | id (integer) data: { . archived . definition . description . name . revision_message (string) } (object) required |
| post_api_model_index | Create ModelIndex. | data: { . model_id (integer) . pk_ref . value_ref } (object) required |
| get_api_model_index | Retrieve list of ModelIndex. | model_id (integer) required |
| get_api_model_index_by_id | Retrieve ModelIndex. | id (integer) |
| delete_api_model_index_by_id | Delete ModelIndex. | id (integer) |
| post_api_moderation_review | Create a new ModerationReview. | data: { . moderated_item_id (integer) . moderated_item_type . status . text } (object) required |
| get_api_mt_gtap | Fetch a list of all GTAPs currently in use, or a single GTAP if both group_id and table_id are provided. | group_id table_id |
| post_api_mt_gtap | Create a new GTAP. | data: { . attribute_remappings . card_id . group_id (integer) . table_id (integer) } (object) required |
| post_api_mt_gtap_validate | Validate a sandbox which may not have yet been saved. This runs the same validation that is performed when the sandbox is saved, but doesn't actually save the sandbox. | data: { . card_id . table_id (integer) } (object) required |
| get_api_mt_gtap_by_id | Fetch GTAP by id | id (integer) |
| put_api_mt_gtap_by_id | Update a GTAP entry. The only things you're allowed to update for a GTAP are the Card being used card_id or the parameter mappings; changing table_id or group_id would effectively be deleting this entry and creating a new one. If that's what you want to do, do so explicitly with appropriate calls to the DELETE and POST endpoints. | id (integer) data: { . attribute_remappings . card_id } (object) required |
| delete_api_mt_gtap_by_id | Delete a GTAP entry. | id (integer) |
| get_api_mt_user_attributes | Fetch a list of possible keys for User login_attributes. This includes keys from tenant model attributes and keys that have already been set for existing Users. | No parameters |
| put_api_mt_user_by_id_attributes | Update the login_attributes for a User. | id (integer) data: { . login_attributes } (object) required |
| get_api_native_query_snippet | Fetch all snippets | archived required |
| post_api_native_query_snippet | Create a new NativeQuerySnippet. | data: { . collection_id . content (string) . description . name } (object) required |
| get_api_native_query_snippet_by_id | Fetch native query snippet with ID. | id (integer) |
| put_api_native_query_snippet_by_id | Update an existing NativeQuerySnippet. | id (integer) data: { . archived . collection_id . content . description . name } (object) required |
| get_api_notification | List notifications. - creator_id: if provided returns only notifications created by this user - recipient_id: if provided returns only notification that has recipient_id as a recipient - creator_or_recipient_id: if provided returns only notification that has user_id as creator or recipient - card_id: if provided returns only notification that has card_id as payload | creator_id (integer) recipient_id (integer) creator_or_recipient_id (integer) card_id (integer) include_inactive (boolean) payload_type |
| post_api_notification | Create a new notification, return the created notification. | data required |
| post_api_notification_send | Send an unsaved notification. | data required |
| post_api_notification_unsubscribe | Allow non-users to unsubscribe from notifications, with the hash given through email. | data: { . email (string) . hash (string) . notification-handler-id (integer) } (object) required |
| post_api_notification_unsubscribe_undo | Allow non-users to undo an unsubscribe from notifications, with the hash given through email. | data: { . email (string) . hash (string) . notification-handler-id (integer) } (object) required |
| get_api_notification_by_id | Get a notification by id. | id (integer) |
| put_api_notification_by_id | Update a notification, can also update its subscriptions, handlers. Return the updated notification. | id (integer) data required |
| post_api_notification_by_id_send | Send a notification by id. | id (integer) data: { . handler_ids (array) } (object) required |
| post_api_notification_by_id_unsubscribe | Unsubscribe current user from a notification. | id (integer) |
| post_api_notify_db_attached_datawarehouse | Sync the attached datawarehouse. Can provide in the body: - table_name and schema_name: both strings. Will look for an existing table and sync it, otherwise will try to find a new table with that name and sync it. If it cannot find a table it will throw an error. If table_name is empty or blank, will sync the entire database. - synchronous?: is a boolean value to indicate if this should block on the result. | data: { . schema_name . synchronous? . table_name } (object) required |
| post_api_notify_db_by_id | Notification about a potential schema change to one of our Databases. Caller can optionally specify a :table_id or :table_name in the body to limit updates to a single Table. Optional Parameter :scan can be 'full' or 'schema' for a full sync or a schema sync, available regardless if a :table_id or :table_name is passed. This endpoint is secured by an API key that needs to be passed as a X-METABASE-APIKEY header which needs to be defined in the MB_API_KEY environment variablehttps://www | id (integer) data: { . scan . table_id . table_name } (object) required |
| post_api_notify_db_by_id_new_table | Sync a new table without running a full database sync. Requires schema_name and table_name. Will throw an error if the table already exists in Metabase or cannot be found. | id (integer) data: { . schema_name (string) . table_name (string) } (object) required |
| get_api_permissions_graph | Fetch a graph of all Permissions. | No parameters |
| put_api_permissions_graph | Do a batch update of Permissions by passing in a modified graph. This should return the same graph, in the same format, that you got from GET /api/permissions/graph, with any changes made in the wherever necessary. This modified graph must correspond to the PermissionsGraph schema. If successful, this endpoint returns the updated permissions graph; use this as a base for any further modifications. Revisions to the permissions graph are tracked. If you fetch the permissions graph and som | skip-graph required force required data: { } (object) required |
| get_api_permissions_graph_db_by_db_id | Fetch a graph of all Permissions for db-id db-id. | db-id (integer) |
| get_api_permissions_graph_group_by_group_id | Fetch a graph of all Permissions for group-id group-id. | group-id (integer) |
| get_api_permissions_group | Fetch all PermissionsGroups, including a count of the number of :members in that group. This API requires superuser or group manager of more than one group. Group manager is only available if advanced-permissions is enabled and returns only groups that user is manager of. Optional query parameter tenancy can be used to filter groups: - tenancy=external: Returns only tenant groups where is_tenant_group = true - tenancy=internal: Returns only non-tenant groups where is_tenant_group = | tenancy (string) |
| post_api_permissions_group | Create a new PermissionsGroup. | data: { . is_tenant_group . name (string) } (object) required |
| put_api_permissions_group_by_group_id | Update the name of a PermissionsGroup. | group-id (integer) data: { . name (string) } (object) required |
| delete_api_permissions_group_by_group_id | Delete a specific PermissionsGroup. | group-id (integer) |
| get_api_permissions_group_by_id | Fetch the details for a certain permissions group. | id (integer) |
| get_api_permissions_membership | Fetch a map describing the group memberships of various users. This map's format is: user-id :membership_id id :group_id id :is_group_manager boolean | No parameters |
| post_api_permissions_membership | Add a User to a PermissionsGroup. Returns updated list of members belonging to the group. | data: { . group_id (integer) . is_group_manager . user_id (integer) } (object) required |
| put_api_permissions_membership_by_group_id_clear | Remove all members from a PermissionsGroup. Returns a 400 Bad Request if the group ID is for the admin group. | group-id (integer) |
| put_api_permissions_membership_by_id | Update a Permission Group membership. Returns the updated record. | id (integer) data: { . is_group_manager (boolean) } (object) required |
| delete_api_permissions_membership_by_id | Remove a User from a PermissionsGroup delete their membership. | id (integer) |
| get_api_persist | List the entries of PersistedInfo in order to show a status page. | No parameters |
| get_api_persist_card_by_card_id | Fetch a particular PersistedInfo by card-id. | card-id (integer) |
| post_api_persist_card_by_card_id_persist | Mark the model card as persisted. Runs the query and saves it to the database backing the card and hot swaps this query in place of the model's query. | card-id (integer) |
| post_api_persist_card_by_card_id_refresh | Refresh the persisted model caching card-id. | card-id (integer) |
| post_api_persist_card_by_card_id_unpersist | Unpersist this model. Deletes the persisted table backing the model and all queries after this will use the card's query rather than the saved version of the query. | card-id (integer) |
| post_api_persist_database_by_id_persist | Attempt to enable model persistence for a database. If already enabled returns a generic 204. | id (integer) |
| post_api_persist_database_by_id_unpersist | Attempt to disable model persistence for a database. If already not enabled, just returns a generic 204. | id (integer) |
| post_api_persist_disable | Disable global setting to allow databases to persist models. This will remove all tasks to refresh tables, remove that option from databases which might have it enabled, and delete all cached tables. | No parameters |
| post_api_persist_enable | Enable global setting to allow databases to persist models. | No parameters |
| post_api_persist_set_refresh_schedule | Set the cron schedule to refresh persisted models. Shape should be JSON like cron: '0 30 1/8 ? '. | data: { . cron (string) } (object) required |
| get_api_persist_by_persisted_info_id | Fetch a particular PersistedInfo by id. | persisted-info-id (integer) |
| post_api_premium_features_token_refresh | Clear all token caches and re-check the premium features token against the MetaStore. Returns the fresh token status. Useful for the frontend after a purchase so that new features are recognized without waiting for the cache TTL. | No parameters |
| get_api_premium_features_token_status | Fetch info about the current Premium-Features premium features token including whether it is valid, a trial token, its features, when it is valid-thru, and the status of the account. | No parameters |
| get_api_preview_embed_card_by_token | Fetch a Card you're considering embedding by passing a JWT token. | token (string) |
| get_api_preview_embed_card_by_token_params_by_param_key_remapping | Embedded version of api.card filter values endpoint. | token (string) param-key (string) value (string) required |
| get_api_preview_embed_card_by_token_params_by_param_key_values | Embedded version of api.card filter values endpoint. | token (string) param-key (string) |
| get_api_preview_embed_card_by_token_query | Fetch the query results for a Card you're considering embedding by passing a JWT token. | token (string) |
| get_api_preview_embed_dashboard_by_token | Fetch a Dashboard you're considering embedding by passing a JWT token. | token (string) |
| get_api_preview_embed_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_id | Fetch the results of running a Card belonging to a Dashboard you're considering embedding with JWT token. | token (string) dashcard-id (integer) card-id (integer) |
| get_api_preview_embed_dashboard_by_token_params_by_param_key_remapping | Embedded version of the remapped dashboard param value endpoint. | token (string) param-key (string) |
| get_api_preview_embed_dashboard_by_token_params_by_param_key_search_by_prefix | Embedded version of chain filter search endpoint. | token (string) param-key (string) prefix (string) |
| get_api_preview_embed_dashboard_by_token_params_by_param_key_values | Embedded version of chain filter values endpoint. | token (string) param-key (string) |
| get_api_preview_embed_pivot_card_by_token_query | Fetch the query results for a Card you're considering embedding by passing a JWT token. | token (string) |
| get_api_preview_embed_pivot_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_id | Fetch the results of running a Card belonging to a Dashboard you're considering embedding with JWT token. | token (string) dashcard-id (integer) card-id (integer) |
| get_api_preview_embed_tiles_card_by_token_by_zoom_by_x_by_y | Generates a single tile image for an embedded Card using the map visualization. | token (string) zoom (integer) x (integer) y (integer) parameters (string) latField (string) required lonField (string) required |
| get_api_preview_embed_tiles_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_id_by_zoom_by_x_by_y | Generates a single tile image for a Card on an embedded Dashboard using the map visualization. | token (string) dashcard-id (integer) card-id (integer) zoom (integer) x (integer) y (integer) parameters (string) latField (string) required lonField (string) required |
| post_api_product_feedback | Endpoint to provide feedback from the product | data: { . comments . source (string) } (object) required |
| get_api_public_action_by_uuid | Fetch a publicly-accessible Action. Does not require auth credentials. Public sharing must be enabled. | uuid (string) |
| post_api_public_action_by_uuid_execute | Execute the Action. parameters should be the mapped dashboard parameters with values. | uuid (string) data: { . parameters } (object) required |
| get_api_public_card_by_uuid | Fetch a publicly-accessible Card an return query results as well as :card information. Does not require auth credentials. Public sharing must be enabled. | uuid (string) |
| get_api_public_card_by_uuid_params_by_param_key_remapping | Fetch the remapped value for the given value of parameter with ID :param-key of card with UUID uuid. | uuid (string) param-key (string) value required |
| get_api_public_card_by_uuid_params_by_param_key_search_by_query | Fetch values for a parameter on a public card containing query. | uuid (string) param-key (string) query (string) |
| get_api_public_card_by_uuid_params_by_param_key_values | Fetch values for a parameter on a public card. | uuid (string) param-key (string) |
| get_api_public_card_by_uuid_query | Fetch a publicly-accessible Card an return query results as well as :card information. Does not require auth credentials. Public sharing must be enabled. | uuid (string) parameters |
| get_api_public_card_by_uuid_query_by_export_format | Fetch a publicly-accessible Card and return query results in the specified format. Does not require auth credentials. Public sharing must be enabled. | uuid (string) export-format (string) format_rows (boolean) required pivot_results (boolean) required parameters |
| get_api_public_dashboard_by_uuid | Fetch a publicly-accessible Dashboard. Does not require auth credentials. Public sharing must be enabled. | uuid (string) |
| get_api_public_dashboard_by_uuid_dashcard_by_dashcard_id_card_by_card_id | Fetch the results for a Card in a publicly-accessible Dashboard. Does not require auth credentials. Public sharing must be enabled. | uuid (string) dashcard-id (integer) card-id (integer) parameters |
| post_api_public_dashboard_by_uuid_dashcard_by_dashcard_id_card_by_card_id_by_export_format | Fetch the results of running a publicly-accessible Card belonging to a Dashboard and return the data in one of the export formats. Does not require auth credentials. Public sharing must be enabled. | uuid (string) dashcard-id (integer) card-id (integer) export-format (string) data: { . format_rows (boolean) . parameters . pivot_results (boolean) } (object) required |
| get_api_public_dashboard_by_uuid_dashcard_by_dashcard_id_execute | Fetches the values for filling in execution parameters. Pass PK parameters and values to select. | uuid (string) dashcard-id (integer) parameters (string) required |
| post_api_public_dashboard_by_uuid_dashcard_by_dashcard_id_execute | Execute the associated Action in the context of a Dashboard and DashboardCard that includes it. parameters should be the mapped dashboard parameters with values. | uuid (string) dashcard-id (integer) data: { . parameters } (object) required |
| get_api_public_dashboard_by_uuid_params_by_param_key_remapping | Fetch the remapped value for the given value of parameter with ID :param-key of dashboard with UUID uuid. | uuid (string) param-key (string) value required |
| get_api_public_dashboard_by_uuid_params_by_param_key_search_by_query | Fetch filter values for dashboard parameter param-key, containing specified query. | uuid (string) param-key (string) query (string) |
| get_api_public_dashboard_by_uuid_params_by_param_key_values | Fetch filter values for dashboard parameter param-key. | uuid (string) param-key (string) |
| get_api_public_document_by_uuid | Fetch a publicly-accessible Document. Does not require auth credentials. Public sharing must be enabled. Returns a Document with sensitive fields removed excludes collection_id, permissions, creator details, etc.. Includes all embedded Cards with their metadata hydrated so the frontend doesn't need to make separate requests for each card — just like public Dashboards do. | uuid (string) |
| get_api_public_document_by_uuid_card_by_card_id | Run a query for a Card that's embedded in a public Document. Doesn't require auth credentials. Public sharing must be enabled. | uuid (string) card-id (integer) parameters |
| post_api_public_document_by_uuid_card_by_card_id_by_export_format | Fetch a Card embedded in a public Document and return query results in the specified format. Does not require auth credentials. Public sharing must be enabled. | uuid (string) card-id (integer) export-format (string) data: { . format_rows (boolean) . parameters . pivot_results (boolean) } (object) required |
| get_api_public_oembed | oEmbed endpoint used to retrieve embed code and metadata for a public Metabase URL. | url (string) required format maxheight (integer) required maxwidth (integer) required |
| get_api_public_pivot_card_by_uuid_query | Fetch a publicly-accessible Card an return query results as well as :card information. Does not require auth credentials. Public sharing must be enabled. | uuid (string) parameters |
| get_api_public_pivot_dashboard_by_uuid_dashcard_by_dashcard_id_card_by_card_id | Fetch the results for a Card in a publicly-accessible Dashboard. Does not require auth credentials. Public sharing must be enabled. | uuid (string) card-id (integer) dashcard-id (integer) parameters |
| get_api_public_tiles_card_by_uuid_by_zoom_by_x_by_y | Generates a single tile image for a publicly-accessible Card using the map visualization. Does not require auth credentials. Public sharing must be enabled. | uuid (string) zoom (integer) x (integer) y (integer) parameters (string) latField (string) required lonField (string) required |
| get_api_public_tiles_dashboard_by_uuid_dashcard_by_dashcard_id_card_by_card_id_by_zoom_by_x_by_y | Generates a single tile image for a Card using the map visualization in a publicly-accessible Dashboard. Does not require auth credentials. Public sharing must be enabled. | uuid (string) dashcard-id (integer) card-id (integer) zoom (integer) x (integer) y (integer) parameters (string) latField (string) required lonField (string) required |
| get_api_pulse | Fetch all dashboard subscriptions. By default, returns only subscriptions for which the current user has write permissions. For admins, this is all subscriptions; for non-admins, it is only subscriptions that they created. If dashboard_id is specified, restricts results to subscriptions for that dashboard. If created_or_receive is true, it specifically returns all subscriptions for which the current user created or is a known recipient of. Note that this is a superset of the default it | archived required dashboard_id creator_or_recipient required |
| post_api_pulse | Create a new Pulse. | data: { . cards . channels . collection_id . collection_position . dashboard_id . name (string) . parameters . skip_if_empty } (object) required |
| get_api_pulse_form_input | Provides relevant configuration information and user choices for creating/updating Pulses. | No parameters |
| post_api_pulse_test | Test send an unsaved pulse. | data: { . cards . channels . collection_id . collection_position . dashboard_id . disable_links . name (string) . skip_if_empty } (object) required |
| post_api_pulse_unsubscribe | Allow non-users to unsubscribe from pulses/subscriptions, with the hash given through email. | data: { . email (string) . hash (string) . pulse-id (integer) } (object) required |
| post_api_pulse_unsubscribe_undo | Allow non-users to undo an unsubscribe from pulses/subscriptions, with the hash given through email. | data: { . email (string) . hash (string) . pulse-id (integer) } (object) required |
| get_api_pulse_by_id | Fetch Pulse with ID. If the user is a recipient of the Pulse but does not have read permissions for its collection, we still return it but with some sensitive metadata removed. | id (integer) |
| put_api_pulse_by_id | Update a Pulse with id. | id (integer) data: { . archived . cards . channels . collection_id . name . parameters . skip_if_empty } (object) required |
| delete_api_pulse_by_id_subscription | For users to unsubscribe themselves from a pulse subscription. | id (integer) |
| get_api_revision | Get revisions of an object. | id (integer) required entity (string) required |
| post_api_revision_revert | Revert an object to a prior revision. | data: { . entity (string) . id (integer) . revision_id (integer) } (object) required |
| get_api_revision_by_entity_by_id | Fetch Revisions for an object with ID. | entity (string) id (integer) |
| get_api_search | Search for items in Metabase. For the list of supported models, check metabase.search.config/all-models. Filters: - archived: set to true to search archived items only, default is false - table_db_id: search for tables, cards, and models of a certain DB - models: only search for items of specific models. If not provided, search for all models - filters_items_in_personal_collection: only search for items in personal collections - created_at: search for items created at a specific t | q context archived required collection table_db_id models filter_items_in_personal_collection created_at created_by display_type last_edited_at last_edited_by model_ancestors required search_engine search_native_query verified ids calculate_available_models include_dashboard_questions required include_metadata required non_temporal_dim_ids has_temporal_dim |
| post_api_search_force_reindex | This will trigger an immediate reindexing, if we are using search index. | No parameters |
| post_api_search_re_init | This will blow away any search indexes, re-create, and re-populate them. | No parameters |
| get_api_search_weights | Return the current weights being used to rank the search results | context (string) required |
| put_api_search_weights | Update the current weights being used to rank the search results | context (string) required search_engine |
| post_api_segment | Create a new Segment. | data: { . definition (object) . description . name (string) . table_id (integer) } (object) required |
| get_api_segment | Fetch all Segments. | No parameters |
| get_api_segment_by_id | Fetch Segment with ID. | id (integer) |
| put_api_segment_by_id | Update a Segment with ID. | id (integer) data: { . archived . caveats . definition . description . name . points_of_interest . revision_message (string) . show_in_getting_started } (object) required |
| delete_api_segment_by_id | Archive a Segment. DEPRECATED -- Just pass updated value of :archived to the PUT endpoint instead. | id (integer) revision_message (string) required |
| get_api_segment_by_id_related | Return related entities. | id (integer) |
| post_api_session | Login. | data: { . password (string) . username (string) } (object) required |
| delete_api_session | Logout. | No parameters |
| post_api_session_forgot_password | Send a reset email when user has forgotten their password. | data: { . email (string) } (object) required |
| post_api_session_google_auth | Login with Google Auth. | data: { . token (string) } (object) required |
| post_api_session_password_check | Endpoint that checks if the supplied password meets the currently configured password complexity rules. | data: { . password (string) } (object) required |
| get_api_session_password_reset_token_valid | Check if a password reset token is valid and isn't expired. | token (string) required |
| get_api_session_properties | Get all properties and their values. These are the specific Settings that are readable by the current user, or are public if no user is logged in. | No parameters |
| post_api_session_reset_password | Reset password with a reset token. | data: { . password (string) . token (string) } (object) required |
| get_api_setting | Get all Settings and their values. You must be a superuser or have setting permission to do this. For non-superusers, a list of visible settings and values can be retrieved using the /api/session/properties endpoint. | No parameters |
| put_api_setting | Update multiple Settings values. If called by a non-superuser, only user-local settings can be updated. | data (object) required |
| get_api_setting_by_key | Fetch a single Setting. | key (string) |
| put_api_setting_by_key | Create/update a Setting. If called by a non-admin, only user-local settings can be updated. This endpoint can also be used to delete Settings by passing nil for :value. | key (string) data: { . value } (object) required |
| post_api_setup | Special endpoint for creating the first user during setup. This endpoint both creates the user AND logs them in and returns a session ID. This endpoint can also be used to set specific settings from the setup flow. | data: { . prefs (object) . token (string) . user (object) } (object) required |
| post_api_slack_bug_report | Send diagnostic information to the configured Slack channels. | data: { . diagnosticInfo (object) } (object) required |
| get_api_slack_manifest | Returns the YAML manifest file that should be used to bootstrap new Slack apps | No parameters |
| put_api_slack_settings | Update Slack related settings. You must be a superuser to do this. Also updates the slack-cache. There are 3 cases where we alter the slack channel/user cache: 1. falsy token - clear 2. invalid token - clear 3. truthy, valid token - refresh | data: { . slack-app-token . slack-bug-report-channel } (object) required |
| get_api_table | Get all Tables. Optional filters: - can-query=true - filter to only tables the user can execute queries against - can-write=true - filter to only tables the user can edit metadata for | term (string) visibility-type (string) data-layer (string) data-source (string) owner-user-id owner-email (string) orphan-only unused-only can-query can-write |
| put_api_table | Update all Table in ids. Deprecated, should use PUT /table/edit from now on. | data: { . points_of_interest . visibility_type . data_authority . data_layer . show_in_getting_started . owner_email . owner_user_id . ids (array) . display_name . data_source . caveats . entity_type . description } (object) required |
| get_api_table_card_id_fks | Return FK info for the 'virtual' table for a Card. This is always empty, so this endpoint serves mainly as a placeholder to avoid having to change anything on the frontend. | id (integer) |
| get_api_table_card_id_query_metadata | Return metadata for the 'virtual' table for a Card. | id (integer) |
| get_api_table_by_id | Get Table with ID. | id (integer) include_editable_data_model |
| put_api_table_by_id | Update Table with ID. | id (integer) data: { . points_of_interest . visibility_type . data_authority . data_layer . show_in_getting_started . owner_email . owner_user_id . display_name . data_source . caveats . entity_type . field_order . description } (object) required |
| post_api_table_by_id_append_csv | Inserts the rows of an uploaded CSV file into the table identified by :id. The table must have been created by uploading a CSV file. | id (integer) |
| post_api_table_by_id_discard_values | Discard the FieldValues belonging to the Fields in this Table. Only applies to fields that have FieldValues. If this Table's Database is set up to automatically sync FieldValues, they will be recreated during the next cycle. | id (integer) |
| put_api_table_by_id_fields_order | Reorder fields | id (integer) data (array) required |
| get_api_table_by_id_fks | Get all foreign keys whose destination is a Field that belongs to this Table. | id (integer) |
| get_api_table_by_id_query_metadata | Get metadata about a Table useful for running queries. Returns DB, fields, field FKs, and field values. Passing include_hidden_fields=true will include any hidden Fields in the response. Defaults to false Passing include_sensitive_fields=true will include any sensitive Fields in the response. Defaults to false. Passing include_editable_data_model=true will check that the current user has write permissions for the table's data model, while false checks that they have data access | id (integer) include_sensitive_fields required include_hidden_fields required include_editable_data_model required |
| get_api_table_by_id_related | Return related entities. | id (integer) |
| post_api_table_by_id_replace_csv | Replaces the contents of the table identified by :id with the rows of an uploaded CSV file. The table must have been created by uploading a CSV file. | id (integer) |
| post_api_table_by_id_rescan_values | Manually trigger an update for the FieldValues for the Fields belonging to this Table. Only applies to Fields that are eligible for FieldValues. | id (integer) |
| post_api_table_by_id_sync_schema | Trigger a manual update of the schema metadata for this Table. | id (integer) |
| get_api_table_by_table_id_data | Get the data for the given table | table-id (integer) |
| get_api_task | Fetch a list of recent tasks stored as Task History | No parameters |
| get_api_task_info | Return raw data about all scheduled tasks i.e., Quartz Jobs and Triggers. | No parameters |
| get_api_task_runs | List task runs with optional filters. Returns runs with hydrated entity names and task counts. | No parameters |
| get_api_task_runs_entities | Get distinct entities that have task runs for a given run type. Used for populating entity filter picker. | run-type (string) required started-at (string) required |
| get_api_task_runs_by_id | Get a single task run with all its child tasks. | id (integer) |
| get_api_task_unique_tasks | Returns possibly empty vector of unique task names in alphabetical order. It is expected that number of unique tasks is small, hence no need for pagination. If that changes this endpoint and function that powers it should reflect that. | No parameters |
| get_api_task_by_id | Get TaskHistory entry with ID. | id (integer) |
| get_api_tiles_by_card_id_by_zoom_by_x_by_y | Generates a single tile image for a saved Card. | card-id (integer) zoom (integer) x (integer) y (integer) parameters (array) latField required lonField required |
| get_api_tiles_by_dashboard_id_dashcard_by_dashcard_id_card_by_card_id_by_zoom_by_x_by_y | Generates a single tile image for a dashcard. | dashboard-id (integer) dashcard-id (integer) card-id (integer) zoom (integer) x (integer) y (integer) parameters (array) latField required lonField required |
| get_api_tiles_by_zoom_by_x_by_y | Generates a single tile image for an ad-hoc query. | zoom (integer) x (integer) y (integer) query required latField required lonField required |
| post_api_timeline | Create a new Timeline. | data: { . archived . collection_id . default . description . icon . name (string) } (object) required |
| get_api_timeline | Fetch a list of Timelines. Can include archived=true to return archived timelines. | include (string) archived (boolean) required |
| post_api_timeline_event | Create a new TimelineEvent. | data: { . question_id . timezone (string) . timestamp (string) . name (string) . archived . timeline_id (integer) . source . time_matters . description . icon } (object) required |
| get_api_timeline_event_by_id | Fetch the TimelineEvent with id. | id (integer) |
| put_api_timeline_event_by_id | Update a TimelineEvent. | id (integer) data: { . archived . description . icon . name . time_matters . timeline_id . timestamp . timezone } (object) required |
| delete_api_timeline_event_by_id | Delete a TimelineEvent. | id (integer) |
| get_api_timeline_collection_root | Fetch the root Collection's timelines. | include archived required |
| get_api_timeline_collection_by_id | Fetch a specific Collection's timelines. | id (integer) include archived required |
| get_api_timeline_by_id | Fetch the Timeline with id. Include include=events to unarchived events included on the timeline. Add archived=true to return all events on the timeline, both archived and unarchived. | id (integer) include (string) archived (boolean) required start (string) end (string) |
| put_api_timeline_by_id | Update the Timeline with id. Returns the timeline without events. Archiving a timeline will archive all of the events in that timeline. | id (integer) data: { . archived . collection_id . default . description . icon . name } (object) required |
| delete_api_timeline_by_id | Delete a Timeline. Will cascade delete its events as well. | id (integer) |
| get_api_transform | Get a list of transforms. | last-run-start-time last-run-statuses tag-ids database-id |
| post_api_transform | Create a new transform. | data: { . owner_email . owner_user_id . name (string) . tag_ids (array) . collection_id . source . target . run_trigger (string) . description } (object) required |
| post_api_transform_job | Create a new transform job. | data: { . description . name (string) . schedule (string) . tag_ids (array) . ui_display_type (string) } (object) required |
| get_api_transform_job | Get all transform jobs. | last-run-start-time next-run-start-time last-run-statuses tag-ids |
| put_api_transform_job_by_job_id | Update a transform job. | job-id (integer) data: { . description . name (string) . schedule (string) . tag_ids (array) . ui_display_type (string) } (object) required |
| delete_api_transform_job_by_job_id | Delete a transform job. | job-id (integer) |
| get_api_transform_job_by_job_id | Get a transform job by ID. | job-id (integer) |
| post_api_transform_job_by_job_id_run | Run a transform job manually. | job-id (integer) |
| get_api_transform_job_by_job_id_transforms | Get the transforms of job specified by the job's ID. | job-id (integer) |
| post_api_transform_tag | Create a new transform tag. | data: { . name (string) } (object) required |
| get_api_transform_tag | Get a list of all transform tags. | No parameters |
| put_api_transform_tag_by_tag_id | Update a transform tag. | tag-id (integer) data: { . name (string) } (object) required |
| delete_api_transform_tag_by_tag_id | Delete a transform tag. Removes it from all transforms and jobs. | tag-id (integer) |
| get_api_transform_run | Get transform runs based on a set of filter params. | sort-column (string) sort-direction (string) transform-ids statuses transform-tag-ids start-time end-time run-methods |
| get_api_transform_run_by_run_id | Get a transform run by ID. | run-id (integer) |
| get_api_transform_by_id | Get a specific transform. | id (integer) |
| put_api_transform_by_id | Update a transform. | id (integer) data: { . owner_email . owner_user_id . name (string) . tag_ids (array) . collection_id . source . target . run_trigger (string) . description } (object) required |
| delete_api_transform_by_id | Delete a transform. | id (integer) |
| post_api_transform_by_id_cancel | Cancel the current run for a given transform. | id (integer) |
| get_api_transform_by_id_dependencies | Get the dependencies of a specific transform. | id (integer) |
| get_api_transform_by_id_merge_history | Get merge history for a transform. Returns all merge events that affected this transform, ordered by created_at descending newest first. | id (integer) |
| post_api_transform_by_id_reset_checkpoint | Reset the checkpoint for an incremental transform. | id (integer) |
| post_api_transform_by_id_run | Run a transform. | id (integer) |
| delete_api_transform_by_id_table | Delete a transform's output table. | id (integer) |
| post_api_upload_csv | Create a table and model populated with the values from the attached CSV. Returns the model ID if successful. | No parameters |
| get_api_user | Fetch a list of Users for admins or group managers. By default returns only active users for admins/data-analysts and only active users within groups that the group manager is managing for group managers. - If status is deactivated, include deactivated users only. - If status is all, include all users active and inactive. - Also supports include_deactivated, which if true, is equivalent to status=all; If is false, is equivalent to status=active. status and include_deactivate | status query group_id include_deactivated required is_data_analyst can_access_data_studio tenancy tenant_id |
| post_api_user | Create a new User, return a 400 if the email address is already taken | data: { . email (string) . first_name . last_name . login_attributes . source . tenant_id . user_group_memberships } (object) required |
| get_api_user_key_value_namespace_by_namespace | Returns all KV pairs in a given namespace for the current user | namespace (string) |
| put_api_user_key_value_namespace_by_namespace_key_by_key | Upsert a KV-pair for the user | key (string) namespace (string) data: { . expires_at . value } (object) required |
| get_api_user_key_value_namespace_by_namespace_key_by_key | Get a value for the user | key (string) namespace (string) |
| delete_api_user_key_value_namespace_by_namespace_key_by_key | Deletes a KV-pair for the user | key (string) namespace (string) |
| get_api_user_current | Fetch the current User. | No parameters |
| get_api_user_recipients | Fetch a list of Users. Returns only active users. Meant for non-admins unlike GET /api/user. - If user-visibility is :all or the user is an admin, include all users. - If user-visibility is :group, include only users in the same group excluding the all users group. - If user-visibility is :none or the user is sandboxed, include only themselves. | No parameters |
| get_api_user_by_id | Fetch a User. You must be fetching yourself or be a superuser or a Group Manager. | id (integer) |
| put_api_user_by_id | Update an existing, active User. Self or superusers can update user info and groups. Group Managers can only add/remove users from groups they are manager of. | id (integer) data: { . login_attributes . user_group_memberships . is_data_analyst . locale . is_group_manager . is_superuser . tenant_id . last_name . first_name } (object) required |
| delete_api_user_by_id | Disable a User. This does not remove the User from the DB, but instead disables their account. | id (integer) |
| put_api_user_by_id_modal_by_modal | Indicate that a user has been informed about the vast intricacies of 'the' Query Builder. | id (integer) modal (string) |
| put_api_user_by_id_password | Update a user's password. | id (integer) data: { . password (string) } (object) required |
| put_api_user_by_id_reactivate | Reactivate user at :id | id (integer) |
| get_api_util_random_token | Return a cryptographically secure random 32-byte token, encoded as a hexadecimal string. Intended for use when creating a value for embedding-secret-key. | No parameters |
| custom | Call any endpoint of the connected service while reusing the connection auth. Pass the full URL as _url. Other reserved keys: _method, _query, _body, _headers. Remaining params flow naturally — empty → GET, non-empty → POST JSON body. | _url (string) required _method (string) _query (object) _body _headers (object) |