---
title: "Create config"
method: POST
path: "/v4/crawl/config"
tags: ["Crawler"]
---

# Create config

`POST /v4/crawl/config`

## Request

- Base URL: `https://api.kadoa.com`
- URL: `https://api.kadoa.com/v4/crawl/config`
- Auth: API key in header `x-api-key`

Create a new crawling configuration

## Request body

- CreateCrawlerConfigRequest: Request body for creating a new crawling configuration
  - `url` string, uri: Single URL to start crawling (for backward compatibility)
  - `startUrls` string[]: List of URLs for crawling
  - `pathsFilterIn` string[]: Regex patterns to include specific full URLs. Accepts array or JSON-stringified array of regex source strings.
  - `pathsFilterOut` string[]: Regex patterns to exclude specific full URLs. Accepts array or JSON-stringified array of regex source strings.
  - `proxyType` string, nullable: Type of proxy to use
  - `proxyCountry` string, nullable: Country for proxy selection
  - `timeout` number: Timeout in milliseconds
  - `maxDepth` number: Maximum crawling depth
  - `maxPages` number: Maximum number of pages to crawl
  - `maxMatches` number: Maximum number of matched pages to crawl before stopping
  - `concurrency` number: Number of concurrent crawlers
  - `strictDomain` boolean: Whether to stay within the same domain
  - `loadImages` boolean: Whether to load images during crawling
  - `safeMode` boolean: Enable safe mode for crawling
  - `callbackUrl` string, uri, nullable: Webhook URL for completion notifications
  - `processDuringCrawl` boolean: Whether to run preprocessing and extraction during the crawl phase
  - `crawlMethod` object: Crawl method configuration
    - `mode` 'auto' | 'browser': Worker selection mode. 'auto' (default) picks cheapest compatible worker, 'browser' forces browser.
    - `worker` 'auto' | 'kurl' | 'curl-cffi' | 'kadmium' | 'patchright' | 'camoufox' | 'cloakbrowser' | 'brightdata': Crawler engine selection. Fetches use Kurl; browser mode and actions use Kadmium. curl-cffi maps to Kurl; patchright, camoufox, and cloakbrowser map to Kadmium. BrightData is blocked.
    - `proxy` 'auto' | 'direct' | 'dc' | 'resi' | 'isp': Explicit proxy routing override for crawler scraping
  - `matchThreshold` number: Match threshold override for blueprint filtering
  - `blueprint` object[]: Blueprint fields applied during crawling
    - `name` string
    - `description` string
    - `selector` string
    - `type` string
  - `extractionOptions` object: Extraction-related options derived from legacy launch summary
    - `extractions` object: Feature toggles for available extraction helpers
    - `schema` unknown
    - `entity` unknown
    - `mainContextSelector` string: CSS selector anchoring focus-driven extractors
    - `xhrExtractorConfigs` unknown[]: XHR extractor configuration entries
      - unknown
  - `navigationOptions` object: Navigation-related options derived from legacy launch summary
    - `browserActions` object[]: Ordered list of scripted browser actions executed after navigation
    - `preBrowserActions` object[]: Browser actions performed before the main action chain
    - `scrollHtml` boolean: Enable HTML capture while scrolling through the page
    - `scrollHtmlTimeout` number: Maximum scroll duration in milliseconds
    - `visualHtml` boolean: Enable visual HTML capture for navigation heuristics
    - `navigationStrategy` string: Primary navigation strategy identifier
    - `navigationStrategies` string[]: Fallback navigation strategy order
    - `limit` number: Maximum number of navigation steps
    - `disableNavigation` boolean: Skip automated navigation heuristics
    - `ignoreIframes` boolean: Disable iframe traversal during navigation
    - `navigationExploration` object: Navigation exploration tuning payload
    - `loadHtmlOnly` boolean: Skip scripted interactions and only capture HTML
    - `acceptCookies` boolean: Force cookie acceptance automation
    - `cachedCookieAccept` union: Reuse cached cookie acceptance flow
      - boolean
      - string
  - `artifactOptions` object: Artifact capture options derived from legacy launch summary
    - `screenshot` boolean: Capture standard screenshot
    - `screenshotFull` boolean: Capture full-page screenshot
    - `screenshotCache` boolean: Re-use cached screenshot when available
    - `screenshotPublic` boolean: Make captured screenshot publicly accessible
    - `screenshotLink` string: Stored screenshot link for follow-up processing
    - `archivePdf` boolean: Generate archival PDF for crawled pages
  - `rawMode` boolean: Whether this is a raw data mode crawl
  - `outputOptions` object: Output options for raw mode
    - `includeHtml` boolean
    - `includeMarkdown` boolean
    - `includeScreenshots` boolean
    - `includeJson` boolean
  - `jobId` string: Internal: Job ID for workflow tracking
  - `workflowId` string: Internal: Owning workflow (scraperId) for BrightData cost attribution
  - `dataKey` string: Internal: Data key for Parquet storage path
  - `billingSource` string: Internal: Billing source identifier

## Response `200`

200

- CreateCrawlerConfigResponse: Response schema for creating a new crawling configuration
  - `url` string, uri: Single URL to start crawling (for backward compatibility)
  - `startUrls` string[]: List of URLs for crawling
  - `pathsFilterIn` string[]: Regex patterns to include specific full URLs. Accepts array or JSON-stringified array of regex source strings.
  - `pathsFilterOut` string[]: Regex patterns to exclude specific full URLs. Accepts array or JSON-stringified array of regex source strings.
  - `proxyType` string, nullable: Type of proxy to use
  - `proxyCountry` string, nullable: Country for proxy selection
  - `timeout` number: Timeout in milliseconds
  - `maxDepth` number: Maximum crawling depth
  - `maxPages` number: Maximum number of pages to crawl
  - `maxMatches` number: Maximum number of matched pages to crawl before stopping
  - `concurrency` number: Number of concurrent crawlers
  - `strictDomain` boolean: Whether to stay within the same domain
  - `loadImages` boolean: Whether to load images during crawling
  - `safeMode` boolean: Enable safe mode for crawling
  - `callbackUrl` string, uri, nullable: Webhook URL for completion notifications
  - `processDuringCrawl` boolean: Whether to run preprocessing and extraction during the crawl phase
  - `crawlMethod` object: Crawl method configuration
    - `mode` 'auto' | 'browser': Worker selection mode. 'auto' (default) picks cheapest compatible worker, 'browser' forces browser.
    - `worker` 'auto' | 'kurl' | 'curl-cffi' | 'kadmium' | 'patchright' | 'camoufox' | 'cloakbrowser' | 'brightdata': Crawler engine selection. Fetches use Kurl; browser mode and actions use Kadmium. curl-cffi maps to Kurl; patchright, camoufox, and cloakbrowser map to Kadmium. BrightData is blocked.
    - `proxy` 'auto' | 'direct' | 'dc' | 'resi' | 'isp': Explicit proxy routing override for crawler scraping
  - `matchThreshold` number: Match threshold override for blueprint filtering
  - `blueprint` object[]: Blueprint fields applied during crawling
    - `name` string
    - `description` string
    - `selector` string
    - `type` string
  - `extractionOptions` object: Extraction-related options derived from legacy launch summary
    - `extractions` object: Feature toggles for available extraction helpers
    - `schema` unknown
    - `entity` unknown
    - `mainContextSelector` string: CSS selector anchoring focus-driven extractors
    - `xhrExtractorConfigs` unknown[]: XHR extractor configuration entries
      - unknown
  - `navigationOptions` object: Navigation-related options derived from legacy launch summary
    - `browserActions` object[]: Ordered list of scripted browser actions executed after navigation
    - `preBrowserActions` object[]: Browser actions performed before the main action chain
    - `scrollHtml` boolean: Enable HTML capture while scrolling through the page
    - `scrollHtmlTimeout` number: Maximum scroll duration in milliseconds
    - `visualHtml` boolean: Enable visual HTML capture for navigation heuristics
    - `navigationStrategy` string: Primary navigation strategy identifier
    - `navigationStrategies` string[]: Fallback navigation strategy order
    - `limit` number: Maximum number of navigation steps
    - `disableNavigation` boolean: Skip automated navigation heuristics
    - `ignoreIframes` boolean: Disable iframe traversal during navigation
    - `navigationExploration` object: Navigation exploration tuning payload
    - `loadHtmlOnly` boolean: Skip scripted interactions and only capture HTML
    - `acceptCookies` boolean: Force cookie acceptance automation
    - `cachedCookieAccept` union: Reuse cached cookie acceptance flow
      - boolean
      - string
  - `artifactOptions` object: Artifact capture options derived from legacy launch summary
    - `screenshot` boolean: Capture standard screenshot
    - `screenshotFull` boolean: Capture full-page screenshot
    - `screenshotCache` boolean: Re-use cached screenshot when available
    - `screenshotPublic` boolean: Make captured screenshot publicly accessible
    - `screenshotLink` string: Stored screenshot link for follow-up processing
    - `archivePdf` boolean: Generate archival PDF for crawled pages
  - `rawMode` boolean: Whether this is a raw data mode crawl
  - `outputOptions` object: Output options for raw mode
    - `includeHtml` boolean
    - `includeMarkdown` boolean
    - `includeScreenshots` boolean
    - `includeJson` boolean
  - `jobId` string: Internal: Job ID for workflow tracking
  - `workflowId` string: Internal: Owning workflow (scraperId) for BrightData cost attribution
  - `dataKey` string: Internal: Data key for Parquet storage path
  - `billingSource` string: Internal: Billing source identifier
  - `configId` string, required: Config ID
  - `userId` string, required: User ID
  - `createdAt` string, required: Created at

## Other responses

- `400`: 400
- `401`: 401
- `404`: 404
- `500`: 500

---

[API](https://skmtc.dev/kadoa/apis/kadoa-api.md) · [All operations](https://skmtc.dev/kadoa/apis/kadoa-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kadoa/apis/kadoa-api/revisions/bf7803c927b4?raw)
