apyhub
DATA EXTRACTION · MARKETING

Extract Website Contact Info API

What it does

Contact Signals Crawl scans a website and extracts contact and social data from the pages it visits. Send a url, optionally set max_pages up to 25, and choose whether to include_entities.

Use it when you need to enrich a lead list, build a directory, or verify the public contact details on a company site. The crawl starts from the URL you provide and can follow through to a final destination URL. The response includes the original url, final_url, pages_scanned, and any discovered emails, phones, addresses, business_names, named_entities, and social_profiles.

The extracted social profiles include both the profile url and detected network. Named entities are returned as objects with text and label, which is useful when you want to feed company, person, or location mentions into downstream enrichment or search workflows.

Contact Signals Crawl is a fit for lead generation, sales ops, and data enrichment pipelines where you need structured contact signals from public websites instead of scraping raw HTML yourself.

POST
Crawl a website and extract contact and social signals
http://localhost:8080/dosvak/crawl-contact-signals

QUICKSTART

GUIDE

Quickstart

Send a website URL to crawl for contact signals like emails, phones, addresses, and social profiles.

curl -X POST "http://localhost:8080/dosvak/crawl-contact-signals" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

What you'll get back

Returns a JSON object with contact-signal fields such as url, emails, phones, addresses, final_url, pages_scanned, business_names, named_entities, and social_profiles. The array fields contain strings or objects, depending on the field.

{
  "url": "https://example.com",
  "emails": ["[email protected]"],
  "phones": ["+1 212-555-0100"],
  "addresses": ["123 Main St, New York, NY 10001"]
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*

About this endpoint

What it does

Crawls a website starting from the submitted url and extracts contact and social signals from the pages it scans. The request lets you limit how many pages are scanned and choose whether entity extraction is included.

Request Body

ParameterTypeMandatoryDescription
urlStringYesThe website URL to crawl.
max_pagesIntegerNoMaximum number of pages to scan. Default: 5. Minimum: 1. Maximum: 25.
include_entitiesBooleanNoWhether to extract named entities. Default: true.

Response

Returns a JSON object with url and final_url string fields, emails, phones, addresses, business_names, named_entities, and social_profiles array fields, and a pages_scanned integer field. These fields contain the crawled source URL, the final resolved URL, extracted contact data, extracted entity data, social profile data, and the number of pages scanned.

ParameterTypeMandatoryDescription
urlStringNoThe submitted source URL.
emailsString ArrayNoEmail addresses found during crawling.
phonesString ArrayNoPhone numbers found during crawling.
addressesString ArrayNoAddresses found during crawling.
final_urlStringNoThe final URL reached after following redirects, if applicable.
pages_scannedIntegerNoNumber of pages scanned.
business_namesString ArrayNoBusiness names found during crawling.
named_entitiesObject ArrayNoNamed entities extracted from the crawled content. Each item contains text and label.
social_profilesObject ArrayNoSocial profiles found during crawling. Each item contains url and network.

Body

Name
Type
Description
bodyREQUIRED
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.