Skip to main content

Metabase

An open-source business intelligence tool that allows you to ask questions about your data and visualize the results.

Metabase Logo

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:

ActionPurposeParameters
get_api_actionReturns 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_actionCreate a new action.data required
get_api_action_publicFetch a list of Actions with public UUIDs. These actions are publicly-accessible if public sharing is enabled.No parameters
get_api_action_by_action_idFetch an Action.action-id (integer)
delete_api_action_by_action_idDelete an Action.action-id (integer)
get_api_action_by_action_id_executeFetches the values for filling in execution parameters. Pass PK parameters and values to select.action-id (integer)
parameters (string) required
put_api_action_by_idUpdate an Action.id (integer)
data required
post_api_action_by_id_executeExecute the Action. parameters should be the mapped dashboard parameters with values.id (integer)
data required
post_api_action_by_id_public_linkGenerate 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_linkDelete the publicly-accessible link to this Dashboard.id (integer)
get_api_activity_most_recently_viewed_dashboardGet 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_itemsGet 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_viewsGet 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_recentsGet a list of recent items the current user has been viewing most recently under the :recents key. Allows for filtering by context: views or selectionscontext (array) required
include_metadata required
post_api_activity_recentsAdds a model to the list of recently selected items.data: {
. context (string)
. model (string)
. model_id (integer)
} (object) required
post_api_agent_v1_construct_queryConstruct 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_executeExecute 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_idGet 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_valuesGet statistics and sample values for a metric field.id (integer)
field-id (string)
get_api_agent_v1_pingHealth check endpoint for the Agent API.No parameters
post_api_agent_v1_searchSearch 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_idGet 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_valuesGet statistics and sample values for a table field.id (integer)
field-id (string)
get_api_alertFetch 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_idFetch an alert by IDid (integer)
delete_api_alert_by_id_subscriptionFor users to unsubscribe themselves from the given alert.id (integer)
get_api_analytics_anonymous_statsAnonymous 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_keyCreate 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_keyGet a list of API keys with the default scope. Non-paginated.No parameters
get_api_api_key_countGet the count of API keys in the DB with the default scope.No parameters
put_api_api_key_by_idUpdate an API key by changing its group and/or its nameid (integer)
data: {
. group_id
. name
} (object) required
delete_api_api_key_by_idDelete an ApiKeyid (integer)
put_api_api_key_by_id_regenerateRegenerate an API Keyid (integer)
get_api_automagic_dashboards_database_by_id_candidatesReturn 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_idReturn 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_queryReturn 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_queryReturn 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_queryReturn 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_templateReturn 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_queryReturn 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_queryReturn 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_metadataReturn 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_templateReturn 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_queryReturn 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_bookmarkFetch all bookmarks for the userNo parameters
put_api_bookmark_orderingSets the order of bookmarks for user.data: {
. orderings (array)
} (object) required
post_api_bookmark_by_model_by_idCreate a new bookmark for user.model (string)
id (integer)
delete_api_bookmark_by_model_by_idDelete 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_detailsReturns database connection pool info for the current Metabase instance.No parameters
get_api_bug_reporting_detailsReturns version and system information relevant to filing a bug report against Metabase.No parameters
get_api_cacheReturn 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_cacheStore cache configuration.data: {
. model (string)
. model_id (integer)
. strategy
} (object) required
delete_api_cacheDelete cache configurations.data: {
. model (string)
. model_id (array)
} (object) required
post_api_cache_invalidateInvalidate 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_cardGet 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_cardCreate 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_collectionsBulk 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_embeddableFetch 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_queryRun the query associated with a Card.card-id (integer)
data: {
. ignore_cache
} (object) required
get_api_card_publicFetch 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_queryFetch 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_valuesFetch 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/valuescard-id (integer)
param-key (string)
post_api_card_by_card_id_public_linkGenerate 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_linkDelete the publicly-accessible link to this Card.card-id (integer)
post_api_card_by_card_id_queryRun 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_formatRun 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_idGet 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_idUpdate 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_idHard delete a Card. To soft delete, use PUT /api/queries/:idid (integer)
post_api_card_by_id_copyCopy a Card, with the new name 'Copy of name'id (integer)
get_api_card_by_id_dashboardsGet 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_remappingFetch 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=100id (integer)
param-key (string)
value (string) required
get_api_card_by_id_query_metadataGet all of the required query metadata for a card.id
get_api_card_by_id_seriesFetches 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 idsid (integer)
last_cursor
query
exclude_ids
post_api_cards_dashboardsGet 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_moveMoves 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_channelGet all channelsdata: {
. include_inactive
} (object) required
post_api_channelCreate a channeldata: {
. active
. description
. details (object)
. name (string)
. type
} (object) required
post_api_channel_testTest a channel connectiondata: {
. details (object)
. type
} (object) required
get_api_channel_by_idGet a channelid (integer)
put_api_channel_by_idUpdate a channelid (integer)
data: {
. active
. description
. details
. name
. type
} (object) required
post_api_cloud_migrationInitiate a new cloud migration.No parameters
get_api_cloud_migrationGet the latest cloud migration, if any.No parameters
put_api_cloud_migration_cancelCancel any ongoing cloud migrations, if any.No parameters
get_api_collectionFetch 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, thearchived required
exclude-other-user-collections required
namespace
personal-only required
post_api_collectionCreate a new Collection.data: {
. authority_level
. description
. name (string)
. namespace
. parent_id
} (object) required
get_api_collection_graphFetch a graph of all Collection Permissions.namespace
put_api_collection_graphDo 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 grapforce required
skip-graph required
data: {
. groups (object)
. namespace
. revision
} (object) required
get_api_collection_rootReturn the 'Root' Collection object with standard details addednamespace
get_api_collection_root_dashboard_question_candidatesFind cards in the root collection that can be moved into dashboards in the root collection. Same as the above endpoint, but for the root collectionNo parameters
get_api_collection_root_itemsFetch 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 havemodels
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_candidatesMove candidate cards to the dashboards they appear in for the root collectiondata required
get_api_collection_trashFetch the trash collection, as in /api/collection/:trash-idNo parameters
get_api_collection_treeSimilar 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_idFetch a specific Collection with standard details addedid
put_api_collection_by_idModify 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_idDeletes a collection permanentlyid (integer)
get_api_collection_by_id_dashboard_question_candidatesFind 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_itemsFetch 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_candidatesMove candidate cards to the dashboards they appear in.id (integer)
data required
get_api_commentGet comments for an entitytarget_type (string) required
target_id (integer) required
post_api_commentCreate a new commentdata: {
. child_target_id
. content (object)
. parent_comment_id
. target_id (integer)
. target_type (string)
} (object) required
get_api_comment_mentionsGet a list of entities suitable for mentions. NOTE: only users for now.No parameters
put_api_comment_by_comment_idUpdate a commentcomment-id (integer)
data: {
. content (object)
. is_resolved (boolean)
} (object) required
delete_api_comment_by_comment_idSoft delete a commentcomment-id (integer)
post_api_comment_by_comment_id_reactionToggle a reaction on a commentcomment-id (integer)
data: {
. emoji (string)
} (object) required
get_api_dashboardThis 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_dashboardCreate a new Dashboard.data: {
. cache_ttl
. collection_id
. collection_position
. description
. name (string)
. parameters
} (object) required
get_api_dashboard_embeddableFetch 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_fieldsUtility 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 mapsfiltered (array) required
filtering
post_api_dashboard_pivot_by_dashboard_id_dashcard_by_dashcard_id_card_by_card_id_queryRun a pivot table query for a specific DashCard.dashboard-id (integer)
dashcard-id (integer)
card-id (integer)
data: {
. parameters
} (object) required
get_api_dashboard_publicFetch a list of Dashboards with public UUIDs. These dashboards are publicly-accessible if public sharing is enabled.No parameters
post_api_dashboard_saveSave a denormalized description of dashboard.No parameters
post_api_dashboard_save_collection_by_parent_collection_idSave 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_queryRun 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_formatRun 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_executeFetches 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_executeExecute 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_linkGenerate 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_linkDelete the publicly-accessible link to this Dashboard.dashboard-id (integer)
post_api_dashboard_by_from_dashboard_id_copyCopy a Dashboard.from-dashboard-id (integer)
data: {
. collection_id
. collection_position
. description
. is_deep_copy
. name
} (object) required
get_api_dashboard_by_idGet Dashboard with ID.id
delete_api_dashboard_by_idHard 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_idUpdate 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_cardsDEPRECATED -- 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 123id (integer)
data: {
. cards (array)
. tabs
} (object) required
get_api_dashboard_by_id_itemsGet Dashboard with ID.id (integer)
get_api_dashboard_by_id_params_by_param_key_remappingFetch 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=100id (integer)
param-key (string)
value (string) required
get_api_dashboard_by_id_params_by_param_key_search_by_queryFetch 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_valuesFetch 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=100id (integer)
param-key (string)
get_api_dashboard_by_id_query_metadataGet all of the required query metadata for the cards on dashboard.id
get_api_dashboard_by_id_relatedReturn related entities.id (integer)
post_api_data_studio_table_discard_valuesBatch 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_editBulk 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_valuesBatch 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_selectionGets information about selected tablesdata: {
. database_ids (array)
. schema_ids (array)
. table_ids (array)
} (object) required
post_api_data_studio_table_sync_schemaBatch 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_databaseFetch 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 enabledinclude
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_databaseAdd 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_databaseAdd the sample database as a new Database.No parameters
post_api_database_validateValidate that we can connect to a database given a set of details.data: {
. details (object)
} (object) required
get_api_database_by_idGet 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_modid (integer)
include
include_editable_data_model (boolean)
exclude_uneditable_details (boolean)
put_api_database_by_idUpdate 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_idDelete a Database.id (integer)
get_api_database_by_id_autocomplete_suggestionsReturn 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 sid (integer)
prefix
substring
get_api_database_by_id_card_autocomplete_suggestionsReturn 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_valuesDiscards all saved field values for this Database.id (integer)
post_api_database_by_id_dismiss_spinnerManually set the initial sync status of the Database and corresponding tables to be complete see 20863id (integer)
get_api_database_by_id_fieldsGet a list of all Fields in Database.id (integer)
get_api_database_by_id_healthcheckReports whether the database can currently connectid (integer)
connection-type (string)
get_api_database_by_id_idfieldsGet a list of all primary key Fields for Database.id (integer)
get_api_database_by_id_metadataGet 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 DBid (integer)
include_hidden required
include_editable_data_model required
remove_inactive required
skip_fields required
post_api_database_by_id_permission_workspace_checkCheck 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_valuesTrigger a manual scan of the field values for this Database.id (integer)
get_api_database_by_id_schemaReturn 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 forid (integer)
include_hidden required
include_editable_data_model required
can-query
can-write-metadata
get_api_database_by_id_schema_by_schemaReturns 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 forid (integer)
schema (string)
include_hidden required
include_editable_data_model required
can-query
can-write-metadata
get_api_database_by_id_schemasReturns 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 forid (integer)
include_editable_data_model required
include_hidden required
can-query
can-write-metadata
include_workspace required
get_api_database_by_id_settings_availableGet all database-local settings and their availability for the given database.id (integer)
post_api_database_by_id_sync_schemaTrigger a manual update of the schema metadata for this Database.id (integer)
get_api_database_by_id_syncable_schemasReturns a list of all syncable schemas found for the database id.id (integer)
get_api_database_by_id_usage_infoGet 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_datasetsReturns a list of all the datasets found for the saved questions virtual database.virtual-db (string)
get_api_database_by_virtual_db_datasets_by_schemaReturns a list of Tables for the datasets virtual database.virtual-db (string)
schema (string)
get_api_database_by_virtual_db_metadataEndpoint 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_schemaReturns a list of Tables for the saved questions virtual database.virtual-db (string)
schema (string)
get_api_database_by_virtual_db_schemasReturns a list of all the schemas found for the saved questions virtual database.virtual-db (string)
post_api_datasetExecute a query and retrieve the results in the usual format. The query will not use the cache.data: {
. database
} (object) required
post_api_dataset_nativeFetch a native version of an MBQL query.data: {
. database (integer)
. pretty
} (object) required
post_api_dataset_parameter_remappingReturn 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_queryReturn 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_valuesReturn parameter values for cards or dashboards that are being edited.data: {
. field_ids
. parameter (object)
} (object) required
post_api_dataset_pivotGenerate a pivoted dataset for an ad-hoc querydata: {
. database (integer)
} (object) required
post_api_dataset_query_metadataGet 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_formatExecute 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_documentGets existing Documents.No parameters
post_api_documentCreate a new Document.data: {
. cards
. collection_id
. collection_position
. document
. name (string)
} (object) required
get_api_document_publicList 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_idReturns an existing Document by ID.document-id (integer)
put_api_document_by_document_idUpdates an existing Document.document-id (integer)
data: {
. archived
. cards
. collection_id
. collection_position
. document
. name (string)
} (object) required
delete_api_document_by_document_idPermanently deletes an archived Document.document-id (integer)
post_api_document_by_document_id_card_by_card_id_query_by_export_formatDownload 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 parameterdocument-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_linkGenerate 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_linkRemove 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_copyCopy a Document.from-document-id (integer)
data: {
. collection_id
. collection_position
. name
} (object) required
post_api_ee_action_v2_executeExecute 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 underlydata: {
. action
. input (object)
. params (object)
. scope
} (object) required
post_api_ee_action_v2_execute_bulkExecute 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 thedata: {
. action
. inputs (array)
. params (object)
. scope
} (object) required
post_api_ee_action_v2_execute_formTemporary 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_graphFetch a graph of Application Permissions.No parameters
put_api_ee_advanced_permissions_application_graphDo a batch update of Application Permissions by passing a modified graph.skip-graph required
force required
data: {

} (object) required
get_api_ee_advanced_permissions_impersonationFetch 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_idDelete a Connection Impersonation entry.id (integer)
post_api_ee_ai_entity_analysis_analyze_chartAnalyze 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_fixSuggest fixes for a SQL query.data: {
. error_message (string)
. query (object)
} (object) required
post_api_ee_ai_sql_generation_generateGenerate a SQL query.data: {
. database_id (integer)
. prompt (string)
} (object) required
post_api_ee_audit_app_analytics_dev_exportExport 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_infoGets 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_subscriptionsDelete 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_summarizeSummarize 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_idProvide a summary of a dashboard.id (integer)
get_api_ee_billingGet 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_addonsGet addons information from the Metabase Store API.No parameters
get_api_ee_cloud_add_ons_plansGet plans information from the Metabase Store API.No parameters
post_api_ee_cloud_add_ons_by_product_typePurchase an add-on.product-type (string)
data: {
. quantity
. terms_of_service
} (object) required
post_api_ee_cloud_proxy_by_operation_idProxy 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_csvProvides content translation dictionary in CSVNo parameters
get_api_ee_content_translation_dictionaryFetch the content translation dictionary for authenticated users auth-based embedding flows.locale (string) required
get_api_ee_content_translation_dictionary_by_tokenFetch the content translation dictionary via a JSON Web Token signed with the embedding-secret-key.token (string)
post_api_ee_content_translation_upload_dictionaryUpload a CSV of content translationsNo parameters
post_api_ee_data_studio_table_publish_tablesSet 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_tablesUnset 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_idCreate 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_idDelete PG replication connection for the specified database.database-id (integer)
post_api_ee_database_replication_connection_by_database_id_previewReturn 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_databaseCreate 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_idUpdates 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_attributeid (integer)
data: {
. user_attribute
} (object) required
post_api_ee_dependencies_check_cardCheck 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_snippetCheck 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_transformCheck 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_graphThis 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: Inid (integer)
type (string)
archived (boolean)
get_api_ee_dependencies_graph_breakingReturns 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 locatiotypes
card-types
query (string)
archived (boolean)
include-personal-collections (boolean)
sort-column (string)
sort-direction (string)
get_api_ee_dependencies_graph_brokenReturns 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: Includeid (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_dependentsReturns 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-typid (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_unreferencedReturns 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-petypes
card-types
query (string)
archived (boolean)
include-personal-collections (boolean)
sort-column (string)
sort-direction (string)
put_api_ee_email_overrideUpdate 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_overrideClear all cloud email related settings. You must be a superuser or have setting permission to do this.No parameters
get_api_ee_embedding_hub_checklistGet the embedding hub checklist status, indicating which setup steps have been completed.No parameters
post_api_ee_gsheets_connectionHook 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_connectionCheck 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_connectionDisconnect the google service account. There is only one or zero at the time of writing.No parameters
post_api_ee_gsheets_connection_syncForce 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_accountChecks 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_libraryCreates the Library if it doesn't exist. Returns the created collection. Requires data analyst or superuser permissions.No parameters
get_api_ee_libraryGet the Library. If no library exists, it doesn't fail but returns an empty responseNo parameters
get_api_ee_library_treeThis matches /api/collection/tree but only returns the library collection.No parameters
get_api_ee_logs_query_execution_by_yyyy_mmFetch 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_sourcesReturn top level meta information about available information sources.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_check_transform_dependenciesCheck 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_subscriptionCreate a dashboard subscription.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_field_valuesReturn 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_recordsConstruct a query from a metric.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_find_outliersFind 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_insightsGenerate insights.data: {
. arguments (object)
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_current_userGet information about user that started the conversation.data: {
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_dashboard_detailsGet information about a given dashboard.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_document_detailsGet information about a given document.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_metric_detailsGet information about a given metric.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_query_detailsGet information about a given query.data: {
. arguments (object)
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_report_detailsGet information about a given report.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_snippet_detailsGet the content of a single SQL snippet.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_snippetsGet a list of all known SQL snippets.data: {
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_table_detailsGet information about a given table or model.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_tablesGet information about the tables in a given database.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_transform_detailsGet information about a transform.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_transform_python_library_detailsGet information about a Python library by path.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_get_transformsGet a list of all known transforms.data: {
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_query_datasourceConstruct a query from a model or table data source.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_query_metricConstruct a query from a metric.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_query_modelConstruct a query from a model.data: {
. arguments
. conversation_id (string)
. profile_id
} (object) required
post_api_ee_metabot_tools_searchEnhanced 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_v2Enhanced 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_streamingSend 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_contentCreate a new piece of content to insert into the document.data: {
. instructions (string)
. references (object)
} (object) required
post_api_ee_metabot_v3_feedbackProxy Metabot feedback to Harbormaster, adding the premium embedding token.data: {

} (object) required
get_api_ee_metabot_v3_metabotList configured metabot instancesNo parameters
get_api_ee_metabot_v3_metabot_by_idRetrieve one metabot instanceid (integer)
put_api_ee_metabot_v3_metabot_by_idUpdate a metabot instanceid (integer)
data: {
. collection_id
. use_verified_content (boolean)
} (object) required
get_api_ee_metabot_v3_metabot_by_id_prompt_suggestionsReturn 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_suggestionsDelete all prompt suggestions for the metabot instance with id.id (integer)
post_api_ee_metabot_v3_metabot_by_id_prompt_suggestions_regenerateRemove 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_idDelete the prompt suggestion with ID prompt-id for the metabot instance with id.id (integer)
prompt-id (integer)
get_api_ee_permission_debugThis 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 stuser_id (integer) required
model_id (string) required
action_type (string) required
get_api_ee_remote_sync_branchesGet 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_branchCreate 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_taskGet the current sync taskNo parameters
post_api_ee_remote_sync_current_task_cancelCancels the current task if one is runningNo parameters
get_api_ee_remote_sync_dirtyReturn 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_exportExport 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_changesCheck 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 cacheforce-refresh (boolean)
post_api_ee_remote_sync_importImport 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_dirtyCheck 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_settingsUpdate 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_stashStashes 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_keyFetch 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_keyCreate 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_groupsFetch a list of groups.startIndex
count
filter
post_api_ee_scim_v2_groupsCreate 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_idFetch a single group.id (string)
put_api_ee_scim_v2_groups_by_idUpdate a group.id (string)
data: {
. displayName (string)
. id (string)
. members (array)
. schemas (array)
} (object) required
delete_api_ee_scim_v2_groups_by_idDelete a group.id (string)
get_api_ee_scim_v2_usersFetch a list of users.startIndex
count
filter
post_api_ee_scim_v2_usersCreate 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_idFetch a single user.id (string)
put_api_ee_scim_v2_users_by_idUpdate 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_idActivate 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_statusFetch 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_exportSerialize 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_importDeserialize 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_idA 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: ascid
before_date
is_recursive (boolean) required
sort_column (string) required
sort_direction (string) required
post_api_ee_support_access_grantCreate 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_grantList 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 falseticket-number
user-id
include-revoked
get_api_ee_support_access_grant_currentGet the currently active support access grant, if one exists. Requires superuser permissions.No parameters
put_api_ee_support_access_grant_by_id_revokeRevoke an existing support access grant. Requires superuser permissions. Any admin can revoke any grant.id (integer)
post_api_ee_tenantCreate a new Tenantdata: {
. attributes
. name (string)
. slug (string)
} (object) required
get_api_ee_tenantGet all tenantsstatus (string) required
put_api_ee_tenant_by_idUpdate 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_idGet info about a tenantid (integer)
get_api_ee_transforms_python_library_by_pathGet the Python library for user modules.path (string)
put_api_ee_transforms_python_library_by_pathUpdate the Python library source code for user modules.path (string)
data: {
. source (string)
} (object) required
post_api_ee_transforms_python_test_runEvaluate 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_tablesGet all Tables visible to the current user which were created by uploading a file.No parameters
delete_api_ee_upload_management_tables_by_idDelete the uploaded table from the database, optionally archiving cards for which it is the primary source.id (integer)
archive-cards
get_api_ee_workspaceGet a list of all workspacesNo parameters
post_api_ee_workspaceCreate a new workspace Potential payload: :name 'a' :database_id 2data: {
. database_id (integer)
. name (string)
} (object) required
get_api_ee_workspace_checkoutGet 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 insteadtransform-id (integer) required
get_api_ee_workspace_databaseGet a list supported databases, and whether they're enabled and have required permissions.No parameters
get_api_ee_workspace_enabledTest 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_idGet a single workspace by IDws-id (integer)
put_api_ee_workspace_by_ws_idUpdate 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_idDelete a workspace and all its contents, including mirrored entities.ws-id (integer)
post_api_ee_workspace_by_ws_id_archiveArchive a workspace. Deletes the isolated schema and tables, but preserves mirrored entities.ws-id (integer)
get_api_ee_workspace_by_ws_id_external_transformGet 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_graphDisplay 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_logGet workspace creation status and recent log entries for polling during async setupws-id (integer)
post_api_ee_workspace_by_ws_id_mergeThis 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 futurews-id (integer)
data: {
. commit-message (string)
} (object) required
get_api_ee_workspace_by_ws_id_problemDetect 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-entws-id (integer)
post_api_ee_workspace_by_ws_id_queryExecute 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_runExecute 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_tableGet workspace tablesws-id (integer)
post_api_ee_workspace_by_ws_id_transformAdd 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_transformGet all transforms in a workspace.ws-id (integer)
post_api_ee_workspace_by_ws_id_transform_validate_targetValidate the target table for a workspace transformws-id (integer)
transform-id (string)
data: {
. db_id (integer)
. target (object)
} (object) required
get_api_ee_workspace_by_ws_id_transform_by_tx_idGet a specific transform in a workspace.ws-id (integer)
tx-id (string)
put_api_ee_workspace_by_ws_id_transform_by_tx_idUpdate 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_idDiscard 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_archiveMark 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_runDry-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_mergeMerge 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 futurews-id (integer)
tx-id (string)
data: {
. commit-message (string)
} (object) required
post_api_ee_workspace_by_ws_id_transform_by_tx_id_runRun 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_unarchiveUnmark 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_unarchiveRestore an archived workspace. Recreates the isolated schema and tables.ws-id (integer)
post_api_eid_translation_translateTranslate entity IDs to model IDs.data: {
. entity_ids (object)
} (object) required
put_api_emailUpdate 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_emailClear all email related settings. You must be a superuser or have setting permission to do this.No parameters
post_api_email_testSend 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_tokenFetch a Card via a JSON Web Token signed with the embedding-secret-key. Token should have the following format: :resource :question card-idtoken (string)
get_api_embed_card_by_token_params_by_param_key_remappingEmbedded 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_prefixEmbedded version of chain filter search endpoint.token (string)
param-key (string)
prefix (string)
get_api_embed_card_by_token_params_by_param_key_valuesEmbedded version of api.card filter values endpoint.token (string)
param-key (string)
get_api_embed_card_by_token_queryFetch 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 parameterstoken (string)
get_api_embed_card_by_token_query_by_export_formatLike 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_tokenFetch a Dashboard via a JSON Web Token signed with the embedding-secret-key. Token should have the following format: :resource :dashboard dashboard-idtoken (string)
get_api_embed_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_idFetch the results of running a Card belonging to a Dashboard using a JSON Web Token signed with the embedding-secret-keytoken (string)
dashcard-id (integer)
card-id (integer)
get_api_embed_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_id_by_export_formatFetch 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 formatstoken (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_remappingEmbedded 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_prefixEmbedded version of chain filter search endpoint.token (string)
param-key (string)
prefix (string)
get_api_embed_dashboard_by_token_params_by_param_key_valuesEmbedded version of chain filter values endpoint.token (string)
param-key (string)
get_api_embed_pivot_card_by_token_queryFetch 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 parameterstoken (string)
get_api_embed_pivot_dashboard_by_token_dashcard_by_dashcard_id_card_by_card_idFetch the results of running a Card belonging to a Dashboard using a JSON Web Token signed with the embedding-secret-keytoken (string)
dashcard-id (integer)
card-id (integer)
get_api_embed_tiles_card_by_token_by_zoom_by_x_by_yGenerates 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_yGenerates 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_idGet Field with ID.id (integer)
include_editable_data_model (boolean) required
put_api_field_by_idUpdate 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_dimensionSets the dimension for the given field at IDid (integer)
data: {
. human_readable_field_id
. name (string)
. type (string)
} (object) required
delete_api_field_by_id_dimensionRemove the dimension associated to field at IDid (integer)
post_api_field_by_id_discard_valuesDiscard 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_relatedReturn related entities.id (integer)
get_api_field_by_id_remapping_by_remapped_idFetch remapped Field values.id (integer)
remapped-id (integer)
value (string) required
post_api_field_by_id_rescan_valuesManually 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_idSearch 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_summaryGet the count and distinct count of Field with ID.id (integer)
get_api_field_by_id_valuesIf 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_valuesUpdate 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_geojsonLoad 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_keyFetch 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_glossaryFetch all glossary entries, optionally filtered by search term.No parameters
post_api_glossaryCreate a new glossary entry.data: {
. definition (string)
. term (string)
} (object) required
put_api_glossary_by_idUpdate an existing glossary entry.id (integer)
data: {
. definition (string)
. term (string)
} (object) required
delete_api_glossary_by_idDelete a glossary entry.id (integer)
put_api_google_settingsUpdate 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_settingsUpdate 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_tablesParse 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_sqlGenerate 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_modelsList available LLM models from the configured provider. Requires LLM to be configured Anthropic API key set in admin settings.No parameters
post_api_logger_adjustmentTemporarily adjust the log levels.data: {
. duration (integer)
. duration_unit (string)
. log_levels
} (object) required
delete_api_logger_adjustmentUndo any log level adjustments.No parameters
get_api_logger_logsLogs.No parameters
get_api_logger_presetsGet all known presets.No parameters
get_api_login_history_currentFetch recent logins for the current user.No parameters
post_api_measureCreate a new Measure.data: {
. definition (object)
. description
. name (string)
. table_id (integer)
} (object) required
get_api_measureFetch all Measures.No parameters
get_api_measure_by_idFetch Measure with ID.id (integer)
put_api_measure_by_idUpdate a Measure with ID.id (integer)
data: {
. archived
. definition
. description
. name
. revision_message (string)
} (object) required
post_api_model_indexCreate ModelIndex.data: {
. model_id (integer)
. pk_ref
. value_ref
} (object) required
get_api_model_indexRetrieve list of ModelIndex.model_id (integer) required
get_api_model_index_by_idRetrieve ModelIndex.id (integer)
delete_api_model_index_by_idDelete ModelIndex.id (integer)
post_api_moderation_reviewCreate a new ModerationReview.data: {
. moderated_item_id (integer)
. moderated_item_type
. status
. text
} (object) required
get_api_mt_gtapFetch 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_gtapCreate a new GTAP.data: {
. attribute_remappings
. card_id
. group_id (integer)
. table_id (integer)
} (object) required
post_api_mt_gtap_validateValidate 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_idFetch GTAP by idid (integer)
put_api_mt_gtap_by_idUpdate 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_idDelete a GTAP entry.id (integer)
get_api_mt_user_attributesFetch 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_attributesUpdate the login_attributes for a User.id (integer)
data: {
. login_attributes
} (object) required
get_api_native_query_snippetFetch all snippetsarchived required
post_api_native_query_snippetCreate a new NativeQuerySnippet.data: {
. collection_id
. content (string)
. description
. name
} (object) required
get_api_native_query_snippet_by_idFetch native query snippet with ID.id (integer)
put_api_native_query_snippet_by_idUpdate an existing NativeQuerySnippet.id (integer)
data: {
. archived
. collection_id
. content
. description
. name
} (object) required
get_api_notificationList 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 payloadcreator_id (integer)
recipient_id (integer)
creator_or_recipient_id (integer)
card_id (integer)
include_inactive (boolean)
payload_type
post_api_notificationCreate a new notification, return the created notification.data required
post_api_notification_sendSend an unsaved notification.data required
post_api_notification_unsubscribeAllow 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_undoAllow 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_idGet a notification by id.id (integer)
put_api_notification_by_idUpdate a notification, can also update its subscriptions, handlers. Return the updated notification.id (integer)
data required
post_api_notification_by_id_sendSend a notification by id.id (integer)
data: {
. handler_ids (array)
} (object) required
post_api_notification_by_id_unsubscribeUnsubscribe current user from a notification.id (integer)
post_api_notify_db_attached_datawarehouseSync 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_idNotification 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://wwwid (integer)
data: {
. scan
. table_id
. table_name
} (object) required
post_api_notify_db_by_id_new_tableSync 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_graphFetch a graph of all Permissions.No parameters
put_api_permissions_graphDo 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 somskip-graph required
force required
data: {

} (object) required
get_api_permissions_graph_db_by_db_idFetch a graph of all Permissions for db-id db-id.db-id (integer)
get_api_permissions_graph_group_by_group_idFetch a graph of all Permissions for group-id group-id.group-id (integer)
get_api_permissions_groupFetch 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_groupCreate a new PermissionsGroup.data: {
. is_tenant_group
. name (string)
} (object) required
put_api_permissions_group_by_group_idUpdate the name of a PermissionsGroup.group-id (integer)
data: {
. name (string)
} (object) required
delete_api_permissions_group_by_group_idDelete a specific PermissionsGroup.group-id (integer)
get_api_permissions_group_by_idFetch the details for a certain permissions group.id (integer)
get_api_permissions_membershipFetch 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 booleanNo parameters
post_api_permissions_membershipAdd 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_clearRemove 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_idUpdate a Permission Group membership. Returns the updated record.id (integer)
data: {
. is_group_manager (boolean)
} (object) required
delete_api_permissions_membership_by_idRemove a User from a PermissionsGroup delete their membership.id (integer)
get_api_persistList the entries of PersistedInfo in order to show a status page.No parameters
get_api_persist_card_by_card_idFetch a particular PersistedInfo by card-id.card-id (integer)
post_api_persist_card_by_card_id_persistMark 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_refreshRefresh the persisted model caching card-id.card-id (integer)
post_api_persist_card_by_card_id_unpersistUnpersist 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_persistAttempt to enable model persistence for a database. If already enabled returns a generic 204.id (integer)
post_api_persist_database_by_id_unpersistAttempt to disable model persistence for a database. If already not enabled, just returns a generic 204.id (integer)
post_api_persist_disableDisable 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_enableEnable global setting to allow databases to persist models.No parameters
post_api_persist_set_refresh_scheduleSet 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_idFetch a particular PersistedInfo by id.persisted-info-id (integer)
post_api_premium_features_token_refreshClear 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_statusFetch 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_tokenFetch a Card you're considering embedding by passing a JWT token.token (string)
get_api_preview_embed_card_by_token_params_by_param_key_remappingEmbedded 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_valuesEmbedded version of api.card filter values endpoint.token (string)
param-key (string)
get_api_preview_embed_card_by_token_queryFetch the query results for a Card you're considering embedding by passing a JWT token.token (string)
get_api_preview_embed_dashboard_by_tokenFetch 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_idFetch 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_remappingEmbedded 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_prefixEmbedded version of chain filter search endpoint.token (string)
param-key (string)
prefix (string)
get_api_preview_embed_dashboard_by_token_params_by_param_key_valuesEmbedded version of chain filter values endpoint.token (string)
param-key (string)
get_api_preview_embed_pivot_card_by_token_queryFetch 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_idFetch 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_yGenerates 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_yGenerates 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_feedbackEndpoint to provide feedback from the productdata: {
. comments
. email
. source (string)
} (object) required
get_api_public_action_by_uuidFetch a publicly-accessible Action. Does not require auth credentials. Public sharing must be enabled.uuid (string)
post_api_public_action_by_uuid_executeExecute the Action. parameters should be the mapped dashboard parameters with values.uuid (string)
data: {
. parameters
} (object) required
get_api_public_card_by_uuidFetch 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_remappingFetch 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_queryFetch 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_valuesFetch values for a parameter on a public card.uuid (string)
param-key (string)
get_api_public_card_by_uuid_queryFetch 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_formatFetch 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_uuidFetch 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_idFetch 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_formatFetch 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_executeFetches 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_executeExecute 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_remappingFetch 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_queryFetch 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_valuesFetch filter values for dashboard parameter param-key.uuid (string)
param-key (string)
get_api_public_document_by_uuidFetch 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_idRun 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_formatFetch 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_oembedoEmbed 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_queryFetch 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_idFetch 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_yGenerates 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_yGenerates 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_pulseFetch 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 itarchived required
dashboard_id
creator_or_recipient required
post_api_pulseCreate a new Pulse.data: {
. cards
. channels
. collection_id
. collection_position
. dashboard_id
. name (string)
. parameters
. skip_if_empty
} (object) required
get_api_pulse_form_inputProvides relevant configuration information and user choices for creating/updating Pulses.No parameters
post_api_pulse_testTest 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_unsubscribeAllow 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_undoAllow 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_idFetch 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_idUpdate a Pulse with id.id (integer)
data: {
. archived
. cards
. channels
. collection_id
. name
. parameters
. skip_if_empty
} (object) required
delete_api_pulse_by_id_subscriptionFor users to unsubscribe themselves from a pulse subscription.id (integer)
get_api_revisionGet revisions of an object.id (integer) required
entity (string) required
post_api_revision_revertRevert an object to a prior revision.data: {
. entity (string)
. id (integer)
. revision_id (integer)
} (object) required
get_api_revision_by_entity_by_idFetch Revisions for an object with ID.entity (string)
id (integer)
get_api_searchSearch 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 tq
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_reindexThis will trigger an immediate reindexing, if we are using search index.No parameters
post_api_search_re_initThis will blow away any search indexes, re-create, and re-populate them.No parameters
get_api_search_weightsReturn the current weights being used to rank the search resultscontext (string) required
put_api_search_weightsUpdate the current weights being used to rank the search resultscontext (string) required
search_engine
post_api_segmentCreate a new Segment.data: {
. definition (object)
. description
. name (string)
. table_id (integer)
} (object) required
get_api_segmentFetch all Segments.No parameters
get_api_segment_by_idFetch Segment with ID.id (integer)
put_api_segment_by_idUpdate 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_idArchive 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_relatedReturn related entities.id (integer)
post_api_sessionLogin.data: {
. password (string)
. username (string)
} (object) required
delete_api_sessionLogout.No parameters
post_api_session_forgot_passwordSend a reset email when user has forgotten their password.data: {
. email (string)
} (object) required
post_api_session_google_authLogin with Google Auth.data: {
. token (string)
} (object) required
post_api_session_password_checkEndpoint that checks if the supplied password meets the currently configured password complexity rules.data: {
. password (string)
} (object) required
get_api_session_password_reset_token_validCheck if a password reset token is valid and isn't expired.token (string) required
get_api_session_propertiesGet 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_passwordReset password with a reset token.data: {
. password (string)
. token (string)
} (object) required
get_api_settingGet 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_settingUpdate multiple Settings values. If called by a non-superuser, only user-local settings can be updated.data (object) required
get_api_setting_by_keyFetch a single Setting.key (string)
put_api_setting_by_keyCreate/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_setupSpecial 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_reportSend diagnostic information to the configured Slack channels.data: {
. diagnosticInfo (object)
} (object) required
get_api_slack_manifestReturns the YAML manifest file that should be used to bootstrap new Slack appsNo parameters
put_api_slack_settingsUpdate 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 - refreshdata: {
. slack-app-token
. slack-bug-report-channel
} (object) required
get_api_tableGet 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 forterm (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_tableUpdate 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_fksReturn 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_metadataReturn metadata for the 'virtual' table for a Card.id (integer)
get_api_table_by_idGet Table with ID.id (integer)
include_editable_data_model
put_api_table_by_idUpdate 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_csvInserts 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_valuesDiscard 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_orderReorder fieldsid (integer)
data (array) required
get_api_table_by_id_fksGet all foreign keys whose destination is a Field that belongs to this Table.id (integer)
get_api_table_by_id_query_metadataGet 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 accessid (integer)
include_sensitive_fields required
include_hidden_fields required
include_editable_data_model required
get_api_table_by_id_relatedReturn related entities.id (integer)
post_api_table_by_id_replace_csvReplaces 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_valuesManually 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_schemaTrigger a manual update of the schema metadata for this Table.id (integer)
get_api_table_by_table_id_dataGet the data for the given tabletable-id (integer)
get_api_taskFetch a list of recent tasks stored as Task HistoryNo parameters
get_api_task_infoReturn raw data about all scheduled tasks i.e., Quartz Jobs and Triggers.No parameters
get_api_task_runsList task runs with optional filters. Returns runs with hydrated entity names and task counts.No parameters
get_api_task_runs_entitiesGet 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_idGet a single task run with all its child tasks.id (integer)
get_api_task_unique_tasksReturns 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_idGet TaskHistory entry with ID.id (integer)
get_api_tiles_by_card_id_by_zoom_by_x_by_yGenerates 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_yGenerates 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_yGenerates a single tile image for an ad-hoc query.zoom (integer)
x (integer)
y (integer)
query required
latField required
lonField required
post_api_timelineCreate a new Timeline.data: {
. archived
. collection_id
. default
. description
. icon
. name (string)
} (object) required
get_api_timelineFetch a list of Timelines. Can include archived=true to return archived timelines.include (string)
archived (boolean) required
post_api_timeline_eventCreate 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_idFetch the TimelineEvent with id.id (integer)
put_api_timeline_event_by_idUpdate a TimelineEvent.id (integer)
data: {
. archived
. description
. icon
. name
. time_matters
. timeline_id
. timestamp
. timezone
} (object) required
delete_api_timeline_event_by_idDelete a TimelineEvent.id (integer)
get_api_timeline_collection_rootFetch the root Collection's timelines.include
archived required
get_api_timeline_collection_by_idFetch a specific Collection's timelines.id (integer)
include
archived required
get_api_timeline_by_idFetch 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_idUpdate 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_idDelete a Timeline. Will cascade delete its events as well.id (integer)
get_api_transformGet a list of transforms.last-run-start-time
last-run-statuses
tag-ids
database-id
post_api_transformCreate 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_jobCreate a new transform job.data: {
. description
. name (string)
. schedule (string)
. tag_ids (array)
. ui_display_type (string)
} (object) required
get_api_transform_jobGet all transform jobs.last-run-start-time
next-run-start-time
last-run-statuses
tag-ids
put_api_transform_job_by_job_idUpdate 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_idDelete a transform job.job-id (integer)
get_api_transform_job_by_job_idGet a transform job by ID.job-id (integer)
post_api_transform_job_by_job_id_runRun a transform job manually.job-id (integer)
get_api_transform_job_by_job_id_transformsGet the transforms of job specified by the job's ID.job-id (integer)
post_api_transform_tagCreate a new transform tag.data: {
. name (string)
} (object) required
get_api_transform_tagGet a list of all transform tags.No parameters
put_api_transform_tag_by_tag_idUpdate a transform tag.tag-id (integer)
data: {
. name (string)
} (object) required
delete_api_transform_tag_by_tag_idDelete a transform tag. Removes it from all transforms and jobs.tag-id (integer)
get_api_transform_runGet 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_idGet a transform run by ID.run-id (integer)
get_api_transform_by_idGet a specific transform.id (integer)
put_api_transform_by_idUpdate 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_idDelete a transform.id (integer)
post_api_transform_by_id_cancelCancel the current run for a given transform.id (integer)
get_api_transform_by_id_dependenciesGet the dependencies of a specific transform.id (integer)
get_api_transform_by_id_merge_historyGet 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_checkpointReset the checkpoint for an incremental transform.id (integer)
post_api_transform_by_id_runRun a transform.id (integer)
delete_api_transform_by_id_tableDelete a transform's output table.id (integer)
post_api_upload_csvCreate a table and model populated with the values from the attached CSV. Returns the model ID if successful.No parameters
get_api_userFetch 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_deactivatestatus
query
group_id
include_deactivated required
is_data_analyst
can_access_data_studio
tenancy
tenant_id
post_api_userCreate a new User, return a 400 if the email address is already takendata: {
. email (string)
. first_name
. last_name
. login_attributes
. source
. tenant_id
. user_group_memberships
} (object) required
get_api_user_key_value_namespace_by_namespaceReturns all KV pairs in a given namespace for the current usernamespace (string)
put_api_user_key_value_namespace_by_namespace_key_by_keyUpsert a KV-pair for the userkey (string)
namespace (string)
data: {
. expires_at
. value
} (object) required
get_api_user_key_value_namespace_by_namespace_key_by_keyGet a value for the userkey (string)
namespace (string)
delete_api_user_key_value_namespace_by_namespace_key_by_keyDeletes a KV-pair for the userkey (string)
namespace (string)
get_api_user_currentFetch the current User.No parameters
get_api_user_recipientsFetch 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_idFetch a User. You must be fetching yourself or be a superuser or a Group Manager.id (integer)
put_api_user_by_idUpdate 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
. email
. is_data_analyst
. locale
. is_group_manager
. is_superuser
. tenant_id
. last_name
. first_name
} (object) required
delete_api_user_by_idDisable 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_modalIndicate that a user has been informed about the vast intricacies of 'the' Query Builder.id (integer)
modal (string)
put_api_user_by_id_passwordUpdate a user's password.id (integer)
data: {
. password (string)
} (object) required
put_api_user_by_id_reactivateReactivate user at :idid (integer)
get_api_util_random_tokenReturn 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
customCall 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)