Hall Portugal Scraper - Real Estate Listings avatar

Hall Portugal Scraper - Real Estate Listings

Pricing

from $1.20 / 1,000 result scrapeds

Go to Apify Store
Hall Portugal Scraper - Real Estate Listings

Hall Portugal Scraper - Real Estate Listings

Scrape property listings from Hall Rede Imobiliária (hall.pt), Portugal. Price, typology, useful, gross and land area, photos, energy certificate, coordinates, district, municipality, parish and agent details. Sale, rent and business transfer. No login.

Pricing

from $1.20 / 1,000 result scrapeds

Rating

5.0

(1)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

4 days ago

Last modified

Categories

Features

Limited permissions

Share

Hall Portugal Scraper

Scrape every property listing from Hall Rede Imobiliária (hall.pt), a Portuguese real estate agency network with offices in Setúbal, Barreiro, Amora, Beja, Évora and Montemor-o-Novo.

Why use this actor?

Hall publishes its own stock on hall.pt, and part of it never reaches the big portals. If you build a real estate CRM, track agency stock in the Setúbal peninsula and the Alentejo, or compare asking prices per parish, this actor gives you every listing as structured rows: price, typology, the three area types, photos, energy certificate, coordinates and the agent who holds the mandate.

How to scrape Hall data

  1. Leave every filter empty to get the full hall.pt catalogue (a few hundred listings, sale, rent and business transfer).
  2. Or narrow it down with Transaction type (sale, rent, transfer), Property type, District, Municipality or Parish. Accents are optional: Setubal and Setúbal both work.
  3. Optionally add Typology / bedrooms, Minimum price and Maximum price.
  4. Set Max items and run. The default of 1000 covers the whole catalogue.
  5. Download the dataset as JSON, CSV or Excel, or read it through the Apify API.

The actor uses the site's own search, so the filters behave like the filters on hall.pt. Every result is then checked against your filters again before it is saved. If you ask for a district or municipality where hall.pt has no listings, the run stops and lists the places that do have listings.

No login, cookies or browser are needed.

Input

FieldTypeRequiredDescription
transactionTypesArrayNosale (Compra), rent (Arrendamento), transfer (Trespasse). Empty = all.
propertyTypesArrayNoapartment, house, house-floor, farm, garage, building, office, warehouse, shop, business, land, multipurpose-space, laundry, restaurant. Empty = all.
districtStringNoDistrito, e.g. Setúbal, Beja, Évora, Lisboa
municipalityStringNoConcelho, e.g. Palmela, Barreiro, Montijo
parishStringNoFreguesia, e.g. Pinhal Novo
bedroomsArray of integersNoe.g. [2, 3] for T2 and T3. 9 means T9 or more.
minPrice / maxPriceIntegerNoPrice range in EUR (monthly rent for rentals). Listings without a published price are kept.
sortByStringNonewest (default), price_asc, price_desc
startUrlsArrayNohall.pt search URLs or listing URLs. Max 50.
maxItemsIntegerNoMaximum listings to save. Default 1000, hard cap 10,000.
proxyConfigurationObjectNoApify automatic proxy is enough.

Every filter is off by default. An empty filter never narrows the results.

Output

Each listing is one row. Fields the site does not show for a listing are null, never invented.

FieldTypeExample
listingIdInteger1291840
referenceString"012.012.206"
titleString"Arrendamento Apartamento T3 - Beja, Cidade"
urlStringListing URL on hall.pt
transactionTypeString"sale", "rent" or "transfer"
transactionTypeLocalString"Arrendamento"
propertyTypeString"apartment"
propertyTypeLocalString"Apartamento"
typologyString"T3"
bedrooms / bathroomsNumber3 / 2
priceNumber or null900
previousPriceNumber or nullPrice before the latest reduction
priceOnRequestBooleantrue when no price is published
currencyString or null"EUR", always next to price
areaM2NumberUseful area, else gross, else land
livingAreaM2NumberÁrea útil
grossAreaM2NumberÁrea bruta
landAreaM2NumberÁrea do terreno
footprintAreaM2NumberÁrea de implantação
conditionString"Renovado"
constructionYearInteger1975
energyLabelString"C"
usageLicenseStringLicença de utilização, when shown
condominiumFeeMonthlyNumberCondomínio mensal, when shown
descriptionStringFull description with line breaks
district / municipality / parishString"Setúbal" / "Palmela" / "Pinhal Novo"
locationLabelStringLocation line under the title (often includes the zone)
locationFullString"Pinhal Novo, Palmela, Setúbal"
latitude / longitudeNumber or null38.63512, -8.91523
imageUrl / imageUrls / imageCountString / Array / IntegerFull-size photos
hasGeneratedImagesBooleanThe site marks a photo as a generated image
virtualTourUrl / photos360UrlsString / ArrayWhen present
divisionsArrayRooms with area and finishes (Divisões)
characteristicsObjectEvery label and value from the Características block
agentName / agencyNameStringAgent and office
agencyLicenseAmiStringAMI licence number
agencyEmail / agencyPhone / agencyAddressStringOffice contact
scrapedAtStringISO timestamp

Example output

{
"listingId": 1294935,
"reference": "007.754.012",
"title": "T2 Pinhal Novo",
"url": "https://www.hall.pt/pt-PT/Imovel/Compra/Apartamento/Setubal/Palmela/Pinhal-Novo/1294935",
"transactionType": "sale",
"transactionTypeLocal": "Compra",
"propertyType": "apartment",
"propertyTypeLocal": "Apartamento",
"typology": "T2",
"bedrooms": 2,
"bathrooms": 1,
"price": null,
"previousPrice": null,
"priceOnRequest": true,
"currency": null,
"areaM2": 85,
"livingAreaM2": 85,
"grossAreaM2": 88,
"landAreaM2": null,
"footprintAreaM2": null,
"constructionYear": 1975,
"energyLabel": "D",
"country": "PT",
"district": "Setúbal",
"municipality": "Palmela",
"parish": "Pinhal Novo",
"locationLabel": "Palmela, Pinhal Novo",
"locationFull": "Pinhal Novo, Palmela, Setúbal",
"latitude": null,
"longitude": null,
"imageUrl": "https://imgs.centralimo.pt/28594/properties/66374052-0b88-47a0-8d7e-cf4d2dfc081a.jpg",
"imageCount": 1,
"agentName": "Odete Marques",
"agencyName": "Horizonte Inesgotável",
"agencyLicenseAmi": "19280",
"agencyEmail": "odete.marques@hall.pt",
"agencyPhone": "+351 963 374 001",
"scrapedAt": "2026-11-08T03:35:31.971Z"
}

Cost estimate

The actor charges $0.002 per saved listing plus $0.005 per run start (lower per-listing prices on higher Apify plans). The full hall.pt catalogue of about 320 listings costs about $0.65 and finishes in about 4 minutes. A run of 20 listings costs about $0.045.

The run's usage cost only settles once the run reports SUCCEEDED. A dataset read during a run, or from a run that later failed, shows a cost far below the real total.

What hall.pt does not publish

  • Listing date and last-update date. hall.pt does not show them on any page, so the dataset has no date fields. Use scrapedAt and compare runs to see new and removed listings.
  • Property street address. Only the office address is shown.
  • Coordinates for listings where the agent hides the map (roughly 4 in 10). latitude and longitude are null there.
  • Price for listings marked "Preço sob consulta" or left blank (roughly 1 in 8). price is null and priceOnRequest is true.

Typology

The typology comes from the listing title (Apartamento T3). When the title has none and the listing is a home (apartment, house, house floor or farm), the actor uses the Portuguese convention T + number of bedrooms. Land, shops, garages and other non-residential listings have no typology.

Limitations

  • hall.pt shows 18 listings per results page and one detail page per listing, so a run makes one request per listing. The whole catalogue still runs in minutes.
  • Location filters only accept places where hall.pt currently has listings. The run fails with the list of available places otherwise.
  • Data is taken from the public website and can change without notice.

Maintained by Studio Amba

We run 700+ scrapers for European websites, and the priority is keeping every one of them working. Automated runs test this actor against the live site and verify the output is complete. When the website changes, the scraper usually gets repaired the same day, without you having to report anything. Questions and issues go straight to the people who built it, and most get an answer the same day.

If this actor works for you, a review on its Store page helps other people find it.