Introduction to Tableau Metadata API

The Tableau Metadata API enables you to discover and query assets and metadata indexed by Tableau Catalog.

You can do the following tasks using the Metadata API:

In this section

What is Tableau metadata?

Tableau Catalog indexes information about Tableau content and their assets. The Metadata API surfaces the information that Catalog discovers, tracks, and stores from the content that has been published to your Tableau Online site or Tableau Server.

These assets can be categorized by type (e.g. table or workbook). Assets can be unique to Tableau (e.g., embedded data sources and calculated fields) and not unique to Tableau (e.g., database tables and columns). Assets can have information attached to them (e.g., tags and ratings). Assets can also have relationships to other assets.

The relationships among the content and assets and the information about each asset is the metadata.

Metadata API and GraphQL

The Metadata API uses GraphQL, a query language for APIs that describes how to ask for and return only the data that you’re interested in.

For more information about GraphQL and what you can do with it, see

When to use the Metadata API?

The Metadata API is fast and flexible. It is best when you are looking to find out specific information about the relationships between assets or their structures.

When to use the Tableau Server REST API?

With regard to metadata, you can use the Tableau Server REST API to add, update, or remove external assets; and add additional metadata to the external assets like descriptions, certification, and data quality warnings. For more information, see Metadata Methods topic in the Tableau Server REST API.

Note: You can also use the Tableau Server REST API for additional tasks like publishing workbooks or datasources, or for administrative tasks, such as creating groups and adding or removing users.

Differences between using GraphQL and REST

If you’re familiar with REST APIs then you understand the concepts of endpoints (or resources) and HTTP requests. For example, if you are using the Tableau Server REST API] and you want to find all the workbooks on Tableau Online or Tableau Server, you can send a GET request to return that information. If you want to find out something else, you need to send another request to a different endpoint.

Like REST APIs, GraphQL is also served over HTTP. However, instead of sending requests to multiple endpoints to return the data of interest, you can send one query to one endpoint and have that filtered to return only what you ask for. A GraphQL server is associated with one endpoint.

GraphQL is based on the concept of a graph (queries) and the relationship between the types (objects) defined by the GraphQL schema.