100 free credits — no credit card required.Start building
Logo
Web Scraping logoWeb Scraping API

Scrape and crawl the web with one API

Scrape pages, search the web, map sites, extract fields, crawl, batch scrape, and run agents with one SocialCrawl API key. Firecrawl upstream under the same envelope and credit system as social. Reads and jobs are priced in credits.

Web Scraping logo
/v1/web

22 active endpoints. 10 primary product surfaces.

  • GET /v1/web/scrape
  • GET /v1/web/search
  • GET /v1/web/map
  • GET /v1/web/extract
  • GET /v1/web/crawl
  • GET /v1/web/batch-scrape
  • GET /v1/web/agent
  • GET /v1/web/parse
  • GET /v1/web/sessions
  • GET /v1/web/monitors

What Web Scraping endpoints does SocialCrawl ship?

Primary product cards cover scrape, search, map, extract, crawl, batch-scrape, agent, parse, sessions, and monitors. The registry also exposes jobs and operational GETs (status, cancel, list) at 0 credit. Firecrawl is the upstream. Same SocialCrawl key as social platforms.

/v1/web/scrape

Fetch one public URL as clean markdown or HTML with metadata. Optional formats, proxy, wait_for, and only_main_content. Use for a known URL; start crawl when you need many pages.

url, formats, proxy, wait_for, only_main_content

Web search

2 credits
/v1/web/search

Ranked web, news, and image results for a query. Title, URL, and snippet per hit. Limit, country, and domain filters supported.

query, limit, country, include_domains, exclude_domains

Site map

1 credit
/v1/web/map

Discover URLs on a site without fetching each page body. Optional search filter, limit, and sitemap mode. Use before scrape or crawl.

url, limit, search, sitemap

/v1/web/extract

Pull structured fields from one page with a JSON schema or plain-language prompt. Prefer this when you need price, author, or plan fields rather than full markdown.

url, schema or prompt

Site crawl

async hold, settle to pages scraped
/v1/web/crawl

Start an async crawl that walks a site and scrapes pages it finds. Returns job_id. Hold is max(1, limit); settlement follows pages scraped. Poll GET /v1/web/jobs/{job_id}.

url, limit, depth, webhook_url

Batch scrape

async hold equals URL count
/v1/web/batch-scrape

Scrape a list of known URLs in one async job. Hold equals the number of URLs. Returns job_id for status and results. Prefer crawl when the site should be explored for you.

urls

Browser agent

25 credit hold, then token settle
/v1/web/agent

Start a browser agent that follows a plain-language instruction on a site. Returns job_id. 25-credit hold up front, then settle to tokens used. Use when clicking and navigation are required.

url, prompt, model

/v1/web/parse

Upload a document such as a PDF and receive clean markdown plus page count. Use scrape for normal web pages; use parse when the input is a file.

file (multipart), mime_type, filename, url

Browser sessions

min 5 credit hold, TTL-based
/v1/web/sessions

Open a short-lived browser session on a URL, then execute interactions while it lives. Minimum 5-credit hold with TTL-based settlement. Close when done to settle remaining hold.

url, ttl_seconds

Change monitors

0 to create; checks billed later
/v1/web/monitors

Create a scheduled recheck of a page or search. Creating the monitor costs 0 credits. Each later check is billed when it runs. Pause or delete without losing history rules from the API.

url, cadence, mode, webhook_url

Web Scraping API13 endpoints supported
View docs
Scrape & Extract
Search & Discover
Crawl Jobs
Monitors
Browser Sessions

Returns one web page's content as clean markdown or HTML, with the resolved URL, status code, fetch metadata, and an optional screenshot.

Use it for a single known URL; for whole sites start a crawl job instead.

GET/v1/web/scrape?url=https%3A%2F%2Fexample.com&formats=markdown

url · Public URL to fetch.

$ curl https://www.socialcrawl.dev/v1/web/scrape?url=https%3A%2F%2Fexample.com&formats=markdown \
    -H "x-api-key: sc_YOUR_API_KEY"
— · idle
// Edit the params above and hit "Try it" to run a live request against the API

How the Web Scraping API works

Web Scraping is a normal SocialCrawl surface under /v1/web. You authenticate with x-api-key, pay in credits (including async holds that settle when jobs finish), and read one JSON envelope. Firecrawl is the upstream. Same key as social.

Authenticate every call

Send your key in the x-api-key header. No separate Firecrawl account for customers. The same SocialCrawl key works for Reddit, TikTok, Perplexity, and the rest of the catalog.

GET for sync reads, POST for jobs

scrape, search, map, and extract are GET with query params. crawl, batch-scrape, agent, parse, sessions, and monitors use POST bodies (or multipart for parse). Poll async work with GET /v1/web/jobs/{job_id}.

Pay in credits, including async holds

Sync tiers: scrape/map/parse 1, search 2, extract 5. Async crawl holds max(1, limit) and settles to pages scraped. batch-scrape holds URL count. agent holds 25 then settles tokens. sessions hold at least 5 with TTL settle. Monitor create is 0; checks bill later. Job status GETs are 0 credit.

Read one JSON envelope

Every response is the same shape: success, data, credits_used, credits_remaining, request_id, cached. Async starts return a job_id. Status and cancel routes update settlement without inventing a second envelope.

The usual integration chain

Most products discover URLs, scrape what matters, then crawl only when a whole site is required. Async jobs always end with a status poll.

01Scrape
GET /v1/web/scrape?url=…

WebPage: markdown/HTML, url, metadata

Known single URL. Fastest path to clean page content.

02Search
GET /v1/web/search?query=…

WebPageList: ranked titles, URLs, snippets

When you do not know the URL yet.

03Crawl
POST /v1/web/crawl { url, limit }

job_id for a site-wide async crawl

Many pages from one origin with limit and depth controls.

04Job status
GET /v1/web/jobs/{job_id}

Progress, settlement, and results when ready

0-credit GET /v1/web/jobs/{job_id} until complete or cancel.

request
GET /v1/web/scrape
  ?url=https://example.com
  &formats=markdown
Host: www.socialcrawl.dev
x-api-key: sc_your_api_key_here

POST /v1/web/crawl
Content-Type: application/json
{ "url": "https://docs.example.com", "limit": 25 }
response envelope
{
  "success": true,
  "data": {
    "url": "https://example.com",
    "markdown": "# Example…",
    "metadata": {}
  },
  "credits_used": 1,
  "credits_remaining": 9999,
  "request_id": "req_…",
  "cached": false
}

What lands in data

Web archetypes sit beside social Post and Author types. Parse code against WebPage, WebPageList, and job envelopes.

WebPagescrape, parse

url, markdown/html content, metadata, optional screenshot or extraction payload (scrape, parse, extract)

WebPageListsearch, map

items[] with title, url, snippet or mapped path rows (search, map)

Extract WebPageextract

structured fields under extraction shaped by schema or prompt

Async job envelopecrawl, batch-scrape, agent jobs

job_id, kind, status, credits hold/settlement, progress, result refs (crawl, batch-scrape, agent)

Inside the gateway

Same request lifecycle as every other /v1 platform endpoint. Web is not a separate product stack.

  1. 01

    Edge receives the call

    Next.js catch-all routes into the Hono social API. We mint a request_id, authenticate the key, then enforce rate limit and concurrency for the key.

  2. 02

    Validate, then debit or hold

    Registry lookup finds the web resource. Param and body validation run first. Invalid input returns 400 with no charge. Sync routes debit the tier cost. Async routes place a credit hold before upstream work.

  3. 03

    Cache or fetch

    Eligible search and map paths may hit a short public cache and return credits_used = 0. Scrape and extract typically go live. Async work is handed to Firecrawl jobs; you poll jobs/* for progress.

  4. 04

    Normalize and return

    Upstream payloads map to WebPage, WebPageList, or job status objects, validate against schema, wrap the success envelope, and settle or refund holds when jobs finish or fail.

Billing rules that matter in production

  • scrape, map, parse live miss: 1 credit each
  • search: 2 credits; extract: 5 credits
  • crawl: async hold max(1, limit), settle to pages scraped
  • batch-scrape: async hold equals URL count
  • agent: 25 credit hold, then token settle
  • sessions: min 5 credit hold, TTL-based settle
  • monitors: 0 to create; checks billed later
  • jobs/* status GETs: 0 credits
  • Cancel or hard fail: refund unsettled hold

How we get the data

Web Scraping is public page and SERP access through Firecrawl, normalized into SocialCrawl WebPage and job envelopes so your code keeps one key and one billing model.

What Web is for this API

Public web pages, search results, site maps, structured extraction, multi-page crawls, batch URL scrapes, browser agents, document parse, sessions, and change monitors. Not social profile or comment trees.

How SocialCrawl reaches it

Firecrawl is the upstream for scrape, search, map, extract, crawl, batch-scrape, agent, and related job operations. Customers do not manage a separate Firecrawl key for the SocialCrawl path.

What leaves our edge

A unified JSON envelope: success, data, credits_used, request_id, cached. Page content lands as WebPage. Search and map land as WebPageList. Async starts return job_id for status and settlement.

What we do not ship live

No unlimited free crawl. Holds and settlement always apply to async work. Job status GETs are free but do not replace the cost of pages scraped. Private authenticated sites still need sessions or agent flows where the product supports them.

field map sketch
page HTML / markdownWebPagepage HTML or markdown plus metadata
SERP / sitegraph rowsWebPageListSERP and sitegraph rows as list items
async job statusjobs/* envelopeasync job status and credit settlement

What this API is used for

The jobs this API is most often used for.

22active Web Scraping endpoints in the registry
1 / 2 / 5credit ladder for scrape, search, extract

Page scrape, site crawl, and change monitoring

Callers concentrate on single-URL scrape, web search into scrape chains, and crawl or batch-scrape when inventory is large. Monitors appear for recurring change checks. Agent and sessions show up when navigation or login steps block a simple GET. Firecrawl-powered web under the same SocialCrawl key and envelope as social. Clear async hold and settle rules, with jobs/* status at 0 credit.

Single scrape is typically seconds on a live miss. Search and extract can be slower. Crawl, batch-scrape, and agent are async: poll jobs until settlement.

What people build with the Web Scraping API

The jobs Web Scraping data is most often used for. Each one is a full recipe with the endpoint chain and pricing.

Use case examples

Common ways teams put this data to work, and the stack each one tends to run.

Data pipelines

Python, workers, object storage

Scrape known URLs, map then crawl docs sites, and land markdown into warehouses. Poll jobs for multi-page runs.

Research and SEO tools

Node, notebooks, CMS

search for candidates, scrape winners, extract pricing or author fields. Pair with Perplexity or Tavily when a synthesised answer is enough first.

Ops and product jobs

Go, cron, webhooks

Monitors for change detection, sessions for interactive pages, agent when multi-step browser work is required. Same key as social monitoring.

Call it in two lines

Start with scrape at 1 credit or search at 2. For multi-page work, POST crawl or batch-scrape and poll jobs at 0 credit until settlement.

curl "https://www.socialcrawl.dev/v1/web/scrape?url=https://example.com&formats=markdown" \
  -H "x-api-key: sc_your_api_key_here"
curl "https://www.socialcrawl.dev/v1/web/search?query=social+media+api&limit=10" \
  -H "x-api-key: sc_your_api_key_here"
Web Scraping logoWeb Scraping on SocialCrawl

Same key as the rest of the catalog

Endpoints

What data does the Web Scraping API return?

Every endpoint returns structured JSON in a unified envelope. Computed fields such as engagement rate and content category are included only where the endpoint supports them and the required source inputs are present.

Comparison

How does SocialCrawl compare to DIY scraping stack for Web Scraping data?

Same Web Scraping data, two very different paths. Auth, rate limits, schema, and cost — side by side.

Setup

SocialCrawl
One GET request returns clean markdown in a stable schema
DIY scraping stack
Headless browsers, proxy pools, and parsers you build and patch

JavaScript rendering

SocialCrawl
Real browser rendering built in, sessions for interactive flows
DIY scraping stack
Maintain your own Playwright or Puppeteer fleet

Change monitoring

SocialCrawl
Scheduled monitors with per-check billing, down to 5-minute cadence
DIY scraping stack
Cron jobs, diffing logic, and alert plumbing you write yourself

Async crawls

SocialCrawl
Hold-and-settle billing with automatic refunds for unused pages
DIY scraping stack
Queue infrastructure and retry logic you operate

Pricing

SocialCrawl
From 1 credit per page, one balance across 50 platforms
DIY scraping stack
Proxy, compute, and maintenance costs that scale with volume

Beyond the open web

SocialCrawl
Same key reaches social, commerce, and research data
DIY scraping stack
Separate scrapers per platform, each with its own breakage
FAQ

Have a question? We got answers

Find answers to frequently asked questions about SocialCrawl's API, pricing, and capabilities.

Contact us
What is the SocialCrawl Web Scraping API?
It is a family of /v1/web/* endpoints that fetch and structure the open web: scrape one page to clean markdown or HTML, search the web, map every URL on a site, extract structured fields with a prompt or JSON schema, run async crawls and batch scrapes, schedule change monitors, and drive interactive browser sessions, all behind the same key, envelope, and credit meter as SocialCrawl's social and commerce data.
What does a scrape response look like?
Content-bearing endpoints return the unified WebPage schema: the page URL, final URL after redirects, title, description, markdown and HTML content, optional screenshot media, structured extraction output, and fetch metadata, all under data.page in the standard SocialCrawl envelope. List endpoints like search and map return a WebPageList with items[].
How much does web scraping cost?
A basic page scrape is 1 credit. Web search costs 2 credits, site maps 1 credit, structured extraction 5 credits. Variable work is metered honestly: async crawls hold credits per page and settle to actual usage with automatic refunds for unused pages. New accounts get 100 free credits with no card required.
Can I crawl a whole site asynchronously?
Yes. POST /v1/web/crawl starts an async job and returns a job id you can poll, list, or cancel. Credits are held up front for the page limit you set, then settled to what the crawl actually fetched. Cancelling refunds the unused hold. Batch scraping many known URLs works the same way through /v1/web/batch-scrape.
Can I watch a page for changes?
Yes. POST /v1/web/monitors creates a scheduled monitor with a cadence as tight as every 5 minutes. Each check is billed only when it runs, and you can list checks, pause, resume, or delete the monitor at any time through the same /v1/web/monitors endpoints.
Does JavaScript-heavy content work?
Yes. Pages render in a real browser environment before capture, so client-side content is included. For flows that need clicks, logins, or custom navigation you can open an interactive session with POST /v1/web/sessions and execute browser code in it step by step.
How is this different from running my own scraper?
No proxy pools, headless browser fleet, retry logic, or parsing pipeline to maintain. One GET request returns clean markdown in a stable schema, and the same key also covers SocialCrawl's social, commerce, and research platforms, so web data lands in the same shape as everything else you collect.
Does SocialCrawl offer a web data API?
Yes. SocialCrawl's Web Scraping API is a full web data API: a single x-api-key scrapes any public page to clean markdown, searches the web, maps a whole site, extracts structured fields with a prompt or JSON schema, runs async crawls, and schedules change monitors. Every response lands in the unified WebPage schema, so open-web data arrives in the same shape as the social and commerce data on the same key, from 1 credit per page.
What is the best web scraper API?
SocialCrawl is a strong web scraper API when you want clean output without running the plumbing yourself. Pages render in a real browser before capture, so JavaScript-heavy content is included, and there are no proxy pools, headless browser fleets, or retry logic to maintain. One request returns markdown or HTML in a stable schema from 1 credit per page, and interactive sessions handle flows that need clicks or logins.
Is scraping Web Scraping data legal?
SocialCrawl returns publicly available Web Scraping data and does not access private or login-gated content. Whether scraping fits your project depends on your use case and jurisdiction — you are responsible for complying with Web Scraping's terms of service and applicable data-protection laws such as GDPR and CCPA. This is general information, not legal advice.
Web Scraping scraping API vs the official Web Scraping API — what's the difference?
With SocialCrawl there is no app review or approval queue — sign up and call Web Scraping endpoints immediately with a single x-api-key. Responses share one unified schema with every other SocialCrawl platform, and credit-based pricing replaces per-platform quotas. Official APIs are still the right choice for posting and other write actions: SocialCrawl is read-only data.

Ask AI about SocialCrawl

Read the Web Scraping API reference in the docs

🤖 AI agent or LLM? Read this page as markdown