TextQL Dashboard Service API

The DashboardService API from TextQL — 24 operation(s) for dashboardservice.

Operations 24

POST /textql.rpc.public.dashboard.DashboardService/CheckDashboardHealth CheckDashboardHealth #
POST /textql.rpc.public.dashboard.DashboardService/CreateDashboard CRUD operations #
POST /textql.rpc.public.dashboard.DashboardService/CreateDashboardFolder Folder management #
POST /textql.rpc.public.dashboard.DashboardService/DeleteDashboard DeleteDashboard #
POST /textql.rpc.public.dashboard.DashboardService/DeleteDashboardFolder DeleteDashboardFolder #
POST /textql.rpc.public.dashboard.DashboardService/DiscardDashboardChanges DiscardDashboardChanges #
POST /textql.rpc.public.dashboard.DashboardService/DuplicateDashboard DuplicateDashboard #
POST /textql.rpc.public.dashboard.DashboardService/GetDashboard GetDashboard #
POST /textql.rpc.public.dashboard.DashboardService/GetDashboardVersion GetDashboardVersion #
POST /textql.rpc.public.dashboard.DashboardService/GetDashboardViewStats View analytics #
POST /textql.rpc.public.dashboard.DashboardService/GetMembersWithDashboards Member management #
POST /textql.rpc.public.dashboard.DashboardService/ListDashboardFolders ListDashboardFolders #
POST /textql.rpc.public.dashboard.DashboardService/ListDashboardVersions Version history #
POST /textql.rpc.public.dashboard.DashboardService/ListDashboards ListDashboards #
POST /textql.rpc.public.dashboard.DashboardService/MoveDashboardToFolder MoveDashboardToFolder #
POST /textql.rpc.public.dashboard.DashboardService/PreviewConfigDashboard Config-managed dashboards: render a `.dashboard` straight from a patch ref… #
POST /textql.rpc.public.dashboard.DashboardService/PublishDashboard Publishing workflow #
POST /textql.rpc.public.dashboard.DashboardService/RegenerateScreenshot Screenshot management #
POST /textql.rpc.public.dashboard.DashboardService/RestoreDashboardVersion RestoreDashboardVersion #
POST /textql.rpc.public.dashboard.DashboardService/RunScheduledDashboard RunScheduledDashboard #
POST /textql.rpc.public.dashboard.DashboardService/SpawnDashboard Dashboard execution #
POST /textql.rpc.public.dashboard.DashboardService/UpdateDashboard UpdateDashboard #
POST /textql.rpc.public.dashboard.DashboardService/UpdateDashboardFolder UpdateDashboardFolder #
POST /textql.rpc.public.dashboard.DashboardService/UpdateDashboardSchedule Scheduling #

Documentation

Specifications

Other Resources

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/textql-dashboardservice-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

textql-dashboardservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TextQL Dashboard Service API
  version: 1.0.0
  description: 'TextQL public API. Generated from protobuf service definitions; internal

    endpoints are excluded via google.api.visibility / file_visibility.'
servers:
- url: https://app.textql.com/rpc/public
security:
- apiKey: []
tags:
- name: DashboardService
paths:
  /textql.rpc.public.dashboard.DashboardService/CheckDashboardHealth:
    post:
      tags:
      - DashboardService
      summary: CheckDashboardHealth
      operationId: DashboardService_CheckDashboardHealth
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: checkHealth
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.CheckDashboardHealthRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.CheckDashboardHealthResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.checkHealth({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.check_health()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/CreateDashboard:
    post:
      tags:
      - DashboardService
      summary: CRUD operations
      operationId: DashboardService_CreateDashboard
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: createDashboard
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.CreateDashboardRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.CreateDashboardResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.createDashboard({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.create_dashboard()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/CreateDashboardFolder:
    post:
      tags:
      - DashboardService
      summary: Folder management
      operationId: DashboardService_CreateDashboardFolder
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: createFolder
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.CreateDashboardFolderRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.CreateDashboardFolderResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.createFolder({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.create_folder()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/DeleteDashboard:
    post:
      tags:
      - DashboardService
      summary: DeleteDashboard
      operationId: DashboardService_DeleteDashboard
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: delete
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.DeleteDashboardRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.protobuf.Empty'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.delete({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.delete()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/DeleteDashboardFolder:
    post:
      tags:
      - DashboardService
      summary: DeleteDashboardFolder
      operationId: DashboardService_DeleteDashboardFolder
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: deleteFolder
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.DeleteDashboardFolderRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.protobuf.Empty'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.deleteFolder({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.delete_folder()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/DiscardDashboardChanges:
    post:
      tags:
      - DashboardService
      summary: DiscardDashboardChanges
      operationId: DashboardService_DiscardDashboardChanges
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: discardChanges
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.DiscardDashboardChangesRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.DiscardDashboardChangesResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.discardChanges({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.discard_changes()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/DuplicateDashboard:
    post:
      tags:
      - DashboardService
      summary: DuplicateDashboard
      operationId: DashboardService_DuplicateDashboard
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: duplicate
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.DuplicateDashboardRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.DuplicateDashboardResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.duplicate({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.duplicate()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/GetDashboard:
    post:
      tags:
      - DashboardService
      summary: GetDashboard
      operationId: DashboardService_GetDashboard
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: get
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.GetDashboardRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.GetDashboardResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.get({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.get()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/GetDashboardVersion:
    post:
      tags:
      - DashboardService
      summary: GetDashboardVersion
      operationId: DashboardService_GetDashboardVersion
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: getVersion
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.GetDashboardVersionRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.GetDashboardVersionResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.getVersion({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.get_version()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/GetDashboardViewStats:
    post:
      tags:
      - DashboardService
      summary: View analytics
      operationId: DashboardService_GetDashboardViewStats
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: getDashboardViewStats
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.GetDashboardViewStatsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.GetDashboardViewStatsResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.getDashboardViewStats({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.get_dashboard_view_stats()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/GetMembersWithDashboards:
    post:
      tags:
      - DashboardService
      summary: Member management
      operationId: DashboardService_GetMembersWithDashboards
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: getMembersWithDashboards
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.GetMembersWithDashboardsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.GetMembersWithDashboardsResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.getMembersWithDashboards({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.get_members_with_dashboards(body={})\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/ListDashboardFolders:
    post:
      tags:
      - DashboardService
      summary: ListDashboardFolders
      operationId: DashboardService_ListDashboardFolders
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: listFolders
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.ListDashboardFoldersRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.ListDashboardFoldersResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.listFolders({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.list_folders(body={})\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/ListDashboardVersions:
    post:
      tags:
      - DashboardService
      summary: Version history
      operationId: DashboardService_ListDashboardVersions
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: listVersions
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.ListDashboardVersionsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.ListDashboardVersionsResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.listVersions({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.list_versions()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/ListDashboards:
    post:
      tags:
      - DashboardService
      summary: ListDashboards
      operationId: DashboardService_ListDashboards
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: list
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.ListDashboardsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.ListDashboardsResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.list({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.list()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/MoveDashboardToFolder:
    post:
      tags:
      - DashboardService
      summary: MoveDashboardToFolder
      operationId: DashboardService_MoveDashboardToFolder
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: moveToFolder
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.MoveDashboardToFolderRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.MoveDashboardToFolderResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.moveToFolder({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.move_to_folder()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/PreviewConfigDashboard:
    post:
      tags:
      - DashboardService
      summary: 'Config-managed dashboards: render a `.dashboard` straight from a patch ref…'
      description: 'Config-managed dashboards: render a `.dashboard` straight from a patch ref before

        it merges (ADR-0022). Runs as the file''s run_as, gated on the previewer being

        authorized for it; persists nothing.'
      operationId: DashboardService_PreviewConfigDashboard
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: previewConfig
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.PreviewConfigDashboardRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.PreviewConfigDashboardResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.previewConfig({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.preview_config()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/PublishDashboard:
    post:
      tags:
      - DashboardService
      summary: Publishing workflow
      operationId: DashboardService_PublishDashboard
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: publish
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.dashboard.PublishDashboardRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.public.dashboard.PublishDashboardResponse'
      x-codeSamples:
      - lang: typescript
        label: TypeScript (SDK)
        source: "import { Textql } from \"@textql/sdk\";\n\nconst textql = new Textql({\n  apiKey: process.env[\"TEXTQL_API_KEY\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await textql.dashboards.publish({\n    body: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.dashboards.publish()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dashboard.DashboardService/RegenerateScreenshot:
    post:
      tags:
      - DashboardService
      summary: Screenshot management
      operationId: DashboardService_RegenerateScreenshot
      x-speakeasy-group: dashboards
      x-speakeasy-name-override: regenerateScreenshot
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout

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