ravn
Website scraper API

Any company site, as clean JSON.

Your agent should not parse HTML. scrape_website reads a company’s homepage plus its contact, about and team pages, and hands back emails, phone numbers, social profiles, the people it names and their titles, the address, the tech stack and whether the business still looks live.

Start free: 1,000 lookups Read the docs

How it works

What happens on every call.

The same tool answers over the REST API, the MCP server and the CLI.

  1. / 01

    Safe fetch

    Public addresses only, with timeouts and size limits, so a hostile site cannot reach anything internal.

  2. / 02

    Polite

    We read robots.txt and skip sites that say no.

  3. / 03

    Follow the right pages

    Up to seven pages on the company’s own host: the homepage plus the contact, about, team and leadership pages it links to.

  4. / 04

    Find contacts

    Emails (including name [at] company tricks), phone numbers from call links, structured data and the visible text, and ten social networks from LinkedIn to Yelp. Opted-out emails and numbers are removed.

  5. / 05

    Name the team

    People the site publishes, with their titles and LinkedIn where linked, from structured data and team-page cards.

  6. / 06

    Is it alive?

    Parked or for-sale domains, closed-business notices and the newest copyright year, so dead leads drop out before you call.

  7. / 07

    One answer shape

    The same envelope as every other tool, so your agent handles it the same way.

Call it

One request. One answer shape.

Branch on status. A miss returns not_found and costs nothing. In Claude, just ask in plain English and it picks scrape_website for you.

curl https://api.askravn.com/v1/tools/scrape_website \
  -H "Authorization: Bearer $RAVN_API_KEY" \
  -d '{"domain": "acme.com"}'

{ "status": "ok",
  "results": { "domain": "acme.com", "name": "Acme", "address": "…",
    "emails": ["hello@acme.com"], "phones": ["+14165550123"],
    "socials": { "linkedin": "…", "instagram": "…", "facebook": "…" },
    "team": [{ "name": "Maria Lopez", "title": "Owner", "linkedin": "…" }],
    "technologies": ["squarespace", "hubspot"],
    "site": { "live": true, "parked": false, "closed": false, "copyright_year": 2026 },
    "pages_read": ["https://acme.com/", "https://acme.com/contact", "…"] } }
FAQ

Questions about scrape_website.

All questions →

Is it a general web crawler?

No. It reads one company’s site and returns company fields. That keeps it fast and predictable.

Does it cost extra?

No. It counts as one lookup in your plan.

Can I try it without a key?

Yes: the live demo on the home page runs it for real.

What about JavaScript-only sites?

We read the HTML the server sends. Sites that render everything in the browser may return fewer fields.