AngoCasa Property Scraper — Angola Real Estate avatar

AngoCasa Property Scraper — Angola Real Estate

Pricing

from $1.32 / 1,000 property listings

Go to Apify Store
AngoCasa Property Scraper — Angola Real Estate

AngoCasa Property Scraper — Angola Real Estate

Angolan property adverts from AngoCasa: asking price in kwanzas or dollars, typology, floor and plot area, province and Luanda zone, photos, and the advertiser's phone and WhatsApp number on every row. Search 18 provinces and 39 Luanda zones, or open single adverts for the full amenity block and dat

Pricing

from $1.32 / 1,000 property listings

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

AngoCasa Scraper - Angola Real Estate Listings & Prices 🏠

SIÁN Agency Store Idealista Scraper Imovirtual Scraper Property24 Scraper

🎉 The whole Angolan property market in about 210 requests, at $1.50 per thousand adverts, with the advertiser's phone and WhatsApp number already on the search row

Built for property analysts, brokers, lead-generation teams and proptech developers who need Luanda listing data in a spreadsheet rather than in a browser tab.

🔎 What is the AngoCasa Scraper — and when should you use it?

The AngoCasa Scraper turns AngoCasa search results and advert pages into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

Use it when you need: Angolan asking prices in kwanzas or dollars, typology and bedroom count, floor and plot area, province and Luanda zone, photos, the seller's own description, and a direct phone and WhatsApp number for whoever published the advert.

Use something else when: you need a country this portal does not cover. Use Imovirtual Scraper for the Portuguese market itself, rather than the handful of Portuguese adverts AngoCasa carries for the diaspora. Use Property24 Scraper for South Africa, Namibia, Botswana, Zambia, Zimbabwe, Mozambique and Kenya. Use Idealista Scraper for Spain, Portugal and Italy.

🤖 Use with AI agents

Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/angocasa-property-scraper

Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

I want to compare apartment rents across Luanda's zones using the Apify Actor `sian.agency/angocasa-property-scraper`.
Use it when I need: Angolan property adverts with asking price in kwanzas or dollars, typology, bedroom count, area, province and Luanda zone, photos, and the advertiser's phone and WhatsApp number.
Don't use it when: I need a country AngoCasa does not publish — use imovirtual-property-scraper or property24-property-scraper instead.
How to call it: set `operation` to "search" to walk the portal's results grid for a deal type, a property type and a place (50 adverts per request), or to "detail" to open specific adverts I already have the full web address for.
Start with this input:
{
"operation": "search",
"dealType": "arrenda",
"propertyType": "apartamento",
"location": "angola-luanda-talatona",
"maxItems": 200
}
Ask me which zone and whether I mean sale or rent, then run the Actor and summarise the results as a table.

Things you can ask your agent for:

  • "Pull every apartment for rent in Talatona and Ingombota and give me the median asking rent by bedroom count."
  • "Collect all the land plots for sale in Luanda province and list the advertisers with more than five plots, with their WhatsApp numbers."
  • "Open these four advert links and tell me which has the largest plot and what amenities each one claims."

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/angocasa-property-scraper.md.

📋 Overview

Angola's property market is small enough to take whole. AngoCasa publishes roughly 10,500 live adverts, and this Actor reads them 50 per request, so a complete national sweep is about 210 requests. Every row comes back as flat JSON with 49 fields, ready for CSV, Excel or the API.

What you get:

  • 📞 A contact on every search row: the advertiser's name, a phone number and a WhatsApp number, printed in the results grid rather than hidden behind a click. You do not need the detail operation to build a callable list.
  • 🇦🇴 The whole country, by name: Angola as a whole, any of its 18 provinces, or any of the 39 named Luanda zones. Talatona carries about 2,650 adverts, Benfica 1,400, Ingombota 1,050, Camama 650, Alvalade and Maianga 500 each, Morro Bento 400.
  • 💱 Kwanzas and dollars, both labelled: the asking price arrives with the currency the seller quoted. A dollar-priced advert also carries the portal's kwanza conversion in its own field, so an AOA column stays an AOA column.
  • 💰 $1.50 per thousand adverts on Property Search, charged per advert returned and never for adverts that fail.
  • 🌍 Portuguese in, English out: deal type, property type and condition are translated, with the Portuguese original kept beside each one. The seller's own words are returned untouched.
  • 🔓 Nothing to configure: no API key, no login, no proxy setup, no browser engine.

✨ Features

  • 🔍 Property Search: walk the portal's results grid by deal type, property type and place, 50 adverts per request.
  • 📄 Property Detail: open specific adverts for the amenity checklists, every photo at full size, the publication and update dates and the advertiser's profile.
  • 📍 39 named Luanda zones: Talatona, Ingombota, Benfica, Camama, Kilamba, Maianga, Alvalade, Morro Bento, Viana and the rest, plus all 18 provinces.
  • 🏘️ 14 property types: apartments, villas, land plots, offices, shops, warehouses, new-build developments, guest houses, hotels, builders' yards, restaurants, farms, rooms and suites.
  • 🤝 Sale and rent in one schema: every row is labelled either way and carries the same fields, so rents and asking prices sit in one table.
  • 🧹 De-duplicated by advert ID: a 15-page drain returned 701 adverts with no repeats, and repeated links in your own input are dropped before anything is charged.
  • 🖼️ Photos and thumbnails: the cover image on search rows, the complete image array and a photo count on detail rows.
  • Verified-agency flag: detail rows mark the advertisers the portal itself has certified, alongside their account type and registration date.
  • 🌐 Also Portugal and Namibia: the portal's diaspora stock is selectable from the same place list.
  • 🧾 Run report: what was collected, what failed and what it cost is saved to the key-value store.

🎬 Quick Start

Pick sale or rent, pick a property type, pick a place, press Start. The run pages through the results grid until it reaches your maximum or the adverts run out. Nothing else on the form narrows the set, because nothing else is a filter the portal honours.

curl -X POST "https://api.apify.com/v2/acts/sian.agency~angocasa-property-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"operation":"search","dealType":"venda","propertyType":"apartamento","location":"angola-luanda-talatona","maxItems":200}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose the operation

Leave What to do on Property Search to sweep a slice of the portal. Switch it to Property Detail when you already hold advert links and want the amenity block, the full photo set and the dates.

Step 2: Pick the slice

Set For sale or for rent, Property type and Where. Luanda is the default because that is where roughly 10,250 of the portal's 10,500 adverts sit.

Step 3: Set a maximum and run

How many adverts defaults to 100, which is two requests. Raise it past the slice's own size to drain it: Talatona is about 2,650 adverts, Luanda province about 10,250, all of Angola about 10,350.

That's it! Within a minute or two, you'll have:

  • A dataset of adverts with asking prices, typology, area and location
  • A phone number and a WhatsApp number on every search row
  • A CSV, Excel or JSON export, or an API endpoint your own code can read

📥 Input Configuration

FieldTypeRequiredDescription
operationstringNosearch (Property Search) or detail (Property Detail). Default search.
dealTypestringNolistar-todos for both, venda for sale, arrenda for rent. Default listar-todos.
propertyTypestringNoall, or one of 14 types: apartamento, vivenda, terreno, escritorio, loja, armazem, empreendimento, guest-house, hotel, estaleiro, restaurante, quinta, quarto-suite, outro.
locationstringNoangola for the whole country, a province such as angola-benguela, a Luanda zone such as angola-luanda-talatona, or portugal / namibia. Default angola-luanda.
maxItemsintegerNoStop once this many adverts have been returned. Default 100, maximum 20,000.
propertyUrlstringNoProperty Detail: the full web address of one advert, copied from your browser.
propertyUrlsarrayNoProperty Detail: several full advert addresses, one per line. Duplicates are removed before anything is charged.

Example - apartments for rent in Talatona:

{
"operation": "search",
"dealType": "arrenda",
"propertyType": "apartamento",
"location": "angola-luanda-talatona",
"maxItems": 500
}

Example - every land plot for sale in the country:

{
"operation": "search",
"dealType": "venda",
"propertyType": "terreno",
"location": "angola",
"maxItems": 2000
}

Example - open specific adverts:

{
"operation": "detail",
"propertyUrls": [
"https://www.angocasa.com/apartamento/t3/luanda/kilamba/vender-apartamento-t3-na-urbanizacao-kk5000/0203827/"
]
}

📤 Output

Every advert is one flat row with 49 fields. The most-used ones:

FieldTypeDescription
listingIdstringAngoCasa advert ID, zero-padded exactly as the site prints it
propertyUrlstringLink to the advert
propertyTitlestringAdvert headline
dealType / dealTypeOriginalstringSale or rent, in English and in the portal's Portuguese
price / currencynumber / stringAsking price as advertised, and whether it was quoted in AOA or USD
priceAoanumberThe kwanza figure, including the conversion the portal prints beside a dollar price
propertyType / propertyTypeOriginalstringCategory in English and in Portuguese
typology / bedroomsstring / integerT3, V4 and the like, plus the bedroom count read from it
bathroomsintegerBathroom count (Property Detail)
usableAreaSqm / landAreaSqmnumberFloor area and plot area in m²
condition / isFurnished / yearBuiltstring / boolean / integerState of repair, furnishing and construction year (Property Detail)
interiorFeatures / exteriorFeatures / otherFeaturesarrayThe advert's amenity checklists (Property Detail)
country / province / locality / landmarkstringWritten location as the portal files it
provinceSlug / localitySlugstringMachine-readable location keys, on every row
descriptionText / isDescriptionTruncatedstring / booleanThe seller's text, and whether it is the grid teaser or the full version
advertiserName / advertiserType / isVerifiedAgencystring / string / booleanWho published it, their account type and whether the portal has certified them
advertiserProfileUrl / advertiserSince / advertiserLocationstringTheir profile page, registration date and base (Property Detail)
phone / whatsappstringContact numbers, on search rows as well as detail rows
thumbnail / photos / photoCountstring / array / integerCover image on every row, the full image array on detail rows
isFeaturedbooleanWhether the portal is promoting the advert
listedAt / updatedAtstringPublication and update dates (Property Detail)
searchedLocation / resultPagestring / integerWhich slice and which page the row came from
status / errorMessagestringsuccess on a data row, or the reason an item could not be read

Example row (values illustrative):

{
"listingId": "0203827",
"propertyUrl": "https://www.angocasa.com/apartamento/t3/luanda/kilamba/vender-apartamento-t3-na-urbanizacao-kk5000/0203827/",
"propertyTitle": "Vender Apartamento T3 na Urbanização KK5000",
"dealType": "For sale",
"dealTypeOriginal": "Vender",
"price": 53000000,
"currency": "AOA",
"priceAoa": 53000000,
"propertyType": "Apartment",
"propertyTypeOriginal": "apartamento",
"typology": "T3",
"bedrooms": 3,
"bathrooms": 2,
"usableAreaSqm": 120,
"condition": "Used",
"isFurnished": false,
"interiorFeatures": ["Cozinha equipada", "Ar condicionado"],
"country": "Angola",
"province": "Luanda",
"locality": "Kilamba",
"provinceSlug": "luanda",
"localitySlug": "kilamba",
"descriptionText": "Apartamento T3 na centralidade do Kilamba...",
"advertiserName": "Imobiliária Exemplo",
"advertiserType": "Agência",
"isVerifiedAgency": true,
"phone": "244923000000",
"whatsapp": "244923000000",
"photoCount": 14,
"photos": ["https://www.angocasa.com/.../1.jpg", "https://www.angocasa.com/.../2.jpg"],
"listedAt": "2026-08-30",
"updatedAt": "2026-09-05",
"status": "success",
"_fetchedAt": "2026-09-13T10:22:41.000Z"
}

💼 Use Cases & Examples

1. Price the Luanda market by zone

Property analysts measuring a city where no public sold-price register exists.

Input: a Luanda zone, a deal type and a property type Output: asking price, typology, bedroom count and area, row by row Use: compare a two-bedroom rent in Ingombota against the same thing in Camama without hand-sorting. Sale and rent adverts share one schema, so a yield calculation needs no mapping step.

2. Build a contactable agency list

Lead-generation teams and brokers who need to reach whoever is actually transacting.

Input: a zone, with the property type left on All types Output: advertiser name, phone number and WhatsApp number on every search row Use: sweep a zone, group by advertiser, and you have the market's active sellers and a way to call them. You never open an advert page, so you never pay the detail charge.

3. Watch new stock arrive

Portals and market researchers tracking how long inventory sits.

Input: the same slice on a daily or weekly schedule Output: advert IDs to diff, plus publication and update dates from the detail operation Use: separate genuinely new adverts from re-listings, and measure absorption in a market with no transaction record to lean on.

4. Size the new-build pipeline

Developers and land buyers watching where new supply lands.

Input: the new-build development type paired with All of Angola Output: every project the portal lists, with the ones it has certified flagged Use: open the interesting ones for the amenity block and the full photo set, then rank developers by how much stock they are advertising.

5. Research a diaspora purchase

Angolan buyers abroad, and the agents who serve them.

Input: the same run shape against Angola, Portugal or Namibia Output: prices in whichever currency the seller quoted, with a kwanza conversion where the advert is priced in dollars Use: put Luanda and Lisbon stock side by side in one table, in one currency.

6. Feed a property portal or CRM

Proptech teams loading a listings table on a schedule.

Input: a nightly run over the slices you care about Output: numeric prices and areas, arrays for the amenity checklists, ISO dates and absolute photo URLs Use: load it straight in. A complete refresh of the portal is about 210 requests, so the nightly job can take everything instead of a sample.

7. Comparables for valuation and lending

Appraisers and mortgage teams assembling an evidence pack.

Input: a zone and a property type, then the detail operation on the closest matches Output: price, floor and plot area, condition, furnishing, amenities and photos Use: an appraisal file backed by live asking prices rather than by anecdote.


🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/angocasa-property-scraper').call({
operation: 'search',
dealType: 'arrenda',
propertyType: 'apartamento',
location: 'angola-luanda-talatona',
maxItems: 200
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/angocasa-property-scraper').call(
run_input={
'operation': 'search',
'dealType': 'venda',
'propertyType': 'terreno',
'location': 'angola',
'maxItems': 1000,
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['listingId'], item['price'], item['currency'], item['localitySlug'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~angocasa-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"search","dealType":"venda","propertyType":"vivenda","location":"angola-luanda-benfica_inclui_lar_do_patriota_","maxItems":300}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: a daily schedule, or a webhook from your own app
  2. HTTP Request: start the Actor with your input and wait for the run to finish
  3. Process: read the dataset and filter on price, bedrooms, usableAreaSqm or localitySlug
  4. Action: append to Google Sheets, write to Postgres or Airtable, or push new advertisers into your CRM

📊 Performance & Pricing

Free plan

  • 25 adverts per run, with every field, every place and both operations
  • No credit card, no API key, no setup
  • Enough to check the fields and the coverage before you commit
  • No per-run cap, up to 20,000 adverts in a single run
  • 50 adverts per request, so a 1,000-advert sweep is 20 requests
  • Charged per advert returned, never for adverts that fail
EventPriceWhat it covers
Property Search$0.0015 per advertEach advert returned by a results page, with its contact numbers
Property Detail$0.0045 per advertEach advert opened on its own page for amenities, photos and dates
Actor start$0.005 per runOne charge when the run begins

$1.50 per thousand adverts on Property Search, contact numbers included. The other AngoCasa Actor on the Store lists at $0.01667 per result, about eleven times that.

🔗 View current pricing


❓ Frequently Asked Questions

Q: Do I need an API key, a login or a proxy? A: No. Pick a place and press Start.

Q: How many adverts are there in total? A: About 10,500 across the whole portal, of which roughly 10,250 sit in Luanda province. That is the real size of the Angolan online property market. At 50 adverts a request, taking all of it is about 210 requests.

Q: Why is there no price, bedroom or sort filter? A: Because the portal's own search does not have one. Its result pages narrow by deal type, property type and place, and nothing else. A price or typology token in the address is ignored and the unfiltered list comes back, so shipping such a filter would quietly bill you for a full sweep. Price, typology and bedroom count arrive on every row instead, with area wherever the advert publishes it, so you can filter in your own tool afterwards.

Q: Are prices in kwanzas or dollars? A: Whichever the seller quoted. Most adverts are in kwanzas; higher-end ones are often quoted in US dollars, and the portal prints a kwanza conversion beside them that arrives in its own priceAoa field.

Q: Do I get the seller's phone number? A: Yes, on every row, from the search operation alone. A landline or mobile number and a WhatsApp number both come back. The detail operation is not needed for contacts.

Q: Can I pass just the advert number instead of the full link? A: No, and that is the site rather than the Actor. AngoCasa has no page that an advert ID alone opens: an address only resolves when it carries the property type, typology, province and locality too. Copy the address from your browser and it works.

Q: What does Property Detail add that Property Search does not have? A: The seller's complete text instead of the grid teaser, the interior, exterior and extras checklists, and every photo at full size. It also adds floor and plot area, condition, furnishing, bathroom count, the publication and update dates, and the advertiser's profile link, account type and registration date.

Q: Can I search by neighbourhood? A: Yes, for Luanda: 39 named zones, among them Talatona, Ingombota, Benfica, Camama, Kilamba, Maianga, Alvalade, Morro Bento and Viana. The other 17 provinces are selectable at province level, which is how the portal itself indexes them.

Q: Why are some provinces empty? A: Because they have no adverts today. Bié, Cuando Cubango, Cunene, Lunda Sul and Moxico each return zero, and several others hold only a handful. They stay in the list because they are real places that can fill up, and a run against an empty one finishes cleanly rather than erroring.

Q: Does a long sweep return duplicates? A: No. A full 15-page drain returned 701 adverts with no repeats. Advert IDs are also de-duplicated within a run before anything is charged.

Q: Is the data in Portuguese? A: The site is Portuguese and the seller's own words come back unchanged. The structured fields are translated: deal type, property type and condition each arrive in English with the Portuguese original kept alongside.

Q: What output formats are available? A: JSON, CSV, Excel and XML, exported from the dataset or read through the API.

Q: How many runs can I start? A: Paid Apify plans have no limit. Free plans get a daily allowance of 10 unbilled runs and 30 runs in total, which resets at 00:00 UTC.


🐛 Troubleshooting

The run returned far more adverts than the zone should hold

  • How many adverts was probably set high while the place was left on All of Angola. Pick the province or zone you mean, and set a maximum you are happy to pay for.

The search matched nothing

  • The run finishes with a message saying so and charges for no adverts. It never widens the search to fill the gap. Set Property type to All types, or move up from a Luanda zone to the whole province.

A detail address was skipped

  • Property Detail needs the advert's full web address as your browser shows it, ending in the advert number. An advert number on its own, or a link to a results page, cannot be opened.

The same query returned the adverts in a different order

  • The portal's result order is not stable between requests, and it offers no sort. Pagination is sound and IDs are de-duplicated, so a full sweep is complete either way. Sort in your own tool once the data has landed.

The Actor stopped at 25 adverts

  • That is the free-plan cap for a single run. Adding credits or a payment method in Apify Console lifts it.

A page came back empty or slow

  • The site is occasionally unavailable for a few minutes. Re-run, and the request will go through.

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

AngoCasa is a trademark of its owner. This Actor is not affiliated with, endorsed by or sponsored by AngoCasa, and reads only pages the site publishes publicly.


🤝 Support

Join our active support community


Built by SIÁN Agency | More Tools