What the API does and who it is for

Website Contacts Scraper, built by OpenWeb Ninja, crawls the publicly accessible pages of a root domain and returns whatever contact information is embedded there: email addresses, phone numbers, and profile URLs across nine social networks. The crawl happens in real time, so results reflect the current state of the site rather than a cached snapshot.

The primary audience is B2B — sales teams building lead lists, marketers enriching CRM records, agencies running outreach campaigns, and developers building data pipelines that need contact data at scale. The API abstracts away the mechanics of crawling, parsing, and deduplicating contact fields, which saves meaningful engineering time compared to rolling your own scraper.

With an average latency of 1,745 ms and a reported 100% success rate across its subscriber base, the API is positioned as reliable for production use, not just occasional lookups.

Endpoints

There are two endpoints.

GET /scrape-contacts

This is the core endpoint. Pass a root domain and receive a JSON payload containing emails, phone numbers, and social profile links found across the site's pages. A couple of parameters are worth understanding before you integrate:

  • match_email_domain — by default, the endpoint returns all email addresses it finds, including addresses on third-party domains (e.g., a Gmail contact buried in a page). Set this to true to restrict results to addresses whose domain matches the target site. For most B2B enrichment scenarios, you will want this enabled.
  • external_match — extends the search beyond the company's own website and social profiles to find contact data in external sources. Useful when a site is sparse on explicit contact info.

All responses share a consistent envelope: a status field (OK or ERROR), a request_id for debugging, and either a data object or an error object containing a message and HTTP code. This predictable structure makes it straightforward to write error-handling logic.

GET /website-url-by-keyword (POST /website-url-by-keyword)

This supporting endpoint accepts a keyword or company name and returns the most likely website URL — up to 20 keywords in a single call. It exists to solve a practical upstream problem: you often have a company name but not its domain. Running this first, then feeding the result into /scrape-contacts, creates a clean two-step pipeline for name-to-contacts resolution.

Authentication

The API is distributed through RapidAPI. Authentication uses two HTTP headers: X-RapidAPI-Key (your personal API key from your RapidAPI account) and X-RapidAPI-Host set to website-contacts-scraper.p.rapidapi.com. RapidAPI's playground lets you fire a test request before writing a single line of code, and code snippets for JavaScript, Python, Java, Shell, and other languages are available directly in the interface.

Pricing

The freemium model gives developers a path from experimentation to production without a credit card upfront.

Plan Price / month Requests / month Overage per request Rate limit
BASIC $0 50 1 req/sec
PRO $25 10,000 $0.0030 5 req/sec
ULTRA $75 50,000 $0.0020 10 req/sec
MEGA $150 200,000 $0.0010 20 req/sec

The BASIC plan is hard-limited at 50 requests per month — enough to validate a prototype or test data quality, but not enough for any meaningful production workload. The free tier is also rate-limited to 1,000 requests per hour, a RapidAPI-wide policy for free plans, on top of the 1 req/sec cap.

PRO at $25/month works out to roughly $0.0025 per request on the included quota, slightly above the $0.0030 overage rate — meaning the plan itself is a modest discount on the overage price. ULTRA is the recommended plan (marked as such in the pricing page), reducing the effective per-request cost to $0.0015 on the base quota and $0.0020 on overages. MEGA halves the overage rate again to $0.001, making it attractive if your monthly volume regularly exceeds 50,000 requests.

For volumes beyond what MEGA covers, OpenWeb Ninja offers a separate Website Contacts Scraper (Mega) API and accepts direct inquiries at [email protected] for custom plans.

Practical use cases

Lead generation pipelines — Combine /website-url-by-keyword with /scrape-contacts to turn a list of company names into a structured contact dataset. At 10,000 requests/month on PRO, you can process a sizable prospect list without hitting the ceiling.

CRM enrichment — If your CRM already holds domain names, pass them directly to /scrape-contacts and write the returned emails and social handles back into the record. The match_email_domain filter helps keep the enriched data clean.

Ad targeting — Social profile links returned by the API (Facebook pages, Instagram handles, LinkedIn URLs) can feed custom audience uploads or inform targeting research.

Sales tooling — Developers building outreach platforms can embed this API to give end-users one-click contact lookup on any company website they visit.

Limitations and things to check before integrating

Coverage depends on what the site publishes. The API scrapes publicly visible pages. Sites that hide contact info behind login walls, render it entirely in JavaScript without server-side content, or simply don't publish contact details will return sparse results. There is no guarantee of completeness, only of what is publicly accessible.

Real-time crawling adds latency. The 1,745 ms average latency is reasonable for a background enrichment job but is too slow for synchronous user-facing flows where sub-second responses are expected. Design your integration to call this API asynchronously.

Free plan is genuinely limited. Fifty requests is enough for a technical proof-of-concept, not for evaluating data quality across a meaningful sample of your target domains. Budget for at least a month of PRO if you need a realistic data-quality assessment.

Rate limits differ by plan. If you saturate your RPS cap, you will receive a 429 Too Many Requests error from the RapidAPI gateway. Implement exponential backoff and retry logic, particularly for 429 and 5xx responses.

Email filtering matters. Without match_email_domain=true, you may get generic emails (Gmail, Outlook) found incidentally on the page rather than company-domain emails. For B2B use cases, always enable this parameter unless you have a specific reason not to.

Getting started

  1. Subscribe to the BASIC plan on RapidAPI — no credit card required.
  2. Open the RapidAPI playground, select the /scrape-contacts endpoint, and click