TextQL Dataset Service API

The DatasetService API from TextQL — 14 operation(s) for datasetservice.

Operations 14

POST /textql.rpc.public.dataset.DatasetService/CreateFolder CreateFolder #
POST /textql.rpc.public.dataset.DatasetService/CreatePowerBIDataset CreatePowerBIDataset #
POST /textql.rpc.public.dataset.DatasetService/CreateTableauDataset Create Tableau dataset from views/datasources #
POST /textql.rpc.public.dataset.DatasetService/CreateUploadPresignUrl uploads #
POST /textql.rpc.public.dataset.DatasetService/DeleteDataset Delete a dataset (soft delete) #
POST /textql.rpc.public.dataset.DatasetService/ExportDataset export dataset in "raw" format – original if dataset is uploaded, converted… #
POST /textql.rpc.public.dataset.DatasetService/GetDataset GetDataset, GetDatasets only return metadata #
POST /textql.rpc.public.dataset.DatasetService/GetDatasetStats GetDatasetStats #
POST /textql.rpc.public.dataset.DatasetService/GetDatasetValues GetDatasetValues #
POST /textql.rpc.public.dataset.DatasetService/GetDatasets GetDatasets #
POST /textql.rpc.public.dataset.DatasetService/GetDatasetsByIds GetDatasetsByIds #
POST /textql.rpc.public.dataset.DatasetService/GetFolders for AR: CreateFolderACL, UpdateFolderACL, DeleteFolderACL #
POST /textql.rpc.public.dataset.DatasetService/ProcessUploadPresignUrl ProcessUploadPresignUrl #
POST /textql.rpc.public.dataset.DatasetService/UpdateDataset Update dataset metadata #

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-datasetservice-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-datasetservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TextQL Dataset 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: DatasetService
paths:
  /textql.rpc.public.dataset.DatasetService/CreateFolder:
    post:
      tags:
      - DatasetService
      summary: CreateFolder
      operationId: DatasetService_CreateFolder
      x-speakeasy-group: datasets
      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.dataset.CreateFolderRequest'
        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.dataset.CreateFolderResponse'
      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.datasets.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.datasets.create_folder()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/CreatePowerBIDataset:
    post:
      tags:
      - DatasetService
      summary: CreatePowerBIDataset
      operationId: DatasetService_CreatePowerBIDataset
      x-speakeasy-group: datasets
      x-speakeasy-name-override: createPowerBIDataset
      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.dataset.CreatePowerBIDatasetRequest'
        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.dataset.CreatePowerBIDatasetResponse'
      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.datasets.createPowerBIDataset({\n    body: {\n      reports: [\n        {\n          createdDate: new Date(\"2023-01-15T01:30:15.01Z\"),\n        },\n      ],\n      datasets: [\n        {\n          createdDate: new Date(\"2023-01-15T01:30:15.01Z\"),\n        },\n      ],\n    },\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\nfrom textql_sdk.utils import parse_datetime\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.datasets.create_power_bi_dataset(reports=[\n        {\n            \"created_date\": parse_datetime(\"2023-01-15T01:30:15.01Z\"),\n        },\n    ], datasets=[\n        {\n            \"created_date\": parse_datetime(\"2023-01-15T01:30:15.01Z\"),\n        },\n    ])\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/CreateTableauDataset:
    post:
      tags:
      - DatasetService
      summary: Create Tableau dataset from views/datasources
      operationId: DatasetService_CreateTableauDataset
      x-speakeasy-group: datasets
      x-speakeasy-name-override: createTableauDataset
      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.dataset.CreateTableauDatasetRequest'
        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.dataset.CreateTableauDatasetResponse'
      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.datasets.createTableauDataset({\n    body: {\n      views: [\n        {\n          createdAt: new Date(\"2023-01-15T01:30:15.01Z\"),\n          updatedAt: new Date(\"2023-01-15T01:30:15.01Z\"),\n        },\n      ],\n      datasources: [\n        {\n          createdAt: new Date(\"2023-01-15T01:30:15.01Z\"),\n          updatedAt: new Date(\"2023-01-15T01:30:15.01Z\"),\n        },\n      ],\n    },\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom textql_sdk import Textql\nfrom textql_sdk.utils import parse_datetime\n\n\nwith Textql(\n    api_key=os.getenv(\"TEXTQL_API_KEY\", \"\"),\n) as textql:\n\n    res = textql.datasets.create_tableau_dataset(views=[\n        {\n            \"created_at\": parse_datetime(\"2023-01-15T01:30:15.01Z\"),\n            \"updated_at\": parse_datetime(\"2023-01-15T01:30:15.01Z\"),\n        },\n    ], datasources=[\n        {\n            \"created_at\": parse_datetime(\"2023-01-15T01:30:15.01Z\"),\n            \"updated_at\": parse_datetime(\"2023-01-15T01:30:15.01Z\"),\n        },\n    ])\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/CreateUploadPresignUrl:
    post:
      tags:
      - DatasetService
      summary: uploads
      operationId: DatasetService_CreateUploadPresignUrl
      x-speakeasy-group: datasets
      x-speakeasy-name-override: createUploadPresignUrl
      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.dataset.CreateUploadPresignUrlRequest'
        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.dataset.CreateUploadPresignUrlResponse'
      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.datasets.createUploadPresignUrl({\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.datasets.create_upload_presign_url()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/DeleteDataset:
    post:
      tags:
      - DatasetService
      summary: Delete a dataset (soft delete)
      operationId: DatasetService_DeleteDataset
      x-speakeasy-group: datasets
      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.dataset.DeleteDatasetRequest'
        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.dataset.DeleteDatasetResponse'
      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.datasets.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.datasets.delete()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/ExportDataset:
    post:
      tags:
      - DatasetService
      summary: export dataset in "raw" format – original if dataset is uploaded, converted…
      description: export dataset in "raw" format – original if dataset is uploaded, converted format otherwise (defaults to CSV)
      operationId: DatasetService_ExportDataset
      x-speakeasy-group: datasets
      x-speakeasy-name-override: export
      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.dataset.ExportDatasetRequest'
        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.dataset.ExportDatasetResponse'
      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.datasets.export({\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.datasets.export()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/GetDataset:
    post:
      tags:
      - DatasetService
      summary: GetDataset, GetDatasets only return metadata
      operationId: DatasetService_GetDataset
      x-speakeasy-group: datasets
      x-speakeasy-name-override: fetch
      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.dataset.GetDatasetRequest'
        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.dataset.GetDatasetResponse'
      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.datasets.fetch({\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.datasets.fetch()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/GetDatasetStats:
    post:
      tags:
      - DatasetService
      summary: GetDatasetStats
      operationId: DatasetService_GetDatasetStats
      x-speakeasy-group: datasets
      x-speakeasy-name-override: getStats
      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.dataset.GetDatasetStatsRequest'
        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.dataset.GetDatasetStatsResponse'
      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.datasets.getStats({\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.datasets.get_stats()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/GetDatasetValues:
    post:
      tags:
      - DatasetService
      summary: GetDatasetValues
      operationId: DatasetService_GetDatasetValues
      x-speakeasy-group: datasets
      x-speakeasy-name-override: getDatasetValues
      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.dataset.GetDatasetValuesRequest'
        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.dataset.GetDatasetValuesResponse'
      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.datasets.getDatasetValues({\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.datasets.get_dataset_values()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/GetDatasets:
    post:
      tags:
      - DatasetService
      summary: GetDatasets
      operationId: DatasetService_GetDatasets
      x-speakeasy-group: datasets
      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.dataset.GetDatasetsRequest'
        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.dataset.GetDatasetsResponse'
      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.datasets.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.datasets.get()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/GetDatasetsByIds:
    post:
      tags:
      - DatasetService
      summary: GetDatasetsByIds
      operationId: DatasetService_GetDatasetsByIds
      x-speakeasy-group: datasets
      x-speakeasy-name-override: getByIds
      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.dataset.GetDatasetsByIdsRequest'
        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.dataset.GetDatasetsByIdsResponse'
      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.datasets.getByIds({\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.datasets.get_by_ids()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/GetFolders:
    post:
      tags:
      - DatasetService
      summary: 'for AR: CreateFolderACL, UpdateFolderACL, DeleteFolderACL'
      operationId: DatasetService_GetFolders
      x-speakeasy-group: datasets
      x-speakeasy-name-override: getFolders
      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.dataset.GetFoldersRequest'
        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.dataset.GetFoldersResponse'
      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.datasets.getFolders({\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.datasets.get_folders()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/ProcessUploadPresignUrl:
    post:
      tags:
      - DatasetService
      summary: ProcessUploadPresignUrl
      description: 'for AR: CreateDatasetACL, UpdateDatasetACL, DeleteDatasetACL'
      operationId: DatasetService_ProcessUploadPresignUrl
      x-speakeasy-group: datasets
      x-speakeasy-name-override: processUploadPresignUrl
      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.dataset.ProcessUploadPresignUrlRequest'
        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.dataset.ProcessUploadPresignUrlResponse'
      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.datasets.processUploadPresignUrl({\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.datasets.process_upload_presign_url()\n\n    # Handle response\n    print(res)"
  /textql.rpc.public.dataset.DatasetService/UpdateDataset:
    post:
      tags:
      - DatasetService
      summary: Update dataset metadata
      operationId: DatasetService_UpdateDataset
      x-speakeasy-group: datasets
      x-speakeasy-name-override: updateDataset
      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.dataset.UpdateDatasetRequest'
        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.dataset.UpdateDatasetResponse'
      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.datasets.updateDataset({\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.datasets.update_dataset()\n\n    # Handle response\n    print(res)"
components:
  schemas:
    textql.rpc.public.dataset.GetDatasetsByIdsRequest:
      type: object
      properties:
        datasetIds:
          type: array
          items:
            type: string
          title: dataset_ids
      title: GetDatasetsByIdsRequest
      additionalProperties: false
    textql.rpc.public.dataset.GetDatasetStatsRequest:
      type: object
      properties:
        datasetId:
          type: string
          title: dataset_id
        versionId:
          type: integer
          title: version_id
          format: int32
          nullable: true
      title: GetDatasetStatsRequest
      additionalProperties: false
    textql.rpc.public.dataset.ProcessUploadPresignUrlResponse:
      type: object
      properties:
        dataset:
          title: dataset
          $ref: '#/components/schemas/textql.rpc.public.dataset.Dataset'
      title: ProcessUploadPresignUrlResponse
      additionalProperties: false
    textql.rpc.public.dataset.TabularFileCategory:
      type: string
      title: TabularFileCategory
      enum:
      - CATEGORY_UNKNOWN
      - CATEGORY_CSV
      - CATEGORY_TSV
      - CATEGORY_XLSX
      - CATEGORY_XLS
      - CATEGORY_PARQUET
      - CATEGORY_ODS
      description: never change the names or numbers of existing tabular file categories!
    textql.rpc.public.dataset.GetDatasetValuesResponse:
      type: object
      properties:
        df:
          title: df
          $ref: '#/components/schemas/textql.rpc.public.dataframe.DataFrame'
        numCols:
          type:
          - integer
          - string
          title: num_cols
          format: int64
        numRows:
          type:
          - integer
          - string
          title: num_rows
          format: int64
      title: GetDatasetValuesResponse
      additionalProperties: false
    textql.rpc.public.dataframe.Uint64Values:
      type: object
      properties:
        values:
          type: array
          items:
            type:
            - integer
            - string
            format: int64
          title: values
      title: Uint64Values
      additionalProperties: false
    textql.rpc.public.dataset.TableauData:
      type: object
      properties:
        connectorId:
          type: integer
          title: connector_id
          format: int32
        projectId:
          type: string
          title: project_id
        projectName:
          type: string
          title: project_name
        views:
          type: array
          items:
            $ref: '#/components/schemas/textql.rpc.public.tableau.TableauView'
          title: views
        datasources:
          type: array
          items:
            $ref: '#/components/schemas/textql.rpc.public.tableau.TableauDatasource'
          title: datasources
      title: TableauData
      additionalProperties: false
    textql.rpc.public.dataframe.DataFrameInfo:
      type: object
      properties:
        name:
          type: string
          title: name
        external:
          type: boolean
          title: external
        numRows:
          type:
          - integer
          - string
          title: num_rows
          format: int64
        numCols:
          type:
          - integer
          - string
          title: num_cols
          format: int64
        memoryUsage:
          type:
          - integer
          - string
          title: memory_usage
          format: int64
          description: in bytes
      title: DataFrameInfo
      additionalProperties: false
    textql.rpc.public.dataframe.BoolValues:
      type: object
      properties:
        values:
          type: array
          items:
            type: boolean
          title: values
      title: BoolValues
      additionalProperties: false
    textql.rpc.public.dataset.GetFoldersRequest:
      type: object
      properties:
        path:
          type: string
          title: path
      title: GetFoldersRequest
      additionalProperties: false
    textql.rpc.public.dataset.GetDatasetsByIdsResponse:
      type: object
      properties:
        datasets:
          type: array
          items:
            $ref: '#/components/schemas/textql.rpc.public.dataset.Dataset'
          title: datasets
      title: GetDatasetsByIdsResponse
      additionalProperties: false
    textql.rpc.public.dataset.ProcessUploadPresignUrlRequest:
      type: object
      properties:
        datasetId:
          type: string
          title: dataset_id
        datasetVersion:
          type: integer
          title: dataset_version
          format: int32
      title: ProcessUploadPresignUrlRequest
      additionalProperties: false
    connect.error_details.Any:
      type: object
      properties:
        type:
          type: string
          description: 'A URL that acts as a globally unique identifier for the type of the serialized message. For example: `type.googleapis.com/google.rpc.ErrorInfo`. This is used to determine the schema of the data in the `value` field and is the discriminator for the `debug` field.'
        value:
          type: string
          format: binary
          description: The Protobuf message, serialized as bytes and base64-enc

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