Páginas Amarelas / pai.pt Scraper avatar

Páginas Amarelas / pai.pt Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Páginas Amarelas / pai.pt Scraper

Páginas Amarelas / pai.pt Scraper

Scrape pai.pt (Páginas Amarelas Portugal) into structured business rows: name, phone, email when listed, website, address, hours. Keyword plus city, nationwide PT, or a search/profile URL. JSON or CSV out. $5 per 1,000 listings.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

17

Total users

17

Monthly active users

4 days ago

Last modified

Categories

Share

Scrape pai.pt (Páginas Amarelas Portugal) into one row per business: name, phone, email when listed, website, address, opening hours.

Works from a keyword plus optional city, a nationwide term, or a pasted /searches or /paginas/{id} URL. Search cards and profile JSON-LD answer without Apify Proxy.

Pricing: $0.005 per listing (pushData). Extra contact-phone $0.002 and contact-email $0.05 when those fields are present.

Why use this scraper?

  • Phone, address, category, and hours sit on the search card.
  • Profile pages add email (mailto), coordinates, and the business website when Páginas Amarelas publishes them.
  • Nationwide query or a city resolved through /location_suggestions.
  • Optional harvest of the business site when the directory has no inbox.

Overview

Built for lead lists and local research on Portuguese companies. Each dataset item is one listing from pai.pt. paginasamarelas.pt redirects to the same host and is accepted as a start URL.

Supported inputs

InputWhat it does
searchTermsWhat you type in Páginas Amarelas, e.g. restaurante, canalizador
locationsCity resolved via location suggestions. Empty = nationwide
startUrlshttps://www.pai.pt/searches?... or /paginas/{id}-{slug}
maxItemsStop after N unique listings (free plan cap 50)
harvestWebsiteEmailFetch the business site if pai.pt has no inbox
proxyLeave off

Unsupported: Páginas Amarelas Spain (paginasamarillas.es — that is a different actor), Ireland Golden Pages, sales-only /empresas pages.

Use cases

WhoWhy
Sales / agenciesPortuguese phones and emails from a category
ResearchersHours, city, and postcode coverage
SEO / mapsWebsite + coordinates per listing

How it works

  1. Build https://www.pai.pt/searches?search[query]={term} (city + location_id when set). Page N is &page=N.
  2. Parse .card.card--result for name, phone, address, hours (data-schedule).
  3. Open /paginas/{id}-{slug} for LocalBusiness JSON-LD, mailto, and website.
  4. Charge contact-phone / contact-email after pushData.
  5. If still no email and harvest is on, fetch the business homepage/contact page.

Input configuration

FieldTypeRequiredNotes
searchTermsstring[]one of terms/URLse.g. restaurante
locationsstring[]noe.g. Lisboa
startUrlsurl[]no/searches or /paginas/
maxItemsintegernodefault 50
maxPagesintegernodefault 20
scrapeDetailsbooleannodefault true
harvestWebsiteEmailbooleannodefault true
maxConcurrencyintegernodefault 5
proxyproxynodefault off

Example input

{
"searchTerms": ["restaurante"],
"locations": ["Lisboa"],
"maxItems": 10,
"harvestWebsiteEmail": false,
"proxy": { "useApifyProxy": false }
}

Output overview

One JSON object per business. Search cards already carry phone, address, category, and hours. Profile pages add email and coordinates when present.

Output samples

restaurante in Lisboa, profile merge (fields trimmed):

{
"listingId": "428034",
"name": "Restaurante Sashimi",
"phone": "965557446",
"email": "restsashimi@gmail.com",
"street": "Rua Teresa Jesus Pereira 35B",
"postalCode": "2560-364",
"city": "TORRES VEDRAS",
"country": "PT",
"hours": ["MO 12:00-15:00", "MO 19:00-23:00"],
"profileUrl": "https://www.pai.pt/paginas/428034-restaurante-sashimi"
}

Key output fields

FieldNotes
listingIdNumeric pai.pt id
phone / phonesFrom tel: and JSON-LD
emailProfile mailto, then optional website harvest
websiteIndependent site (visit-webpage), not pai.pt
hoursMO 12:00-15:00 lines from data-schedule
latitude / longitudeProfile geo

FAQ

Do I need a proxy? Not on current HTML. Turn one on only if a run comes back empty or challenged.

Does a city filter work? Yes. The actor hits /location_suggestions and prefers the municipality data-id.

Why is email missing? Many profiles only publish a phone. Harvest the business website, or accept phone-only rows.

Support

Questions and issues on the actor page.

Disclaimer

Use this actor in line with Páginas Amarelas terms and applicable law. You are responsible for how you store and contact the people and companies in the dataset.

SEO Keywords

paginas amarelas scraper, pai.pt scraper, portugal yellow pages, páginas amarelas leads, portuguese business emails, lisboa directory scraper