1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 fetchFromGitHub,
6 nest-asyncio,
7 pydantic,
8 python-dotenv,
9 requests,
10 setuptools,
11 websockets,
12}:
13
14buildPythonPackage rec {
15 pname = "firecrawl-py";
16 version = "1.15.0";
17 pyproject = true;
18
19 src = fetchFromGitHub {
20 owner = "mendableai";
21 repo = "firecrawl";
22 tag = "v${version}";
23 hash = "sha256-GIde8FiU1/gS3oFfTf7f7Tc4KvDVL873VE5kjyh33Is=";
24 };
25
26 sourceRoot = "${src.name}/apps/python-sdk";
27
28 build-system = [ setuptools ];
29
30 dependencies = [
31 aiohttp
32 nest-asyncio
33 pydantic
34 python-dotenv
35 requests
36 websockets
37 ];
38
39 # No tests
40 doCheck = false;
41
42 pythonImportsCheck = [ "firecrawl" ];
43
44 meta = {
45 description = "Turn entire websites into LLM-ready markdown or structured data. Scrape, crawl and extract with a single API";
46 homepage = "https://firecrawl.dev";
47 changelog = "https://github.com/mendableai/firecrawl/releases/tag/${src.tag}";
48 license = lib.licenses.mit;
49 maintainers = with lib.maintainers; [ ];
50 };
51}