One platform.
The whole web stack.
The core web-data primitives — scrape, crawl, search, and extract — behind a single auth, a single bill, and one MCP server. No more duct-taping a scraper, a SERP, a parser, and a headless browser.
Smart crawling
Render-aware crawls that follow links, respect robots, and bypass anti-bot walls cleanly.
Web search
Search the live web across engines, merged and deduped by URL — ranked results from one call, no SERP scraping to maintain.
Structured extraction
Structured extraction with JSON schemas, retries, and verification — typed end-to-end.
Agent observability
Trace every tool call, token, and step. Replay runs. Diff prompts. Find regressions fast.
Browser automation
Stealth Chromium pools that scale to thousands of concurrent sessions in seconds.
AEO audits
Audit how AI crawlers see, cite, and rank your site. Get a remediation checklist instantly.
Markdown conversion
Clean, model-ready markdown for any page. Strips chrome, keeps semantics, preserves citations.
Async jobs
Fire-and-forget jobs with webhooks, idempotency keys, fan-out, and durable retries.
Plus full domain & security intelligence — DNS, SSL/TLS posture, redirect graphs, and threat signals. Explore the intelligence suite →
One endpoint.
One auth. One billing.
Typed SDKs in TypeScript and Python. A first-class REST API. Idempotent jobs, streaming responses, webhooks, and structured errors. Built the way you wished scraping APIs were built ten years ago.
// Crawl a site, extract structured data, observe every step.
import { Ollagraph } from "@ollagraph/sdk";
const og = new Ollagraph({ apiKey: process.env.OG_KEY! });
const job = await og.crawl.start({
url: "https://news.ycombinator.com",
depth: 3,
renderer: "chromium-stealth",
extract: {
schema: {
title: "string",
url: "url",
points: "int",
author: "string",
},
},
observe: { trace: true, redact: ["email"] },
});
for await (const ev of og.stream(job.id)) {
console.log(ev.phase, ev.url, ev.latencyMs);
}
from ollagraph import Ollagraph
og = Ollagraph(api_key=os.environ["OG_KEY"])
job = og.crawl.start(
url="https://news.ycombinator.com",
depth=3,
renderer="chromium-stealth",
extract={
"schema": {
"title": "string",
"url": "url",
"points": "int",
"author": "string",
},
},
observe={"trace": True, "redact": ["email"]},
)
for ev in og.stream(job.id):
print(ev.phase, ev.url, ev.latency_ms)
curl https://api.ollagraph.com/v1/crawl \
-H "Authorization: Bearer $OG_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://news.ycombinator.com",
"depth": 3,
"renderer": "chromium-stealth",
"extract": {
"schema": {
"title": "string",
"url": "url",
"points": "int",
"author": "string"
}
},
"observe": { "trace": true, "redact": ["email"] }
}'
# → { "job_id": "job_8431", "stream": "wss://…/v1/jobs/job_8431" }
One API, built for
what agents actually do.
From RAG ingestion to lead enrichment, price monitoring, and AI-search audits — the same key, the same flat pricing.
RAG & LLM pipelines
Turn any site or document into clean, chunked, model-ready markdown for retrieval and training.
Build a RAG pipeline →Sales & lead intelligence
Enrich domains into contacts, tech stack, and firmographics for prospecting and RevOps.
Enrich leads from a domain →Price & review monitoring
Track competitor SKUs, prices, and reviews across marketplaces on a schedule.
Monitor competitor pricing →SEO & AEO audits
Audit how search engines and AI answer engines see, cite, and rank your pages.
Audit for AI search →Priced for how agents
actually run.
A flat 1 credit per call — no 5× render or extract multipliers, so a JavaScript-rendered page costs the same as a static one. Pay as you go from $5, get refunded automatically when a fetch fails, and start with 1,000 free credits.
| How it compares | Ollagraph | Firecrawl | Typical scraping API |
|---|---|---|---|
| Price per call | Flat 1 credit | 1–5× by feature | Per-request tiers |
| Pay-as-you-go from $5 | Yes | No | Varies |
| Refund on failed fetch | Yes | No | No |
| Free to start | 1,000 credits | 500 credits | Trial |
| MCP server included | Yes | Yes | No |
| Search + crawl + extract + intelligence, one key | Yes | Scrape + crawl | Scrape only |
| No scraped-content retention | Yes | — | — |
On raw static HTML a few providers match our entry rate. Where Ollagraph pulls ahead is real-world, JavaScript-rendered pages — one flat credit, no render multiplier — plus pay-as-you-go, refund-on-failure, and the largest free tier. Firecrawl is a great markdown-first tool; we go further on predictability and breadth.
Built on open web standards — we honor the Robots Exclusion Protocol (RFC 9309), extract W3C JSON-LD structured data, and follow the Sitemaps and robots.txt conventions the whole web already relies on.
Questions, answered.
How does Ollagraph compare to Firecrawl?
Firecrawl is an excellent markdown-first context API. Ollagraph covers the same scrape, crawl, and extract surface, then adds web search, domain intelligence, vertical actors, and agent observability behind one key. On price it bills a flat 1 credit per call with no per-feature multipliers, offers true pay-as-you-go from $5, refunds automatically on failed fetches, and starts you with 1,000 free credits. See the full Firecrawl comparison.
Is there a free tier and pay-as-you-go pricing?
Yes. Every new account gets 1,000 free credits with no credit card, and every endpoint is available on the free tier. Beyond that you can pay as you go from $5 — you are not forced onto a monthly subscription.
How is Ollagraph priced and metered?
Most endpoints cost a flat 1 credit per call and orchestrators cost 3. There are no 5× render or extract multipliers, so a JavaScript-rendered page costs the same as a static one. If an upstream fetch errors, the credit is refunded automatically before the response returns, so you only pay for successful calls.
Does Ollagraph provide an MCP server for AI agents?
Yes. The Ollagraph MCP server exposes all 223 endpoints as tools behind one key. Run pipx run ollagraph-mcp and Claude Desktop, Cursor, or any MCP client gets scrape, crawl, search, extract, and intelligence at once.
Do you store the content Ollagraph scrapes?
No. Ollagraph does not persist scraped page content. Requests are processed and returned; we keep usage metadata for billing and observability, not the pages themselves — the guarantee agent and enterprise workloads need.
Is Ollagraph a good Firecrawl alternative?
For teams that want more than markdown — search, extraction, domain intelligence, and vertical actors under one key — with pay-as-you-go pricing, refund-on-failure, and a 1,000-credit free tier, Ollagraph is a strong Firecrawl alternative. See the side-by-side comparison and pricing breakdown.