Tableau Desktop Projects API

Manage projects on a site.

OpenAPI Specification

tableau-desktop-projects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Tableau REST Authentication Projects API
  version: '3.22'
  description: The Tableau REST API enables programmatic management of Tableau Server and Tableau Cloud resources, including authentication, sites, users, projects, workbooks, and data sources. This minimal specification captures a representative subset of endpoints documented in the Tableau REST API Reference.
  contact:
    name: Tableau Developer Program
    url: https://www.tableau.com/developer
servers:
- url: https://{tableau-server}/api/3.22
  description: Tableau Server / Tableau Cloud REST API
  variables:
    tableau-server:
      default: 10ay.online.tableau.com
      description: Hostname of the Tableau Server or Tableau Cloud pod.
security:
- tableauAuth: []
tags:
- name: Projects
  description: Manage projects on a site.
paths:
  /sites/{siteId}/projects:
    parameters:
    - $ref: '#/components/parameters/SiteId'
    get:
      operationId: queryProjects
      summary: Query Projects
      description: Returns a list of projects on the specified site.
      tags:
      - Projects
      responses:
        '200':
          description: A list of projects.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    post:
      operationId: createProject
      summary: Create Project
      description: Creates a project on the specified site.
      tags:
      - Projects
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '201':
          description: Project created.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /sites/{siteId}/projects/{projectId}:
    parameters:
    - $ref: '#/components/parameters/SiteId'
    - $ref: '#/components/parameters/ProjectId'
    put:
      operationId: updateProject
      summary: Update Project
      description: Updates the specified project.
      tags:
      - Projects
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '200':
          description: Project updated.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    delete:
      operationId: deleteProject
      summary: Delete Project
      description: Deletes the specified project.
      tags:
      - Projects
      responses:
        '204':
          description: Project deleted.
components:
  schemas:
    Request:
      type: object
      description: Generic Tableau REST API request envelope (tsRequest).
      additionalProperties: true
    Response:
      type: object
      description: Generic Tableau REST API response envelope (tsResponse).
      additionalProperties: true
  parameters:
    SiteId:
      name: siteId
      in: path
      required: true
      description: The LUID of the site.
      schema:
        type: string
    ProjectId:
      name: projectId
      in: path
      required: true
      description: The LUID of the project.
      schema:
        type: string
  securitySchemes:
    tableauAuth:
      type: apiKey
      in: header
      name: X-Tableau-Auth
      description: Authentication token returned by the Sign In endpoint.
x-generated-from: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm
x-generated-by: claude-crawl-2026-05-08