---
title: "Discover knowledge sources and managed websites"
method: GET
path: "/knowledge/items"
---

# Discover knowledge sources and managed websites

`GET /knowledge/items`

## Request

- Base URL: `https://platform-api.visitoai.com/m2m/v1`
- URL: `https://platform-api.visitoai.com/m2m/v1/knowledge/items`
- Auth: HTTP bearer

Start here for a combined inventory: text, file, standalone URL sources and managed website groups. Metadata/title search only, not semantic retrieval. Website pages are represented by their website item; use get_knowledge_website for generation and page selection. Follow nextCursor; sourceId and websiteId are distinct IDs. Required permission: knowledge:read. Connected business only; no tenant override.

## Query parameters

- `limit` integer
- `cursor` string
- `status` 'all' | 'active' | 'inactive'
- `sourceType` 'text' | 'file' | 'url' | 'website'
- `query` string
- `propertyFilter` string

## Response `200`

Success

- KnowledgeItems
  - `items` union[], required
    - union
      - KnowledgeSource
        - `sourceId` string, required
        - `sourceType` 'text' | 'file' | 'url', required
        - `title` string
        - `active` boolean, required
        - `updatedAt` string, date-time
        - `text` string
        - `url` string
        - `chunkCount` integer, required
        - `activeTokens` integer
        - `scope` 'global' | 'property'
        - `propertyId` string
        - `propertyName` string
        - `preview` string
        - `originalFile` object
          - `filename` string
          - `contentType` string
          - `size` integer
          - `uploadedAt` string
        - `asset` KnowledgeAsset
          - `sourceId` string, required
          - `title` string, required
          - `description` string
          - `mediaType` 'image' | 'document'
          - `contentType` string, required
          - `filename` string, required
          - `sizeBytes` integer, required
          - `active` boolean, required
          - `validationStatus` 'unsupported' | 'pending' | 'ready' | 'blocked' | 'failed', required
          - `validationFindings` string[], required
          - `propertyId` string
          - `propertyName` string
          - `folderId` string
        - `createdAt` string
        - `createdBy` object
          - `id` string
          - `displayName` string
          - `email` string
        - `websiteId` string
        - `websiteGenerationId` string
        - `canonicalUrl` string
        - `websiteGenerationState` 'staging' | 'current' | 'superseded'
      - KnowledgeWebsite
        - `websiteId` string, required
        - `sourceId` string, required
        - `sourceType` 'website', required
        - `active` boolean, required
        - `scope` 'property' | 'global', required
        - `title` string, required
        - `url` string, required
        - `chunkCount` integer, required
        - `activeTokens` integer
        - `selectedTokens` integer
        - `createdBy` object
          - `id` string
          - `displayName` string
          - `email` string
        - `rootUrl` string, required
        - `normalizedRootUrl` string, required
        - `crawlDepth` integer, required
        - `maxPages` integer, required
        - `propertyId` string
        - `propertyName` string
        - `status` 'idle' | 'crawling' | 'failed', required
        - `defaultEnabled` boolean, required
        - `selectionRules` object[], required
          - `kind` 'path' | 'page', required
          - `key` string, required
          - `enabled` boolean, required
        - `currentGenerationId` string
        - `latestJob` KnowledgeCrawlJob
          - `jobId` string
          - `status` 'queued' | 'running' | 'completed' | 'failed'
          - `progress` object
            - `phase` 'queued' | 'crawling' | 'embedding' | 'finalizing'
            - `pagesDiscovered` integer
            - `pagesProcessed` integer
            - `chunksEmbedded` integer
          - `chunks` integer
          - `url` string
          - `crawlDepth` integer
          - `maxPages` integer
          - `sourceId` string
          - `error` object
            - `code` string
            - `message` string
          - `websiteId` string
          - `websiteGenerationId` string
          - `createdAt` string
          - `startedAt` string
          - `completedAt` string
          - `updatedAt` string
          - `snapshotPages` integer
        - `totalPages` integer, required
        - `enabledPages` integer, required
        - `pages` object[]
          - `sourceId` string, required
          - `url` string, required
          - `canonicalUrl` string, required
          - `path` string, required
          - `enabled` boolean, required
          - `chunkCount` integer, required
          - `tokens` integer
          - `displayOrder` integer
          - `updatedAt` string
        - `createdAt` string
        - `updatedAt` string
        - `lastCrawledAt` string
  - `nextCursor` string

## Other responses

- `400`: Invalid request
- `403`: Missing permission
- `404`: Resource not found
- `409`: Conflict; read state and reconcile

---

[API](https://skmtc.dev/visitoai/apis/visito-m2m-api.md) - [All operations](https://skmtc.dev/visitoai/apis/visito-m2m-api/llms.txt) - [OpenAPI document](https://skmtc.dev/visitoai/apis/visito-m2m-api/revisions/98377d35c234?raw)
