Appearance
Quickstart
This guide takes you from zero to your first scraped page in about two minutes: create an API key, send one POST /api/v1/scrape/web request and understand the response.
1. Create an API key
- Sign in to the ScrapeIt dashboard.
- Open Workspace → API Keys and click Create API key.
- Give the key a name and the
scrape:webscope (added by default). - Copy the key immediately - for security it is shown only once and stored hashed. Keys look like
sk_live_….
Details and security practices: Authentication & API keys.
A new workspace starts on the Free plan: 3 000 credits a month (credited once you confirm your email), two requests at a time, webhooks included - enough for about 750 plain fetches. Plans and prices: Billing & credits.
2. Send your first request
Replace YOUR_SCRAPEIT_API_KEY with your own key (or export it as the SCRAPEIT_API_KEY environment variable):
bash
curl -X POST "https://api.scrapeit.io/api/v1/scrape/web" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_SCRAPEIT_API_KEY" \
-d '{
"url": "https://example.com",
"outputFormat": ["html", "text"]
}'js
const response = await fetch('https://api.scrapeit.io/api/v1/scrape/web', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.SCRAPEIT_API_KEY ?? 'YOUR_SCRAPEIT_API_KEY',
},
body: JSON.stringify({
url: 'https://example.com',
outputFormat: ['html', 'text'],
}),
});
const result = await response.json();
console.log(result.data.content.text);python
import os
import requests
payload = {"url": "https://example.com", "outputFormat": ["html", "text"]}
response = requests.post(
"https://api.scrapeit.io/api/v1/scrape/web",
json=payload,
headers={"x-api-key": os.environ.get("SCRAPEIT_API_KEY", "YOUR_SCRAPEIT_API_KEY")},
)
response.raise_for_status()
print(response.json()["data"]["content"]["text"])Generate snippets from the Playground
The dashboard API Playground builds these cURL/Node.js/Python snippets from your current form state, so you can experiment visually first and copy working code. The API key stays masked in generated snippets unless you explicitly paste your own key locally.
3. Read the response
Every successful call returns the standard { data } envelope. The interesting parts:
json
{
"data": {
"request_metadata": {
"request_id": "0d6c7cbb-…",
"target_url": "https://example.com",
"correlation_id": "b3af2c…",
"proxy_attempt_count": 1,
"cache_status": "miss"
},
"content": {
"html": "<!doctype html>…",
"text": "Example Domain …"
},
"files": [],
"cost": { "estimated_credits": 4, "charged_credits": 4 },
"execution_status": "billable_success",
"billing_status": "charged",
"billable_result_category": "target_response_received",
"non_billable_failure_category": null,
"target_http_status": 200
}
}contentholds the formats you asked for inoutputFormat(html,text,markdown,json).billing_statustells you whether credits were charged. If our proxy, network or browser infrastructure failed,billing_statusisnot_charged- see Billing & credits.correlation_idis your support handle: include it when contacting us about a request.
4. Level up
| Goal | What to use |
|---|---|
| Scrape a JavaScript-heavy page | jsRendering: true |
| Route through a specific country | proxyType + proxyCountry |
| Extract structured fields | extractRules |
| Scrape thousands of URLs | Batch Scraping API |
| Crawl a whole website | Website Crawler API |
| Get the result pushed to you | Async requests & webhookUrl |
| Get notified when jobs finish | Webhooks |
| Google, Amazon & other sites | Ready-made APIs, e.g. Google SERP API |
| Call it from Python or Node.js | SDKs |
| Use it from an AI assistant | MCP server |