Find an API

Search public APIs with auth details & Postman guides

← All APIs

Scrape Website Email API

scrapewebsite · Communication

Communication No Auth Free & Open email tools

ScrapeWebsiteEmail is a service that exposes an api to fetch e-mails from a website.

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Returns a list of emails scraped by priority (ie. e-mails appear on top level pages are first). Please note that subsequent calls to the same url will be fetched from the <b>cache</b> (14 day flush). <br/><br/>Will also parse patterns such as hello[at]site.com, hello[at]site[dot]com, hello(at)site.com, hello(at)site(dot)com, hello @ site.com, hello @ site . com. <br/><br/>Please do note we cannot parse sites that require a login (for now), so for some Facebook pages it is not possible at the moment to fetch the e-mail.<br/><br/>Finally, please note that the api will fetch links for up to 2 minutes. After that time it will start analysing the pages which have been scraped. <b>Therefore</b> please ensure that your client has a timeout of at least <b>150 seconds</b> (2 mins to fetch and the rest to parse). <br/><br/><b>Please note</b> that due to the fact that the api goes out to fetch the pages, the server allows only 1 concurrent request/ip. Requests which are made while the 1 request is still processing will result in a 429 code.<br/><br/><b>Please note</b> that as of May 25, 2014, the main mechanism of tracking usage will be done via Mashape. You can get the free calls by signing up with the FREE plan.<br/><br/>Please visit <a href='https://www.mashape.com/tommytcchan/scrape-website-email'>https://www.mashape.com/tommytcchan/scrape-website-email</a>.<br/><br/><b>There is now a limit of 5 requests per day using this sample interface.</b><br/><br/>

Returns a list of emails scraped by priority (ie. e-mails appear on top level pages are first). Please note that subsequent calls to the same url will be fetched from the cache (14 day flush). Will also parse patterns such as hello[at]site.com, hello[at]site[dot]com, hello(at)site.c

https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_emails.json?website=example&must_include=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_emails.json?website=example&must_include=example"
import requests
params = {
    "website": "example",
    "must_include": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_emails.json",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_emails.json');
url.searchParams.set('website', 'example');
url.searchParams.set('must_include', 'example');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_emails.json")
	q := baseURL.Query()
	q.Set("website", "example")
	q.Set("must_include", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_emails.json")
uri.query = URI.encode_www_form({
  "website" => "example",
  "must_include" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_emails.json?" . http_build_query([
    "website" => "example",
    "must_include" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Attempts to grab the google store url or the ios store url for a site, after searching through the site.

Attempts to grab the google store url or the ios store url for a site, after searching through the site.

https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_store_links.json?website=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_store_links.json?website=example"
import requests
params = {
    "website": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_store_links.json",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_store_links.json');
url.searchParams.set('website', 'example');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_store_links.json")
	q := baseURL.Query()
	q.Set("website", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_store_links.json")
uri.query = URI.encode_www_form({
  "website" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/scrape_store_links.json?" . http_build_query([
    "website" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Returns whether the system is up.

Returns ‘pong’ if the site is up

https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/ping.json

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/ping.json"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/ping.json",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/ping.json';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/ping.json"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/ping.json")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/scrapewebsite.email/0.1/v1/ping.json";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Scrape Website Email API?

Scrape Website Email API is a Communication API. Developers commonly use communication APIs for:

  • sending SMS alerts and notifications
  • building in-app chat and messaging features
  • automating email sequences and transactional emails
  • creating voice bots and IVR systems
  • verifying phone numbers at signup

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Scrape Website Email API is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide

Open documentation ↗