---
title: "Start a website crawl"
method: POST
path: "/knowledge/url/crawl"
tags: ["Knowledge"]
---

# Start a website crawl

`POST /knowledge/url/crawl`

## Request

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

Enqueue the existing legacy URL crawl, returning jobId; 202 means queued, not indexed knowledge. Use get_knowledge_crawl for terminal status and get_knowledge_source/get_knowledge_usage for actual active/quota state. Prefer create_knowledge_website for managed websites with refresh and page selection. May fetch external pages and embed content; after uncertainty use list_knowledge_crawls before retrying. Required permission: knowledge:write.

## Request body

- KnowledgeCrawlInput
  - `url` string, uri, required
  - `crawlDepth` integer
  - `maxPages` integer

## Response `202`

Success

- 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

## Other responses

- `default`: Structured error

---

[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)
