3 lines of code to structured JSON
Stop fighting anti-bot systems, managing proxies, and parsing broken HTML. Send a URL, get clean markdown, structured data, or screenshots back. One API for scraping, crawling, and searching the web.
import requestsresponse = requests.post("https://api.octivas.com/api/v1/scrape",headers={"Authorization": "Bearer YOUR_API_KEY"},json={"url": "https://example.com", "formats": ["markdown"]})data = response.json()print(data["markdown"])
Response
{"success": true,"url": "https://example.com","markdown": "# Example Domain\n\nThis domain is for use in...","metadata": {"title": "Example Domain","description": "...","language": "en","status_code": 200}}
< 2s
average response time
99.99%
uptime SLA
195+
supported countries
100M+
monthly requests
One API key, three powerful endpoints
Scrape single pages, crawl entire sites, or search the web. Every response includes clean, structured data your code can use immediately.
/v1/scrapeScrape
Extract content from any single URL. Returns markdown, HTML, screenshots, metadata, links, and images. Pass a JSON schema for structured extraction.
import requestsresponse = requests.post("https://api.octivas.com/api/v1/scrape",headers={"Authorization": "Bearer YOUR_API_KEY"},json={"url": "https://example.com", "formats": ["markdown"]})data = response.json()print(data["markdown"])
/v1/crawlCrawl
Crawl an entire website starting from a URL. Control depth, page limits, and path filters. Returns an array of pages with the same rich output as scrape.
response = requests.post("https://api.octivas.com/api/v1/crawl",headers={"Authorization": "Bearer YOUR_API_KEY"},json={"url": "https://docs.example.com","limit": 10,"formats": ["markdown"]})pages = response.json()["pages"]for page in pages:print(page["metadata"]["title"], page["url"])
/v1/searchSearch
Search the web and get full-page content for each result. Filter by country, location, and time range. Each result includes extracted content, not just snippets.
response = requests.post("https://api.octivas.com/api/v1/search",headers={"Authorization": "Bearer YOUR_API_KEY"},json={"query": "best web scraping API for Python","limit": 5,"formats": ["markdown"]})for result in response.json()["results"]:print(result["title"], result["url"])
Everything you need to scrape at scale
We handle the infrastructure so you can focus on what to do with the data.
Anti-bot bypass
Automatic proxy rotation, CAPTCHA solving, and browser fingerprint management. No blocked requests.
JavaScript rendering
Full headless browser execution for SPAs and dynamic content. Wait for selectors, scroll, and interact.
Structured output
Get clean markdown, HTML, screenshots, links, images, or custom JSON schemas. LLM-ready by default.
Geo-targeting
Request from 195+ countries. Set language preferences and location for localized content.
Smart caching
Built-in response cache with configurable freshness. Reduce costs on repeat requests automatically.
One API, three modes
Scrape single pages, crawl entire sites with depth control, or search the web — all from the same API key.
Simple, credit-based pricing
1 credit = 1 successful API request. No hidden fees, no per-page charges.
Free
$0/month
1,000 credits
- No credit card required
- All three endpoints
- Community support
Hobby
$19/month
4,000 credits
- Higher rate limits
- Email support
- Annual billing available
Standard
$89/month
100,000 credits
- More concurrent requests
- Email support
- Annual billing available
Enterprise
Custom
Unlimited
- Dedicated infrastructure
- SLA guarantees
- Custom integrations
Frequently asked questions
- What output formats does the API support?
- Every endpoint returns markdown, HTML, raw HTML, screenshots, links, images, and summaries. You can also pass a JSON schema to get custom structured extraction — perfect for feeding data into LLMs or databases.
- How does the API handle JavaScript-heavy websites?
- All requests go through a full headless browser by default. SPAs, client-rendered content, and lazy-loaded elements are captured automatically. You can also set wait timers for specific selectors.
- Do I need to manage my own proxies?
- No. Octivas handles proxy rotation, IP management, and anti-bot bypass behind the scenes. You send a URL, we return the data. No proxy lists, no CAPTCHA solving code, no blocked requests to debug.
- What's the difference between scrape, crawl, and search?
- Scrape extracts content from a single URL. Crawl follows links from a starting URL to extract multiple pages from a site (with depth and limit controls). Search queries the web and returns full-page content for each result — not just snippets.
- Can I use this for AI and LLM pipelines?
- Yes — that's what the markdown format is designed for. The output is clean, structured, and ready for RAG pipelines, training data collection, or feeding into any LLM. No post-processing needed.
- Is there a free tier?
- Yes. Sign up and get 1,000 API credits per month for free, no credit card required. Each successful API request costs 1 credit.
Start scraping in under a minute
Sign up, grab your API key, and make your first request. Your first 1,000 credits are on us — no credit card required.