PostHog dashboards API

The dashboards API from PostHog — 40 operation(s) for dashboards.

Operations 58

GET /api/environments/{environment_id}/dashboards/ #
POST /api/environments/{environment_id}/dashboards/ #
GET /api/environments/{environment_id}/dashboards/{dashboard_id}/collaborators/ #
POST /api/environments/{environment_id}/dashboards/{dashboard_id}/collaborators/ #
DELETE /api/environments/{environment_id}/dashboards/{dashboard_id}/collaborators/{user__uuid}/ #
GET /api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/ #
POST /api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/passwords/ #
DELETE /api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/passwords/{password_id}/ #
POST /api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/refresh/ #
GET /api/environments/{environment_id}/dashboards/{id}/ #
PUT /api/environments/{environment_id}/dashboards/{id}/ #
PATCH /api/environments/{environment_id}/dashboards/{id}/ #
DELETE /api/environments/{environment_id}/dashboards/{id}/ #
POST /api/environments/{environment_id}/dashboards/{id}/analyze_refresh_result/ #
POST /api/environments/{environment_id}/dashboards/{id}/copy_tile/ #
PATCH /api/environments/{environment_id}/dashboards/{id}/move_tile/ #
POST /api/environments/{environment_id}/dashboards/{id}/reorder_tiles/ #
GET /api/environments/{environment_id}/dashboards/{id}/run_insights/ #
POST /api/environments/{environment_id}/dashboards/{id}/snapshot/ #
GET /api/environments/{environment_id}/dashboards/{id}/stream_tiles/ #
POST /api/environments/{environment_id}/dashboards/bulk_update_tags/ #
POST /api/environments/{environment_id}/dashboards/create_from_template_json/ #
POST /api/environments/{environment_id}/dashboards/create_unlisted_dashboard/ #
GET /api/environments/{environment_id}/data_color_themes/ #
POST /api/environments/{environment_id}/data_color_themes/ #
GET /api/environments/{environment_id}/data_color_themes/{id}/ #
PUT /api/environments/{environment_id}/data_color_themes/{id}/ #
PATCH /api/environments/{environment_id}/data_color_themes/{id}/ #
DELETE /api/environments/{environment_id}/data_color_themes/{id}/ #
GET /api/projects/{project_id}/dashboards/ #
POST /api/projects/{project_id}/dashboards/ #
GET /api/projects/{project_id}/dashboards/{dashboard_id}/collaborators/ #
POST /api/projects/{project_id}/dashboards/{dashboard_id}/collaborators/ #
DELETE /api/projects/{project_id}/dashboards/{dashboard_id}/collaborators/{user__uuid}/ #
GET /api/projects/{project_id}/dashboards/{dashboard_id}/sharing/ #
POST /api/projects/{project_id}/dashboards/{dashboard_id}/sharing/passwords/ #
DELETE /api/projects/{project_id}/dashboards/{dashboard_id}/sharing/passwords/{password_id}/ #
POST /api/projects/{project_id}/dashboards/{dashboard_id}/sharing/refresh/ #
GET /api/projects/{project_id}/dashboards/{id}/ #
PUT /api/projects/{project_id}/dashboards/{id}/ #
PATCH /api/projects/{project_id}/dashboards/{id}/ #
DELETE /api/projects/{project_id}/dashboards/{id}/ #
POST /api/projects/{project_id}/dashboards/{id}/analyze_refresh_result/ #
POST /api/projects/{project_id}/dashboards/{id}/copy_tile/ #
PATCH /api/projects/{project_id}/dashboards/{id}/move_tile/ #
POST /api/projects/{project_id}/dashboards/{id}/reorder_tiles/ #
GET /api/projects/{project_id}/dashboards/{id}/run_insights/ #
POST /api/projects/{project_id}/dashboards/{id}/snapshot/ #
GET /api/projects/{project_id}/dashboards/{id}/stream_tiles/ #
POST /api/projects/{project_id}/dashboards/bulk_update_tags/ #
POST /api/projects/{project_id}/dashboards/create_from_template_json/ #
POST /api/projects/{project_id}/dashboards/create_unlisted_dashboard/ #
GET /api/projects/{project_id}/data_color_themes/ #
POST /api/projects/{project_id}/data_color_themes/ #
GET /api/projects/{project_id}/data_color_themes/{id}/ #
PUT /api/projects/{project_id}/data_color_themes/{id}/ #
PATCH /api/projects/{project_id}/data_color_themes/{id}/ #
DELETE /api/projects/{project_id}/data_color_themes/{id}/ #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/posthog-dashboards-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

posthog-dashboards-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PostHog actions Dashboards API
  version: 1.0.0
  description: ''
servers:
- url: https://app.posthog.com/api
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: dashboards
paths:
  /api/environments/{environment_id}/dashboards/:
    get:
      operationId: environments_dashboards_list
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - dashboard:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDashboardBasicList'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/PaginatedDashboardBasicList'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
      - dashboards
    post:
      operationId: environments_dashboards_create
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Dashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Dashboard'
      security:
      - PersonalAPIKeyAuth:
        - dashboard:write
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
      - dashboards
  /api/environments/{environment_id}/dashboards/{dashboard_id}/collaborators/:
    get:
      operationId: environments_dashboards_collaborators_list
      parameters:
      - in: path
        name: dashboard_id
        schema:
          type: integer
        required: true
      - $ref: '#/components/parameters/EnvironmentIdPath'
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - dashboard:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DashboardCollaborator'
          description: ''
      deprecated: true
      x-explicit-tags: []
    post:
      operationId: environments_dashboards_collaborators_create
      parameters:
      - in: path
        name: dashboard_id
        schema:
          type: integer
        required: true
      - $ref: '#/components/parameters/EnvironmentIdPath'
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DashboardCollaborator'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DashboardCollaborator'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DashboardCollaborator'
        required: true
      security:
      - PersonalAPIKeyAuth:
        - dashboard:write
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardCollaborator'
          description: ''
      deprecated: true
      x-explicit-tags: []
  /api/environments/{environment_id}/dashboards/{dashboard_id}/collaborators/{user__uuid}/:
    delete:
      operationId: environments_dashboards_collaborators_destroy
      parameters:
      - in: path
        name: dashboard_id
        schema:
          type: integer
        required: true
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: path
        name: user__uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - dashboard:write
      responses:
        '204':
          description: No response body
      deprecated: true
      x-explicit-tags: []
  /api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/:
    get:
      operationId: environments_dashboards_sharing_list
      parameters:
      - in: path
        name: dashboard_id
        schema:
          type: integer
        required: true
      - $ref: '#/components/parameters/EnvironmentIdPath'
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - sharing_configuration:read
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SharingConfiguration'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/passwords/:
    post:
      operationId: environments_dashboards_sharing_passwords_create
      description: Create a new password for the sharing configuration.
      parameters:
      - in: path
        name: dashboard_id
        schema:
          type: integer
        required: true
      - $ref: '#/components/parameters/EnvironmentIdPath'
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SharingConfiguration'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SharingConfiguration'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SharingConfiguration'
      security:
      - PersonalAPIKeyAuth:
        - sharing_configuration:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharingConfiguration'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/passwords/{password_id}/:
    delete:
      operationId: environments_dashboards_sharing_passwords_destroy
      description: Delete a password from the sharing configuration.
      parameters:
      - in: path
        name: dashboard_id
        schema:
          type: integer
        required: true
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: path
        name: password_id
        schema:
          type: string
        required: true
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - sharing_configuration:write
      responses:
        '204':
          description: No response body
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{dashboard_id}/sharing/refresh/:
    post:
      operationId: environments_dashboards_sharing_refresh_create
      parameters:
      - in: path
        name: dashboard_id
        schema:
          type: integer
        required: true
      - $ref: '#/components/parameters/EnvironmentIdPath'
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SharingConfiguration'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SharingConfiguration'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SharingConfiguration'
      security:
      - PersonalAPIKeyAuth:
        - sharing_configuration:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharingConfiguration'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{id}/:
    get:
      operationId: environments_dashboards_retrieve
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: filters_override
        schema:
          type: string
        description: JSON object to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. See the dashboard filters schema for available keys (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a dashboard sharing token.
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      - in: query
        name: variables_override
        schema:
          type: string
        description: 'JSON object to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response''s `variables` field, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a dashboard sharing token.'
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - dashboard:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
    put:
      operationId: environments_dashboards_update
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Dashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Dashboard'
      security:
      - PersonalAPIKeyAuth:
        - dashboard:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
    patch:
      operationId: environments_dashboards_partial_update
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
      security:
      - PersonalAPIKeyAuth:
        - dashboard:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
    delete:
      operationId: environments_dashboards_destroy
      description: Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - dashboard:write
      responses:
        '405':
          description: No response body
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{id}/analyze_refresh_result/:
    post:
      operationId: environments_dashboards_analyze_refresh_result_create
      description: 'Generate AI analysis comparing before/after dashboard refresh.

        Expects cache_key in request body pointing to the stored ''before'' state.'
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Dashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Dashboard'
      responses:
        '200':
          description: No response body
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{id}/copy_tile/:
    post:
      operationId: environments_dashboards_copy_tile_create
      description: Copy an existing dashboard tile to another dashboard (insight or text card; new tile row).
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CopyDashboardTileRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CopyDashboardTileRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CopyDashboardTileRequest'
        required: true
      security:
      - PersonalAPIKeyAuth:
        - dashboard:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{id}/move_tile/:
    patch:
      operationId: environments_dashboards_move_tile_partial_update
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
      responses:
        '200':
          description: No response body
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{id}/reorder_tiles/:
    post:
      operationId: environments_dashboards_reorder_tiles_create
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReorderTilesRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ReorderTilesRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ReorderTilesRequest'
        required: true
      security:
      - PersonalAPIKeyAuth:
        - dashboard:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{id}/run_insights/:
    get:
      operationId: environments_dashboards_run_insights_retrieve
      description: Run all insights on a dashboard and return their results.
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: filters_override
        schema:
          type: string
        description: JSON object to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. See the dashboard filters schema for available keys (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a dashboard sharing token.
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      - in: query
        name: output_format
        schema:
          type: string
          enum:
          - json
          - optimized
        description: '''optimized'' (default) returns LLM-friendly formatted text per insight. ''json'' returns the raw query result objects.'
      - in: query
        name: refresh
        schema:
          type: string
          enum:
          - blocking
          - force_blocking
          - force_cache
        description: Cache behavior. 'force_cache' (default) serves from cache even if stale. 'blocking' uses cache if fresh, otherwise recalculates. 'force_blocking' always recalculates.
      - in: query
        name: variables_override
        schema:
          type: string
        description: 'JSON object to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response''s `variables` field, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a dashboard sharing token.'
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - query:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunInsightsResponse'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/RunInsightsResponse'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{id}/snapshot/:
    post:
      operationId: environments_dashboards_snapshot_create
      description: 'Snapshot the current dashboard state (from cache) for AI analysis.

        Returns a cache_key representing the ''before'' state, to be used with analyze_refresh_result.'
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Dashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Dashboard'
      responses:
        '200':
          description: No response body
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/{id}/stream_tiles/:
    get:
      operationId: environments_dashboards_stream_tiles_retrieve
      description: Stream dashboard metadata and tiles via Server-Sent Events. Sends metadata first, then tiles as they are rendered.
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: filters_override
        schema:
          type: string
        description: JSON object to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. See the dashboard filters schema for available keys (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a dashboard sharing token.
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this dashboard.
        required: true
      - in: query
        name: layoutSize
        schema:
          type: string
          enum:
          - sm
          - xs
        description: Layout size for tile positioning. 'sm' (default) for standard, 'xs' for mobile. The snake_case alias `layout_size` is also accepted for backward compatibility.
      - in: query
        name: variables_override
        schema:
          type: string
        description: 'JSON object to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response''s `variables` field, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a dashboard sharing token.'
      tags:
      - dashboards
      responses:
        '200':
          description: No response body
      deprecated: true
      x-explicit-tags:
      - core
  /api/environments/{environment_id}/dashboards/bulk_update_tags/:
    post:
      operationId: environments_dashboards_bulk_update_tags_create
      description: 'Bulk update tags on multiple objects.


        Accepts:

        - {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}


        Actions:

        - "add": Add tags to existing tags on each object

        - "remove": Remove specific tags from each object

        - "set": Replace all tags on each object with the provided list'
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpdateTagsRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkUpdateTagsRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkUpdateTagsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpdateTagsResponse'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/BulkUpdateTagsResponse'
          description: ''
      deprecated: true
      x-explicit-tags:
      - core
      - dashboards
  /api/environments/{environment_id}/dashboards/create_from_template_json/:
    post:
      operationId: environments_dashboards_create_from_template_json_create
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dashboard'
      responses:
        '200':
          description: No response body
      deprecated: true
      x-explicit-tags:
      - core
      - dashboards
  /api/environments/{environment_id}/dashboards/create_unlisted_dashboard/:
    post:
      operationId: environments_dashboards_create_unlisted_dashboard_create
      description: 'Creates an unlisted dashboard from template by tag.

        Enforces uniqueness (one per tag per team).

        Returns 409 if unlisted dashboard with this tag already exists.'
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: query
        name: format
        schema:
          type: string
          enum:
          - json
          - txt
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Dashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Dashboard'
      responses:
        '200':
          description: No response body
      deprecated: true
      x-explicit-tags:
      - core
      - dashboards
  /api/environments/{environment_id}/data_color_themes/:
    get:
      operationId: environments_data_color_themes_list
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - project:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataColorThemeList'
          description: ''
      deprecated: true
      x-explicit-tags:
      - dashboards
    post:
      operationId: environments_data_color_themes_create
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataColorTheme'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DataColorTheme'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DataColorTheme'
        required: true
      security:
      - PersonalAPIKeyAuth:
        - project:write
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataColorTheme'
          description: ''
      deprecated: true
      x-explicit-tags:
      - dashboards
  /api/environments/{environment_id}/data_color_themes/{id}/:
    get:
      operationId: environments_data_color_themes_retrieve
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this data color theme.
        required: true
      tags:
      - dashboards
      security:
      - PersonalAPIKeyAuth:
        - project:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataColorTheme'
          description: ''
      deprecated: true
      x-explicit-tags:
      - dashboards
    put:
      operationId: environments_data_color_themes_update
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this data color theme.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataColorTheme'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DataColorTheme'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DataColorTheme'
        required: true
      security:
      - PersonalAPIKeyAuth:
        - project:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataColorTheme'
          description: ''
      deprecated: true
      x-explicit-tags:
      - dashboards
    patch:
      operationId: environments_data_color_themes_partial_update
      parameters:
      - $ref: '#/components/parameters/EnvironmentIdPath'
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this data color theme.
        required: true
      tags:
      - dashboards
      requestBody:
        content:
     

# --- truncated at 32 KB (87 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/posthog/refs/heads/main/openapi/posthog-dashboards-api-openapi.yml