Every SDK supports
- Scrape, batch scrape, and crawl
- Browser actions and forEach
- Structured output with JSON Schema
- Authenticated scraping with session cookies
- Stealth mode and proxy geo-targeting
- Async job submission and automatic polling
Quick example
Every SDK follows the same pattern. Here is a scrape across all languages:run() submits the job and polls until it completes. Use submit() and get() separately if you need manual control over polling.
Official SDKs
Node.js
Supports TypeScript natively. Works in Next.js, Express, Bun, and edge runtimes. LangChain and Vercel AI SDK tool support built in.
Python
Async-first with sync wrappers. Works in scripts, Django, Flask, FastAPI, and Jupyter notebooks.
Go
Typed structs, idiomatic error handling, zero external dependencies. Standard library only.
PHP
Requires PHP 8.1+ and Guzzle 7. Typed exceptions and configurable polling timeouts.
Ruby
Pure stdlib, no external dependencies. Works in Rails, Sinatra, and plain scripts.
Elixir
Idiomatic pattern matching, OTP-ready. Works with Phoenix and plain Mix projects.
.NET
Fully async with
Task/await. Typed exceptions and JSON schema support. Requires .NET 8+.Swift
Native
async/await concurrency. Works on iOS, macOS, tvOS, watchOS, and server-side Swift.Java
Java 17+.
CompletableFuture-based async, builder pattern, no extra HTTP dependencies.Rust
Built on
tokio and reqwest. Native async/await, returns Result<T, SpidraError> on every call.Workflow integrations
n8n
Native node for n8n workflows. Trigger scrapes, batch jobs, and crawls as steps in any automation.
MCP Server
Give any AI assistant live web access as native tools. Works with Claude Code, Claude Desktop, Cursor, Windsurf, and VS Code.

