Collect contact details from place websites
The second step after /place-search: read businesses’ own websites for email addresses, phone numbers and social profiles. Pass places (any place reference, such as the placeId values from a search) and/or websites (the website values from a search, which is cheaper because no lookup is needed), at least 1 and at most 20 combined. Items come back in input order, places first, each with a status. Billing: pagesScraped is 1 per website that answered (any HTTP response, including a 403 or 404; timeouts, unreachable sites and social-profile URLs are free) plus 1 per place whose website had to be looked up. A place without a website is free, lookup included, and a website shared by several items is billed once. Twenty items can take up to about 100 seconds. A malformed place is a 400 naming its index, e.g. places[1].
/place-contacts Places https://api.fetchlayer.dev/google-maps/place-contacts Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
places string[] optional Places to collect contacts for: ChIJ place IDs, hex feature IDs, Google Maps place URLs, CID URLs or short links. Required unless websites is given; at most 20 combined with websites.
websites string[] optional Business websites to read directly, such as the website values from /place-search. No lookup needed, so each costs only the website read.
format string optional json or markdown. (default: json)
Response Fields
place-contacts
Collect contact details from place websites
entityType string Always gmaps-place-contacts.
items object[] One item per input, in input order: places first, then websites.
items[].input object What was asked for: type (place or website) and value.
items[].place object | null For a place input, the place that was looked up: placeId, name and website. null for a website input.
items[].website string | null The website that was read.
items[].contacts object | null emails[], phones[], socials (facebook, instagram, linkedin, x, youtube, tiktok, pinterest, each a list) and sourcePages[], the pages they were found on. null when nothing could be read.
items[].status string found, none (the site was read and had no contacts), no_website, blocked, unreachable, timeout or not_found. When website is null, blocked, unreachable and timeout refer to the place lookup.
itemCount number Items in this response.
websitesFetched number Websites that answered.
placeLookups number Places whose website had to be looked up first.
pagesScraped number websitesFetched plus placeLookups. Each counts as one request against your plan.
Request
curl -X POST "https://api.fetchlayer.dev/google-maps/place-contacts" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"places":["ChIJ4YBYuiB5bIcR4CF00Xm9cC0"],"websites":["http://www.scr3amnsugar.com/"]}'Response
{
"entityType": "gmaps-place-contacts",
"itemCount": 2,
"items": [
{
"input": {
"type": "place",
"value": "ChIJ4YBYuiB5bIcR4CF00Xm9cC0"
},
"place": {
"placeId": "ChIJ4YBYuiB5bIcR4CF00Xm9cC0",
"name": "Little Owl Coffee - Tremont",
"website": "http://littleowlcoffee.com/"
},
"website": "http://littleowlcoffee.com/",
"contacts": {
"emails": [],
"phones": [],
"socials": {
"facebook": [],
"instagram": [
"https://instagram.com/littleowlcoffee"
],
"linkedin": [],
"x": [],
"youtube": [],
"tiktok": [],
"pinterest": []
},
"sourcePages": [
"https://www.littleowlcoffee.com/",
"https://www.littleowlcoffee.com/contact"
]
},
"status": "found"
},
{
"input": {
"type": "website",
"value": "http://www.scr3amnsugar.com/"
},
"place": null,
"website": "http://www.scr3amnsugar.com/",
"contacts": {
"emails": [],
"phones": [],
"socials": {
"facebook": [
"https://facebook.com/scr3amnsugar"
],
"instagram": [
"https://instagram.com/scr3amnsugar"
],
"linkedin": [],
"x": [],
"youtube": [],
"tiktok": [
"https://tiktok.com/@scr3amnsugar"
],
"pinterest": []
},
"sourcePages": [
"https://www.scr3amnsugar.com/"
]
},
"status": "found"
}
],
"websitesFetched": 2,
"placeLookups": 1,
"pagesScraped": 3,
"scrapedAt": "2026-09-15T21:31:02.121Z"
}