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

# List knowledge bases

> Every knowledge base this client can manage. Accounts come from the token: if your credentials cover several, all of them are listed together and each row carries the accountId + instance pair that identifies its account. accountId and instance are optional filters — they narrow the result, never widen it. An account is named by the pair, not by accountId alone: the same accountId exists in more than one instance, so filtering on accountId by itself can return rows from several accounts, which may belong to different customers. Send both to address one account. listMyCloudChatAccounts returns each accountId together with its instance.



## OpenAPI

````yaml /api-reference/specs/claudia/v1.json get /v1/knowledge-bases
openapi: 3.0.1
info:
  title: Claudia API
  version: 1.0.0
servers:
  - url: https://api.cloudhumans.com/claudia
    description: Production
  - url: https://api.cloudhumans.com/claudia/staging
    description: Staging
security:
  - bearerAuth: []
tags:
  - name: MCP Servers
    description: >-
      The MCP servers your agents can call tools on. Registering one here is
      what makes its tools selectable in an agent; the credentials it needs are
      stored encrypted and never read back.
  - name: Knowledge Base Content
    description: Read, search and edit the content that answers your customers.
  - name: Content Quality
    description: Rewrites proposed for content that is answering your customers badly.
  - name: Playground
    description: >-
      Talk to one of your agents as if you were a customer, without touching a
      real conversation.
  - name: Project Settings
    description: >-
      Read and change how a ClaudIA project behaves — the settings screens of
      the ClaudIA app, as an API.
  - name: Content Improvements
    description: Answers Claudia proposes for questions your content does not cover yet.
  - name: Knowledge Bases
    description: The knowledge bases your account can manage.
  - name: Content Sources
    description: The sites Claudia crawls to keep a knowledge base in sync.
paths:
  /v1/knowledge-bases:
    get:
      tags:
        - Knowledge Bases
      summary: List knowledge bases
      description: >-
        Every knowledge base this client can manage. Accounts come from the
        token: if your credentials cover several, all of them are listed
        together and each row carries the accountId + instance pair that
        identifies its account. accountId and instance are optional filters —
        they narrow the result, never widen it. An account is named by the pair,
        not by accountId alone: the same accountId exists in more than one
        instance, so filtering on accountId by itself can return rows from
        several accounts, which may belong to different customers. Send both to
        address one account. listMyCloudChatAccounts returns each accountId
        together with its instance.
      operationId: listMyKnowledgeBases
      parameters:
        - name: accountId
          in: query
          description: >-
            Account to narrow to, e.g. `7`. Not an account on its own: accountId
            is only unique within an instance, so sending it alone can match
            several accounts — possibly different customers — and all of them
            are listed. Pass instance alongside it to address exactly one
            account. Get the pair from listMyCloudChatAccounts. Omit both to
            list every account the credentials cover.
          required: false
          schema:
            type: string
        - name: instance
          in: query
          description: >-
            CloudChat instance the account lives in, e.g. `4`. Pair it with
            accountId — the two together name exactly one account, while
            accountId alone does not. Get the pair from listMyCloudChatAccounts.
            On its own it narrows to every account the credentials cover in that
            instance.
          required: false
          schema:
            type: string
        - name: offset
          in: query
          description: Rows to skip. Page with `total` and `hasNext` from the response.
          required: false
          schema:
            type: integer
            format: int32
            default: 0
          example: 0
        - name: limit
          in: query
          description: Page size. Capped at 200.
          required: false
          schema:
            type: integer
            format: int32
            default: 50
          example: 50
        - name: sortBy
          in: query
          description: Field to order by.
          required: false
          schema:
            type: string
            enum:
              - kbName
              - createdAt
              - updatedAt
            default: updatedAt
        - name: sortDir
          in: query
          description: Order direction.
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
      responses:
        '200':
          description: >-
            One page of knowledge bases. Every row carries accountId and
            instance — the pair that identifies the account — so the rows stay
            attributable when the filter matched more than one account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KnowledgeBasePage'
        '400':
          description: The request could not be answered as written.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, expired or invalid credentials.
        '403':
          description: The credentials hold no account allowed to manage this content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit applied by the API gateway. Back off and retry.
components:
  schemas:
    KnowledgeBasePage:
      required:
        - hasNext
        - items
        - limit
        - offset
        - total
      type: object
      properties:
        items:
          type: array
          description: The knowledge bases on this page.
          items:
            $ref: '#/components/schemas/KnowledgeBase'
        total:
          type: integer
          description: Total matching the query, across all pages.
          format: int64
          example: 12
        offset:
          type: integer
          description: Offset this page started at.
          format: int32
          example: 0
        limit:
          type: integer
          description: Page size actually applied (capped at 200).
          format: int32
          example: 50
        hasNext:
          type: boolean
          description: Whether another page follows.
          example: false
      description: One page of knowledge bases.
    Error:
      required:
        - error
      type: object
      properties:
        error:
          type: string
          description: What went wrong.
          example: 'Forbidden: token holds no claim for the requested account'
      description: Something the caller needs to fix.
    KnowledgeBase:
      required:
        - accountId
        - createdAt
        - instance
        - name
        - updatedAt
      type: object
      properties:
        id:
          type: string
          description: Use this id in the content endpoints.
          example: 6683f1c2a4b19e0012ab34cd
        name:
          type: string
          description: Display name.
          example: Support FAQ
        accountId:
          type: string
          description: >-
            Account this knowledge base belongs to, e.g. `7`. Only unique within
            `instance`: read the two together — the pair is what identifies the
            account, and accountId on its own does not.
        instance:
          type: string
          description: >-
            CloudChat instance the account lives in, e.g. `4`. With `accountId`
            it forms the pair that identifies this row's account, which is what
            tells rows apart when one listing spans several accounts.
        createdAt:
          type: string
          description: When it was created (ISO-8601).
          example: '2026-08-10T14:32:05'
        updatedAt:
          type: string
          description: When it last changed (ISO-8601).
          example: '2026-08-10T18:20:41'
      description: A knowledge base you can manage.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````