Introduction
FairCrawl is a focused API for five jobs:
- scrape a single page with
/v1/crawl/web/scrape - crawl a bounded site section with
/v1/crawl/web/crawl - map URLs before you commit budget with
/v1/crawl/map - interact with a live browser session using
/v1/crawl/interact - research a topic across the live source set with
/v1/crawl/research
The public SDKs and MCP server intentionally stay close to those same concepts. If you know the REST route, you already know the product surface.
Base URLs
- Product docs:
https://faircrawl.ai/docs - API base:
https://api.faircompany.ai/v1 - Live OpenAPI spec:
https://api.faircompany.ai/v1/docs - Swagger UI:
https://api.faircompany.ai/docs
What ships today
- first-party TypeScript SDK:
faircrawl - first-party Python SDK:
faircrawl - CLI:
faircrawl-cli - MCP server:
@faircrawl/mcp - org-scoped API keys and per-action billing
First successful request
```bash
curl https://api.faircompany.ai/v1/crawl/web/scrape \
-X POST \
-H "Authorization: Bearer fc_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"url": "https://stripe.com/pricing",
"format": "markdown",
"only_main_content": true
}'
```
```ts
import FairCrawl from "faircrawl";
const fc = new FairCrawl({ apiKey: process.env.FAIRCRAWL_API_KEY || "fc_live_xxx" });
const result = await fc.scrape({
url: "https://stripe.com/pricing",
format: "markdown",
only_main_content: true,
});
console.log(result.text);
console.log(result._meta.cost);
```
```python
from faircrawl import FairCrawl
fc = FairCrawl()
result = fc.scrape(
"https://stripe.com/pricing",
format="markdown",
only_main_content=True,
)
print(result.text)
print(result.meta.cost)
```
```json
{
"tool": "faircrawl_scrape",
"arguments": {
"url": "https://stripe.com/pricing",
"format": "markdown",
"only_main_content": true
}
}
```
Choose the right endpoint
Use /scrape when one page can answer the question.
Use /crawl when you know the seed URL and want bounded page expansion.
Use /map when you want discovery first and content later.
Use /interact when the page needs clicks, form fills, waits, or session persistence.
Use /research when you need synthesis across multiple sources instead of a single document read.
Next steps
- Create an API key in the FairCrawl dashboard.
- Run the language-specific quickstart that matches your stack.
- Read the endpoint overview for the capability you plan to call in production first.