Skip to content
Scrappa Get API key
Contacts API 1 credit/request

Website Contacts API Documentation

GET https://scrappa.co/api/contacts/website

Reads the homepage and the best contact, imprint, about, team and support pages of a website (one level deep) and returns the emails, phone numbers and social profile links it publishes, each with the page and method that found it. Reads plain text, mailto and tel links, obfuscated emails like name [at] site [dot] com, Cloudflare protected emails, JSON-LD and microdata. Third-party emails are flagged with domain_match false. Nothing is guessed. Phone numbers with a country prefix are returned as +E.164, others as digits. Cost: 1 credit per page that was fetched (1 to 8 per request). Pages that fail, and robots, sitemap and security.txt reads, are free. A request that fetches no page returns 503 and costs nothing. Sites behind strict bot protection (for example booking.com) cannot be read.

Website Contacts API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/contacts/website
Auth header
x-api-key
Cost
1 credit/request
domain = example.com
Response preview
200 OK
{
    "meta": {
        "credits": 2,
        "duration_ms": 3100,
        "pages_fetched": 2,
        "upstream_calls": 6
    },
    "pages": [
        {
            "url": "https://example.com/",
            "reason": null,
            "status": 200,
            "charged": true,
            "fetched": true
...

Parameters

Start with the required fields, then add optional filters only when your use case needs them.

Runnable path

1 required parameter needed before sending a request.

3 optional filters available.

domain string Required

Website host or URL, for example example.com. Public hosts only.

Example value example.com
max_pages integer Optional

Most pages to fetch, 1 to 8. Defaults to 5. Each fetched page costs 1 credit.

Example value 5
match_email_domain boolean Optional

Set to true to return only emails on the site's own domain. Defaults to false.

Example value true
include_external boolean Optional

Set to true to also follow contact and imprint links to other domains, for example a parent company. Defaults to false.

Example value true

Response Schema

Example response fields are illustrative; inspect the JSON before integrating.

Example response fields

Scan these fields before integrating.

meta pages domain emails phones socials success

Common pages fields

url reason status charged
JSON Response
200 OK
{
    "meta": {
        "credits": 2,
        "duration_ms": 3100,
        "pages_fetched": 2,
        "upstream_calls": 6
    },
    "pages": [
        {
            "url": "https://example.com/",
            "reason": null,
            "status": 200,
            "charged": true,
            "fetched": true
        },
        {
            "url": "https://example.com/contact",
            "reason": null,
            "status": 200,
            "charged": true,
            "fetched": true
        },
        {
            "url": "https://example.com/team",
            "reason": "status_404",
            "status": 404,
            "charged": false,
            "fetched": false
        }
    ],
    "domain": "example.com",
    "emails": [
        {
            "value": "hello@example.com",
            "sources": [
                {
                    "url": "https://example.com/contact",
                    "method": "mailto"
                }
            ],
            "domain_match": true
        }
    ],
    "phones": [
        {
            "raw": "+49 30 123456",
            "value": "+4930123456",
            "sources": [
                {
                    "url": "https://example.com/contact",
                    "method": "text"
                }
            ]
        }
    ],
    "socials": {
        "linkedin": [
            {
                "url": "https://www.linkedin.com/company/example",
                "handle": "example",
                "sources": [
                    {
                        "url": "https://example.com/",
                        "method": "link"
                    }
                ]
            }
        ]
    },
    "success": true
}

Errors

Handle these documented responses before retrying or showing customer-facing failures.

Validation Error

Returned when a required parameter is missing or a value is out of range. No credits are charged.

Service Unavailable

Returned when no page could be fetched or the search returned no results. Failed requests are not charged. Try again.

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Try It Live

Test this endpoint in our interactive playground with real data.