unclecode / unclecode/crawl4ai

Bring Docker API server to feature parity with Crawl4AI v0.7.x

Open
#1,452 3 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

⚙️ Under Review ✨ Enhancement
Dominant language
Python
Stars
83.9k
Forks
8.7k
Avg merge
3d 7h
Merged PRs (30d)
11

Description

Description

The Docker API server lags behind the Python library. This issue tracks adding endpoints/parameters to expose the following library features:

1. Adaptive crawling
  • AdaptiveCrawler, AdaptiveConfig, CrawlState, CrawlStrategy, StatisticalStrategy
  • Missing: endpoints to run/tune adaptive crawls
2. C4A Script language
  • c4a_compile, c4a_validate, c4a_compile_file, CompilationResult, ValidationResult, ErrorDetail
  • Missing: submit/validate/execute script endpoints
3. URL seeding
  • AsyncUrlSeeder, SeedingConfig
  • Missing: sitemap/common-crawl/discovery endpoints
4. Chunking
  • ChunkingStrategy, RegexChunking
  • Missing: chunking configuration
5. Browser adapters
  • BrowserAdapter, PlaywrightAdapter, UndetectedAdapter
  • Missing: adapter/stealth selection
6. Proxy rotation
  • ProxyRotationStrategy, RoundRobinProxyStrategy
  • Missing: rotation strategy selection (beyond raw proxy)
7. Dispatchers
  • SemaphoreDispatcher, BaseDispatcher
  • Missing: dispatcher selection (only MemoryAdaptive used internally)
8. Link preview
  • LinkPreview, LinkPreviewConfig
  • Missing: link preview/scoring endpoint
9. Profiling/monitoring
  • BrowserProfiler, CrawlerMonitor
  • Missing: profiling/monitoring endpoints
10. HTTP-only crawling
  • HTTPCrawlerConfig
  • Missing: HTTP crawler methods/params (non-browser). API uses browser-based crawling with LXMLWebScrapingStrategy
11. Virtual scroll
  • VirtualScrollConfig
  • Missing: infinite-scroll capture configuration
12. Undetected/stealth browser
  • UndetectedAdapter; browser_config/browser_type='undetected'; stealth options
  • Missing: explicit stealth mode controls
Acceptance criteria
1. New/extended endpoints and/or request schemas added
  • New endpoints: Add missing API routes (e.g., /adaptive/crawl, /deep-crawl, /c4a-script/compile, /hub/crawlers)
  • Extended schemas: Enhance existing endpoints to accept new parameters (e.g., add virtual_scroll_config to /crawl, add table_extraction_strategy options)
  • Request schemas: Update schemas.py to include new request models for the missing features
2. Docs and examples updated
  • API documentation: Update the docs to show new endpoints and parameters
  • Parameter documentation: Add descriptions, examples, and validation rules for new fields
  • Examples: Add working code examples showing how to use each new feature.
3. Minimal e2e tests per feature group
  • Test coverage: Create integration tests that verify each new feature works end-to-end
  • Happy path: Test successful usage of each feature
  • Validation: Test error handling (invalid parameters, edge cases, etc.)
  • Feature groups: Organize tests by category (adaptive crawling, deep crawling, C4A scripts, etc.)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing Docker API routes and schemas.py, then compare them with the listed Crawl4AI library feature groups. Trace the requested endpoints, request schemas, documentation, examples, and minimal end-to-end tests. Done means the missing feature groups are exposed with documented parameters and validated happy and error paths.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python
Domain
api, backend, documentation, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.