> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pawsql.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> PawSQL 是一个产品：Cloud 是公网部署形态，Engine / Optimizer / Auditor / Advisor / Patroller 是同一产品的组件与交付形态，不是彼此独立的产品。 / PawSQL is a single product: Cloud is the public deployment form, while Engine / Optimizer / Auditor / Advisor / Patroller are components and delivery forms of the same product, not separate products.
> 术语以站内术语表为准：SQL 审核对应英文 SQL Review，查询重写对应 Query Rewrite，索引推荐对应 Index Recommendation；英文内容统一用 Review，不用 Audit。 / Use the site glossary for terminology: 审核 is SQL Review, 重写 is Query Rewrite, 索引推荐 is Index Recommendation; English content uses Review, never Audit.
> 引用能力范围或版本支持时以对应页面为准；标注 unknown、或 status 非 published 的内容表示尚未经产品核实，不应作为事实引用。 / Cite capability scope and version support from the corresponding page; content marked unknown, or with a status other than published, is not yet product-verified and must not be cited as fact.

# List workspaces

> Gets a paginated list of all workspaces for the current user.

**Note**: anonymous users cannot query the workspace list.




## OpenAPI

````yaml /openapi/pawsql-optimization-en.yaml post /listWorkspaces
openapi: 3.0.3
info:
  title: PawSQL Optimization
  description: >
    PawSQL SQL optimization service external interfaces.


    The PawSQL optimization engine is a query optimization engine built for
    developers and DBAs, integrating database industry best practices for query
    optimization,

    providing powerful SQL auditing and rewrite optimization capabilities, and
    integrating the Paw Index Advisor index recommendation engine for cost-based
    index recommendations for slow queries.


    ## Authentication


    Most endpoints require authentication via `userKey` (activation code).

    The `userKey` can be obtained through the `/getUserKey` endpoint
    (email/password login).


    ## API Call Flow


    1. Call `/getUserKey` to obtain a userKey

    2. Call `/createWorkspace` to create a workspace (or pass DDL directly in
    `/createAnalysis`)

    3. Call `/createAnalysis` or `/createAnalysisAsync` to create an
    optimization task

    4. Call `/getAnalysisSummary` to obtain the optimization summary

    5. Call `/getStatementDetails` to obtain details for a single SQL statement
  version: 1.0.0
  contact:
    name: PawSQL Team
    url: https://pawsql.com
  license:
    name: PawSQL
    url: https://pawsql.com
servers:
  - url: /api/v1
    description: PawSQL Server
security:
  - userKey: []
tags:
  - name: Authentication
    description: Authentication endpoints
  - name: Workspace
    description: Workspace management endpoints
  - name: Optimization
    description: SQL optimization task endpoints
paths:
  /listWorkspaces:
    post:
      tags:
        - Workspace
      summary: List workspaces
      description: |
        Gets a paginated list of all workspaces for the current user.

        **Note**: anonymous users cannot query the workspace list.
      operationId: listWorkspaces
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUserRequestBody'
            examples:
              example:
                value:
                  userKey: CB698418-88B25371-67F15F01-XXXXXXXX
                  pageNumber: 1
                  pageSize: 10
      responses:
        '200':
          description: Workspace list
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResult'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/PageResponse_WorkspaceInfo'
              examples:
                success:
                  value:
                    code: 200
                    message: Success
                    data:
                      records:
                        - workspaceId: '1730411624641736706'
                          workspaceName: my-workspace
                          dbType: mysql
                          createTime: '2026-09-01 10:00:00'
                          numberOfAnalysis: 5
                          latestAnalysisTime: '2026-09-05 14:30:00'
                          status: success
                      total: 1
                      size: 10
                      current: 1
                      pages: 1
components:
  schemas:
    ApiUserRequestBody:
      type: object
      description: User request (with pagination parameters)
      properties:
        userKey:
          type: string
          description: Activation code
          example: CB698418-88B25371-67F15F01-XXXXXXXX
        workspaceId:
          type: integer
          format: int64
          description: Workspace ID; returns all when omitted
        pageNumber:
          type: integer
          description: Page number, default 1
          example: 1
          default: 1
        pageSize:
          type: integer
          description: Items per page, default 10
          example: 10
          default: 10
    ApiResult:
      type: object
      description: Unified response body
      properties:
        code:
          type: integer
          description: Status code, 200 indicates success
          example: 200
        message:
          type: string
          description: Description message
          example: Success
        data:
          description: Response data
    PageResponse_WorkspaceInfo:
      type: object
      description: Workspace paginated response
      properties:
        records:
          type: array
          items:
            $ref: '#/components/schemas/WorkspaceInfo'
        total:
          type: integer
          format: int64
          description: Total number of records
        size:
          type: integer
          format: int64
          description: Items per page
        current:
          type: integer
          format: int64
          description: Current page number
        pages:
          type: integer
          format: int64
          description: Total number of pages
    WorkspaceInfo:
      type: object
      description: Workspace information
      properties:
        workspaceId:
          type: string
          description: Workspace ID
        workspaceName:
          type: string
          description: Workspace name
        dbType:
          type: string
          description: Database type
        createTime:
          type: string
          description: Creation time
        numberOfAnalysis:
          type: integer
          description: Number of optimization tasks
        latestAnalysisTime:
          type: string
          description: Latest optimization time
        status:
          type: string
          description: Workspace status
  securitySchemes:
    userKey:
      type: apiKey
      in: header
      name: userKey
      description: Activation code, obtained via the /getUserKey endpoint

````