{"slug": "spidra-vs-spider-cloud-two-different-products-clearly-explained", "title": "Spidra vs Spider.cloud: two different products, clearly explained", "summary": "Spidra and Spider.cloud are two distinct web scraping products, not the same tool as often confused. Spidra is an AI-powered API that extracts structured data from web pages using natural language prompts, while Spider.cloud is a high-speed Rust-based crawling API for large-scale page fetching. The confusion arises from similar names, but they serve different technical purposes and are built by separate companies.", "body_md": "If you searched \"Spidra API\" recently and Google's AI Overview told you it's \"often referred to as Spider.cloud,\" you have run into one of the more persistent name confusion problems in the web scraping space.\n\nSpidra and Spider.cloud are not the same product. They are not related. They are not built by the same company. They are two separate tools built for genuinely different problems, and mixing them up will send you completely in the wrong direction when you are trying to get work done.\n\nThis article exists to fix that. We will cover what each product actually is, where they differ technically, and what Spidra is specifically built to do better.\n\n## The quick answer\n\n**Spidra** (spidra.io) is an AI-powered web scraping API. You send a URL and a plain text prompt describing what you want. Spidra loads the page in a real browser, handles any anti-bot protection automatically, runs AI extraction on the fully rendered content, and returns clean structured JSON.\n\nThe entire product is built around one idea: describe what you want from a website and get it back as structured data.\n\n**Spider.cloud** (spider.cloud) is a high-speed web crawling API built on an open-source Rust engine. You send a URL with configuration parameters and get page content back in your chosen format. It is designed for teams that need to crawl millions of pages as fast as possible and at the lowest possible cost per page.\n\nSame general category. Completely different philosophy, technical approach, and target use case.\n\n## Where the name confusion comes from\n\nSpider.cloud's product is called Spider. Their domain is spider.cloud. Their GitHub organisation is spider-rs. Their Twitter is @spider_rust.\n\nSpidra's product is called Spidra. The domain is spidra.io.\n\nSpidra, Spider, spider.cloud, spider-rs. When Google's AI processes these names across millions of pages, it conflates them. The products are unrelated beyond both scraping websites and having names that contain the word \"spider.\"\n\n## How Spider.cloud works\n\nSpider.cloud is built on a Rust crawling engine that is open-source under the MIT licence. You authenticate with a Bearer token and call their REST endpoints.\n\n``` python\nimport requests, os\n\nheaders = {\n    \"Authorization\": f\"Bearer {os.getenv('SPIDER_API_KEY')}\",\n    \"Content-Type\": \"application/json\",\n}\n\nresponse = requests.post(\n    \"https://api.spider.cloud/crawl\",\n    headers=headers,\n    json={\n        \"url\": \"https://example.com\",\n        \"limit\": 50,\n        \"return_format\": \"markdown\",\n        \"request\": \"smart\",\n    }\n)\n\nfor page in response.json():\n    print(page[\"url\"], page[\"content\"][:200])\n```\n\nPricing is pay-as-you-go: bandwidth at $1/GB plus compute at $0.001/minute, with no subscription required and no credit expiration. Their production average is around $0.48 per 1,000 pages.\n\n## How Spidra works\n\nSpidra is built around a different problem. The hard part of web scraping is not fetching pages quickly. Most of the time it is reliably getting the right data out of pages that render differently, change structure without notice, and sit behind anti-bot systems.\n\nYou authenticate with an `x-api-key`\n\nheader and use an async job model: submit a scrape, receive a job ID, poll until complete.\n\n``` python\nimport requests, time, os\n\nAPI_KEY = os.environ[\"SPIDRA_API_KEY\"]\nHEADERS = {\"x-api-key\": API_KEY, \"Content-Type\": \"application/json\"}\n\nresponse = requests.post(\n    \"https://api.spidra.io/api/scrape\",\n    headers=HEADERS,\n    json={\n        \"urls\": [{\"url\": \"https://news.ycombinator.com\"}],\n        \"prompt\": \"Extract the top 10 post titles and their point scores\",\n        \"output\": \"json\",\n    }\n)\njob_id = response.json()[\"jobId\"]\n\nwhile True:\n    status = requests.get(\n        f\"https://api.spidra.io/api/scrape/{job_id}\",\n        headers=HEADERS\n    ).json()\n    if status[\"status\"] == \"completed\":\n        print(status[\"result\"][\"content\"])\n        break\n    time.sleep(3)\n```\n\nThe result comes back as structured JSON matching what you described. No HTML to parse. No selectors to write or maintain. No post-processing step.\n\nFor production pipelines that need a guaranteed output shape every time, add a [JSON Schema](https://docs.spidra.io/features/structured-output):\n\n```\nrequests.post(\n    \"https://api.spidra.io/api/scrape\",\n    headers=HEADERS,\n    json={\n        \"urls\": [{\"url\": \"https://jobs.example.com/senior-engineer\"}],\n        \"prompt\": \"Extract the job listing details\",\n        \"schema\": {\n            \"type\": \"object\",\n            \"required\": [\"title\", \"company\"],\n            \"properties\": {\n                \"title\":      {\"type\": \"string\"},\n                \"company\":    {\"type\": \"string\"},\n                \"remote\":     {\"type\": [\"boolean\", \"null\"]},\n                \"salary_min\": {\"type\": [\"number\", \"null\"]},\n                \"salary_max\": {\"type\": [\"number\", \"null\"]},\n            }\n        }\n    }\n)\n```\n\nRequired fields always appear in the output as `null`\n\nif the page does not have that value. The shape never varies regardless of how different source pages are structured. This is the piece that makes Spidra usable for production pipelines without constant maintenance.\n\n## What Spidra does that Spider.cloud cannot\n\n### Browser actions built into every request\n\nSpider.cloud has a separate Browser Cloud product for interactive browser sessions. It is billed separately and requires a different connection model.\n\nSpidra includes browser actions as part of every standard scrape request. Click a cookie banner, fill a search form, scroll to trigger lazy loading, and run extraction on the result — all in a single API call:\n\n``` python\nfrom spidra import BrowserAction, ScrapeParams, ScrapeUrl\n\njob = spidra.scrape.run_sync(ScrapeParams(\n    urls=[\n        ScrapeUrl(\n            url=\"https://example.com/products\",\n            actions=[\n                BrowserAction(type=\"click\", value=\"Accept cookies\"),\n                BrowserAction(type=\"scroll\", to=\"80%\"),\n            ]\n        )\n    ],\n    prompt=\"Extract all product names and prices\",\n    output=\"json\",\n))\n```\n\nNo additional product. No separate billing. It is just part of how scraping works.\n\n### The forEach action\n\nThis is the capability that separates Spidra most clearly from everything else in the market, including Spider.cloud.\n\n`forEach`\n\nfinds every matching element on a page, interacts with each one, and returns a combined result. With `mode: \"navigate\"`\n\nit follows each element as a link and scrapes the destination page. With pagination, it automatically continues across multiple pages.\n\n```\nBrowserAction(\n    type=\"forEach\",\n    value=\"Find all company listing cards\",\n    mode=\"navigate\",\n    max_items=50,\n    item_prompt=\"Extract company name, website, and industry\",\n    pagination={\n        \"nextSelector\": \"a.next-page\",\n        \"maxPages\": 3,\n    }\n)\n```\n\nOne request. Every listing across three pages. Structured data from each detail page. Spider.cloud has no equivalent of this.\n\n### JSON Schema enforcement\n\nWhen you pass a schema to Spidra, the AI extraction must return data matching it exactly. Required fields always appear. Types are enforced. The output is the same shape whether the source page is a Shopify store, a Squarespace site, or a custom-built e-commerce platform.\n\nSpider.cloud returns content. What you do with that content is up to you.\n\n### Anti-bot bypass included by default\n\nOn Spidra, anti-bot bypass is not a configuration option or a separate product tier. Every request runs in a real browser with proxy rotation and CAPTCHA solving included automatically. You do not configure stealth settings. You do not pay extra for it. You just get the data.\n\nSpider.cloud has an Unblocker feature and a Browser Cloud for protected sites. These are available but require separate configuration and, in some cases, a different product and billing model.\n\n### More SDK languages\n\nSpidra has official SDKs for Python, Node.js, Go, PHP, Ruby, Rust, .NET, Elixir, Java, and Swift. Spider.cloud has Python, Node.js, and Rust. If your team works in any language beyond those three, Spidra is the practical choice.\n\n## Getting started with Spidra\n\nThe free plan gives you 300 credits with no credit card required. That is enough to test the scrape, batch, and crawl endpoints against your real URLs before committing to anything.\n\nGet your API key at [app.spidra.io](https://app.spidra.io/) under Settings → API Keys. Full documentation at [docs.spidra.io](https://docs.spidra.io/).", "url": "https://wpnews.pro/news/spidra-vs-spider-cloud-two-different-products-clearly-explained", "canonical_source": "https://spidra.io/blog/spidra-vs-spider-cloud", "published_at": "2026-06-22 00:00:00+00:00", "updated_at": "2026-06-22 10:15:21.190431+00:00", "lang": "en", "topics": ["ai-tools"], "entities": ["Spidra", "Spider.cloud", "spidra.io", "spider.cloud", "spider-rs", "Google", "Rust"], "alternates": {"html": "https://wpnews.pro/news/spidra-vs-spider-cloud-two-different-products-clearly-explained", "markdown": "https://wpnews.pro/news/spidra-vs-spider-cloud-two-different-products-clearly-explained.md", "text": "https://wpnews.pro/news/spidra-vs-spider-cloud-two-different-products-clearly-explained.txt", "jsonld": "https://wpnews.pro/news/spidra-vs-spider-cloud-two-different-products-clearly-explained.jsonld"}}