List Projects
Retrieves a list of projects on a Tableau site, including metadata such as name, description, parent project, content permissions, owner, and timestamps.
This tool returns a single page of up to 1000 projects per call. The response is a flat object
of the shape { data, totalAvailable } (see Example result). To collect
every project, start at pageNumber: 1 and increment pageNumber on each subsequent call until
you have collected totalAvailable items.
To get the count of projects matching the request, read totalAvailable from a single call
(for example, pageNumber: 1) without paging through every item.
APIs called
Optional arguments
capability
Only return projects the current user has this effective capability on. The only supported value
is Write, which returns just the projects the user can publish or create content into. The
filter is applied by Tableau, so totalAvailable counts only the matching projects. Use it when
asking the user where to publish so they are only offered projects they can publish to.
It combines with filter, for example capability: "Write" with
filter: "parentProjectId:eq:abc-123" lists the publishable child projects of a parent.
capability requires Tableau REST API version 3.30 or later (Tableau Server 2026.3+). On older
servers it is not advertised, because they ignore it and return every project the user can view.
The filter must also be enabled for the site by Tableau. On a 3.30+ site where it is not yet
enabled, capability is still advertised but is ignored, so the result includes every project the
user can view and publishing to some of them can fail with a permission error.
Example: Write
filter
A filter expression as defined in the Tableau REST API Projects filter fields.
The tool validates the filter expression client-side against the documented allowed fields and operators before calling the REST API. Invalid fields or operators are rejected up front instead of surfacing as a REST API error.
Supported filter fields and operators
| Field | Operators |
|---|---|
createdAt | eq, gt, gte, lt, lte |
name | eq, in |
ownerDomain | eq, in |
ownerEmail | eq, in |
ownerName | eq, in |
parentProjectId | eq, in |
topLevelProject | eq |
updatedAt | eq, gt, gte, lt, lte |
Example: name:eq:Default
Example: topLevelProject:eq:true
Example: parentProjectId:eq:abc-123
Example: updatedAt:gt:2023-01-01T00:00:00Z
limit
The maximum number of projects to return from the requested page. Must be a positive integer no greater than 1000 (the fixed page size). Use this to fetch fewer than a full page — for example, to request a partial final page. It does not fetch across pages.
Example: 500
See also: MAX_RESULT_LIMIT,
the overall cap on how many results can be paginated through across all pages.
pageNumber
Which 1000-item page of projects to fetch. This is a 1-based page index (page size is fixed at
1000); when omitted it defaults to 1. Increment pageNumber across calls to page through the
full result set.
When a server-side MAX_RESULT_LIMIT
is configured, only pages that fall within that cap are reachable. For example, with a limit of
2700 the highest page you can request is 3 (page 3 returns the final 700 items). Requesting a
higher page returns an error describing the valid page range rather than an empty result.
Example: 2
Example result
{
"data": [
{
"id": "af59ee84-a375-4cb4-84b9-eaa7864f59fb",
"name": "default",
"description": "The default project that was automatically created by Tableau.",
"contentPermissions": "ManagedByOwner",
"createdAt": "2026-05-13T14:58:28Z",
"updatedAt": "2026-05-13T14:58:28Z",
"owner": {
"id": "b4ffd9cf-6d7f-4a2f-a7a0-3bee3691ad36"
}
},
{
"id": "986ed80f-0a39-4b8a-b5af-c8b3f1280ae7",
"name": "Nested project 1",
"description": "",
"parentProjectId": "7de99ef3-0337-4959-8ffe-8d54fbb1f9aa",
"contentPermissions": "ManagedByOwner",
"createdAt": "2026-05-13T15:23:00Z",
"updatedAt": "2026-05-13T15:23:00Z",
"owner": {
"id": "86d935d7-d99c-46a1-8188-00faeee15465"
}
}
],
"totalAvailable": 2
}
The response fields are:
data: the projects on the requested page (at most 1000, or fewer whenlimitor a server cap applies).totalAvailable: the number of projects available for pagination (Your ownlimitargument does not affect this value).