Gouda Studios Agent Tools

Website Contact Extractor

Extract emails, phone numbers, social media links and addresses from any list of websites. One clean deduplicated row per site, Cloudflare-protected emails decoded, phones validated, MX checked. Pay only for sites where an email or phone is found.

Open on Apify: gouda_studios/website-contact-extractor

Use cases

Pricing

Input parameters

NameTypeDefaultDescription
startUrlsarrayWebsites or domains to extract contacts from, one per line. Examples: https://www.example.com or example.com. Each site becomes exactly one output row.
maxPagesPerSiteinteger8How many pages to read on each site, starting with the homepage and then the most likely contact pages (Contact, About, Team, Impressum, Support). You pay per site, not per page, so higher values only cost more time.
defaultCountrystring"US"Two-letter country code used to read local phone numbers that have no +country prefix, e.g. US, GB, DE, AU.
checkMxbooleantrueAdds a free DNS check that each email domain can receive mail. Flags typos and dead domains.
respectRobotsTxtbooleantrueSkip pages that a site's robots.txt asks crawlers not to visit.
proxyConfigurationobject{"useApifyProxy": false}Optional. Most business sites work without a proxy. Turn on Apify Proxy if many sites time out or block requests.

Example input

{
  "startUrls": [
    "https://apify.com",
    "python.org"
  ],
  "maxPagesPerSite": 8,
  "defaultCountry": "US"
}

Output fields (one row per website with contacts)

FieldTypeDescription
inputUrlstring
domainstring
finalUrl['string', 'null']
siteName['string', 'null']
statusstring
primaryEmail['string', 'null']
primaryPhone['string', 'null']
emailsarray
phonesarray
linkedinarray
facebookarray
instagramarray
xarray
youtubearray
tiktokarray
otherSocialsobject
addressesarray
contactPageUrlsarray
emailDetailsarray
phoneDetailsarray
pagesScannedinteger
scannedUrlsarray
chargedboolean
error['string', 'null']
scrapedAtstring

Sample output row

{
  "inputUrl": "https://apify.com",
  "domain": "apify.com",
  "finalUrl": "https://apify.com/",
  "siteName": "Apify",
  "status": "ok",
  "primaryEmail": "support@apify.com",
  "primaryPhone": null,
  "emails": [
    "support@apify.com",
    "hello@apify.com"
  ],
  "phones": [],
  "linkedin": [
    "https://www.linkedin.com/company/apify",
    "http://linkedin.com/company/apify"
  ],
  "facebook": [],
  "instagram": [],
  "x": [
    "https://x.com/apify"
  ],
  "youtube": [],
  "tiktok": [
    "https://www.tiktok.com/@apifytech",
    "https://www.tiktok.com/@apifyoffice"
  ],
  "otherSocials": {
    "github": [
      "https://github.com/apify"
    ],
    "discord": [
      "https://discord.com/invite/jyEM2PRvMU",
      "https://discord.gg/w3e2v7rWDw"
    ]
  },
  "addresses": [
    {
      "street": "Na P\u0159\u00edkop\u011b 959/27",
      "city": "Prague",
      "region": null,
      "postalCode": "11000",
      "country": "CZ"
    }
  ],
  "contactPageUrls": [
    "https://apify.com/contact",
    "https://apify.com/contact-sales",
    "https://apify.com/contact-sales/demo"
  ],
  "emailDetails": [
    {
      "email": "support@apify.com",
      "foundOn": "https://apify.com/",
      "source": "schema.org",
      "isRoleAccount": true,
      "matchesSiteDomain": true,
      "domainHasMx": true
    },
    {
      "email": "hello@apify.com",
      "foundOn": "https://apify.com/contact",
      "source": "mailto",
      "isRoleAccount": true,
      "matchesSiteDomain": true,
      "domainHasMx": true
    }
  ],
  "phoneDetails": [],
  "pagesScanned": 4,
  "scannedUrls": [
    "https://apify.com/",
    "https://apify.com/contact",
    "https://apify.com/contact-sales",
    "https://apify.com/about"
  ],
  "charged": true,
  "error": null,
  "scrapedAt": "2026-10-22T05:44:44.947Z"
}

How to call

Apify API (synchronous, returns dataset items)

curl -X POST "https://api.apify.com/v2/acts/gouda_studios~website-contact-extractor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls": ["https://apify.com", "python.org"], "maxPagesPerSite": 8, "defaultCountry": "US"}'

Apify MCP server

Connect an MCP client to https://mcp.apify.com and add the actor gouda_studios/website-contact-extractor, for example https://mcp.apify.com/?tools=gouda_studios/website-contact-extractor.

Agentic payments (x402 / Skyfire)

This actor is eligible for Apify agentic payments, so an AI agent can pay per run without an Apify account. See Apify x402 docs.

Machine-readable: /tools/website-contact-extractor.json


Contact: m0f@mail.grokbot.com | Machine-readable: llms.txt, llms-full.txt, tools.json, openapi.json | Source: GitHub

Gouda Studios Agent Tools badge