Corotos Property Scraper avatar

Corotos Property Scraper

Pricing

from $1.31 / 1,000 property listings

Go to Apify Store
Corotos Property Scraper

Corotos Property Scraper

Dominican Republic property adverts from Corotos: asking price in pesos or dollars, bedrooms, bathrooms, built area, province and town, photos and the advertiser behind each advert. Search 30 provinces and 72 towns across houses, apartments, penthouses, land, holiday homes, offices and shared rooms,

Pricing

from $1.31 / 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

Corotos Scraper - Dominican Republic Property Listings & Prices 🏝️

SIÁN Agency Store Encuentra24 Scraper Fincaraiz Scraper Inmuebles24 Scraper

🎉 All 32,090 live Dominican property adverts — 30 provinces, 72 towns, one run

For investors, agencies and analysts who need the Dominican market as rows, not browser tabs

🔎 What is the Corotos Dominican Republic Property Scraper — and when should you use it?

The Corotos Dominican Republic Property Scraper turns public Corotos property adverts from anywhere in the Dominican Republic 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: Dominican sale and rental adverts as rows. Each carries the asking price in the currency the advertiser quoted — pesos or US dollars, both common on one board. A peso-normalised price rides alongside it, so the two compare on one scale. Bedrooms, bathrooms, built area, price per square metre, the province and town, the lead photo and the advertiser's name come through as well. Switch to Property Detail and a row gains the advertiser's own Spanish description, the complete photo set, and the approximate map point with a flag saying how precise it is. It also gains the published date, the sector, half-bathrooms, parking spaces, the furnished and condition values, and the advertiser's shop, account age and verification badge. Coverage is 32,090 live adverts across 30 provinces and 72 towns, every place verified by fetching it.

Use something else when: the property is not in the Dominican Republic. Use Encuentra24 Scraper for the rest of Central America and the Caribbean — Panama, Costa Rica, Nicaragua, Guatemala, Honduras, El Salvador, Puerto Rico and Colombia. Use Fincaraiz Scraper for Colombia, from the country's leading portal, with estrato and the agency behind each advert. Use Inmuebles24 Scraper for Mexico, sale and rental, across every state. This actor covers the property surfaces Corotos publishes: apartments, houses, penthouses, land and plots, holiday homes, commercial offices and premises, shared rooms and the portal's other-property board, each for sale or to rent. It reads what the portal serves to a visitor. Corotos' other verticals — cars, electronics, jobs and household goods — are not part of it. The portal publishes asking prices only, so there is no sold-price history to return, and advertiser phone and WhatsApp numbers are deliberately not extracted because they belong to private individuals.

🤖 Use with AI agents

Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/corotos-com-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 property listings and asking prices from corotos.com.do across the Dominican Republic using the Apify Actor `sian.agency/corotos-com-property-scraper`.
Use it when I need: Dominican sale and rental adverts as rows. Each carries the asking price in the currency the advertiser quoted — pesos or US dollars, both common on one board. A peso-normalised price rides alongside it, so the two compare on one scale. Bedrooms, bathrooms, built area, price per square metre, the province and town, the lead photo and the advertiser's name come through as well. Switch to Property Detail and a row gains the advertiser's own Spanish description, the complete photo set, and the approximate map point with a flag saying how precise it is. It also gains the published date, the sector, half-bathrooms, parking spaces, the furnished and condition values, and the advertiser's shop, account age and verification badge. Coverage is 32,090 live adverts across 30 provinces and 72 towns, every place verified by fetching it.
Don't use it when: the property is not in the Dominican Republic — use encuentra24-property-scraper or fincaraiz-property-scraper or inmuebles24-property-scraper instead.
How to call it: set `dealType` to `sale`, `rent` or `any`, and `propertyType` to apartamentos, casas, penthouses, solares-terrenos, casas-vacacionales, oficinas-comerciales, habitaciones-compartidas, otros-inmuebles or `all`. Narrow the place with `location`, which lists 30 provinces and 72 towns exactly as the portal writes them. `santo-domingo/distrito-nacional` is the deep market at 18,615 adverts, then `santo-domingo/santo-domingo-este`, `santiago` and `la-altagracia/bavaropunta-cana`. A place the portal does not recognise stops the run before anything is fetched, rather than quietly widening to the whole country. `minPrice` and `maxPrice` are in Dominican pesos, and the portal applies them to dollar-priced adverts too, on its own conversion. `minAreaSqm`, `maxAreaSqm`, `minBedrooms`, `minBathrooms` and `condition` narrow further, and `searchText` matches words inside the advert. `advertiser` keeps only registered shops or only verified accounts. `sortBy` decides which adverts a capped run keeps. `maxItems` sets the depth — adverts arrive 24 to a request and the deepest board runs to 1,338 pages. To reach a board the pickers do not cover, paste its Corotos address into `searchUrls` and it is used exactly as written. Switch `operation` to `detail` with `listingUrls` only to open adverts you already hold. That returns the description, photo set, coordinates and advertiser block a search row cannot carry.
Start with this input:
{
"operation": "search",
"dealType": "sale",
"propertyType": "apartamentos",
"location": "santo-domingo/distrito-nacional",
"maxItems": 100
}
Ask me which part of the Dominican Republic to cover, whether they want adverts for sale or to rent, and whether the full advert text, photo set and map point are worth opening each advert separately, then run the Actor and summarise the results as a table.

Things you can ask your agent for:

  • Pull apartments for sale in Distrito Nacional between 5 and 10 million pesos and rank sectors by median price per square metre.
  • Find holiday homes and villas for sale in Bávaro, Punta Cana and Las Terrenas, priced in dollars, with the photo set for each.
  • Give me every off-plan apartment listed nationally, grouped by the developer or agent selling it.

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

📋 Overview

Corotos is where Dominicans actually list property. This actor turns that whole section into a dataset, for investors, agencies, valuers and analysts who need the market as rows.

What you get:

  • Complete coverage: 32,090 live property adverts on 2026-09-13, split 20,833 for sale and 11,257 to rent
  • Reads to the end: a full drain of the apartments-for-sale board returned 11,842 unique adverts against a declared 11,844, with no paging ceiling
  • 🎯 Real geography: 30 provinces and 72 towns, every one of them verified to return its own results
  • 💰 Pay per advert: only adverts actually returned are charged, never errors
  • 💎 Honest filters: the two narrowing controls the portal shows but its server ignores are not offered here, so nothing you pick quietly returns the whole market
  • Both currencies, kept straight: each advert keeps the currency its advertiser quoted, and a peso-normalised price rides alongside it

✨ Features

  • 🏠 Eight property boards: apartments, houses, penthouses, land and plots, holiday homes, offices and commercial premises, shared rooms, other property
  • 📍 102 places: 30 provinces plus 72 towns, each one checked against the national board
  • 💱 Dual currency: prices in Dominican pesos or US dollars exactly as advertised, plus a peso figure for sorting and comparison
  • 📐 Full specs: bedrooms, bathrooms, half-bathrooms, built area, parking, price per square metre
  • 🗺️ Coordinates: latitude and longitude where the advert publishes them, with a flag saying whether the point is exact
  • 📸 Every photo: advert pages carry the whole gallery, ten images on average
  • 👤 Advertiser block: name, type, shop address, account age and verification badge
  • 🏗️ Condition filter: first-owner, resale, new, under construction, off-plan or other
  • 🔎 Free-text search: match words inside the advert, the way the portal's own search box does
  • 📅 Published dates: returned as ISO dates, so they sort and join without guesswork

🎬 Quick Start

Pick a place, pick what you are looking for, press Start. Results land in a dataset you can export as JSON, CSV or Excel. A bare run with no settings reads the newest adverts from the whole country.

curl -X POST "https://api.apify.com/v2/acts/sian.agency~corotos-com-property-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"operation": "search", "dealType": "sale", "propertyType": "apartamentos", "location": "santo-domingo/distrito-nacional", "maxItems": 100}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose where

Pick a province or a town from the place list. Leave it on "All of the Dominican Republic" to read the whole market.

Step 2: Choose what

Set the market to for sale, to rent or both, and pick a property type. Add price, area, bedroom, bathroom, condition or advertiser filters if you want a narrower slice.

Step 3: Set the depth and run

Raise the maximum adverts to read a whole market, or leave it low to sample one. Press Start.

That's it! In a couple of minutes, you'll have:

  • A row per advert with price, rooms, area, place and advertiser
  • A dataset you can export to JSON, CSV or Excel
  • A run report summarising what was collected and what it cost

📥 Input Configuration

FieldTypeRequiredDescription
operationstringNosearch to walk a board, detail to open adverts you already have
dealTypestringNoany, sale or rent
propertyTypestringNoall, apartamentos, casas, penthouses, solares-terrenos, casas-vacacionales, oficinas-comerciales, habitaciones-compartidas, otros-inmuebles
locationstringNoany, a province such as santiago, or a town written province-then-town such as santo-domingo/distrito-nacional
searchTextstringNoWords to match inside the advert
minPriceintegerNoLowest asking price in Dominican pesos, 0 for no bound
maxPriceintegerNoHighest asking price in Dominican pesos, 0 for no bound
minAreaSqmintegerNoSmallest built area in square metres
maxAreaSqmintegerNoLargest built area in square metres
minBedroomsintegerNoFewest bedrooms
minBathroomsintegerNoFewest full bathrooms
conditionstringNoany, Primer Uso, Segundo Uso, Nuevo, En construcción, En planos, Otros
advertiserstringNoanyone, shops or verified
sortBystringNorecent, relevance, price-asc or price-desc
searchUrlsarrayNoCorotos result-page addresses, used exactly as written
listingUrlsarrayNoCorotos advert addresses to open, for detail
maxItemsintegerNoHow many adverts to return before the run stops

Example — apartments for sale in the capital:

{
"operation": "search",
"dealType": "sale",
"propertyType": "apartamentos",
"location": "santo-domingo/distrito-nacional",
"maxItems": 500
}

Example — beachfront holiday homes, dollar range, newest first:

{
"operation": "search",
"dealType": "sale",
"propertyType": "casas-vacacionales",
"location": "la-altagracia/bavaropunta-cana",
"minPrice": 6000000,
"minBedrooms": 2,
"sortBy": "recent",
"maxItems": 300
}

Example — open specific adverts in full:

{
"operation": "detail",
"listingUrls": [
"https://www.corotos.com.do/anuncio/inmuebles-en-venta/apartamentos/apartamento-en-venta-avenida-jacobo-majluta-4ta-con-terraza-kdj6prz"
]
}

📤 Output

Results are saved to the Apify dataset with 45 fields including:

FieldTypeDescription
listingIdnumberThe advert's own number on Corotos
propertyTitlestringAdvert headline
urlstringLink to the advert
pricenumberAsking price, as advertised
currencystringDOP or USD — the currency the advertiser quoted
priceDopnumberThe same price in Dominican pesos, for comparison
pricePerSqmnumberAsking price divided by built area
dealTypestringsale or rent
propertyTypestringApartment, house, penthouse, land and so on
bedroomsnumberBedroom count
bathroomsnumberFull bathroom count
areaSqmnumberBuilt area in square metres
provincestringProvince the advert sits in
townstringTown within that province
sectorstringNeighbourhood, where the advert names one
latitudenumberMap latitude, where published
longitudenumberMap longitude, where published
locationIsExactbooleanWhether that point is exact or approximate
imageUrlsarrayEvery photo on the advert
publishedAtstringPublished date, as YYYY-MM-DD
advertiserNamestringWho placed the advert
advertiserVerifiedbooleanWhether Corotos has verified the account

Example:

{
"listingId": 10321070,
"listingCode": "kdj6prz",
"propertyTitle": "Apartamento en venta la Jacobo Majluta 4ta con terraza",
"url": "https://www.corotos.com.do/anuncio/inmuebles-en-venta/apartamentos/apartamento-en-venta-avenida-jacobo-majluta-4ta-con-terraza-kdj6prz",
"price": 5900000,
"currency": "DOP",
"priceDop": 5900000,
"pricePerSqm": 46456.69,
"dealType": "sale",
"propertyType": "apartamentos",
"bedrooms": 3,
"bathrooms": 2,
"halfBathrooms": 1,
"areaSqm": 127,
"parkingSpaces": 2,
"furnished": "No",
"province": "Santo Domingo",
"town": "Santo Domingo Norte",
"sector": "Mal Nombre",
"latitude": 18.60631944635355,
"longitude": -69.91304341592394,
"locationIsExact": false,
"imageCount": 16,
"publishedAt": "2026-09-12",
"advertiserName": "Alexander Arias",
"advertiserVerified": true,
"status": "success"
}

💼 Use Cases & Examples

1. Price the capital by sector

Valuers and investors who need asking price against built area, sector by sector.

Input: location set to santo-domingo/distrito-nacional, propertyType apartamentos Output: Up to 18,615 adverts across the capital, each with price, area and price per square metre Use: Build a per-sector price map from live asking prices instead of last year's report.

2. Track the Punta Cana second-home market

Agencies and funds watching Caribbean holiday stock.

Input: propertyType casas-vacacionales, location la-altagracia/bavaropunta-cana Output: The 1,331 adverts Bávaro / Punta Cana carries, plus hundreds more in Las Terrenas, Sosúa, Juan Dolio and Bayahibe Use: Follow dollar-priced beachfront supply the international portals only partly index.

3. Find off-plan supply before it lists elsewhere

Developers and analysts who want a pipeline view, not a stock view.

Input: condition set to En planos or En construcción Output: 220 off-plan and 632 under-construction apartment adverts on the for-sale board Use: See which towers are being marketed early, and at what price per square metre.

4. Build a Dominican agency directory

Recruiters, proptech founders and anyone mapping the market's supply side.

Input: advertiser set to shops, a high maxItems Output: Every advert with its agency name, account age and verification badge Use: Rank the country's active property sellers by how much stock each one carries.

5. Monitor a competitor's listings

Agencies watching what a rival adds, withdraws and reprices.

Input: The same filters on a schedule, run weekly Output: A dated dataset per run, keyed on the advert number Use: Diff two runs to see exactly what moved.

6. Feed an AI agent a live property index

Teams building assistants that answer questions about Dominican real estate.

Input: Any board, via the Apify MCP server Output: Typed rows with prices, areas, rooms, coordinates and photos Use: Let an assistant answer from current adverts rather than guessing.

7. Rental yield research

Investors comparing what a flat sells for against what it rents for.

Input: Two runs. Set dealType to sale, then to rent, keeping the same place and type Output: 11,845 sale and 5,484 rental apartment adverts nationally Use: Pair them by sector and size to estimate gross yield.

🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/corotos-com-property-scraper').call({
operation: 'search',
dealType: 'sale',
propertyType: 'apartamentos',
location: 'santo-domingo/distrito-nacional',
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/corotos-com-property-scraper').call(
run_input={
'operation': 'search',
'dealType': 'rent',
'propertyType': 'apartamentos',
'location': 'santiago/santiago-de-los-caballeros',
'maxItems': 200,
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['propertyTitle'], item['price'], item['currency'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~corotos-com-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "search", "dealType": "sale", "propertyType": "casas", "location": "puerto-plata/puerto-plata", "maxItems": 150}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule, weekly or daily
  2. HTTP Request: Call the Actor API with your filters
  3. Process: Diff the new dataset against last run on listingId
  4. Action: Write to a sheet, a database, or a Slack alert for new stock

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 25 adverts per run, every field, same quality
  • No credit card required
  • Enough to check the data before you commit
  • Unlimited adverts per run, to the end of any board
  • Pay per advert returned. Errors are never charged
  • $0.0015 per advert from a search, $0.0045 per advert opened in full, and $0.005 to start a run

💰 Adverts arrive 24 to a request, so a whole province is minutes of work.

🔗 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: Are prices in pesos or dollars? A: Both, and each row says which. Dominican advertisers quote in pesos or US dollars depending on the market. Of 120 adverts sampled, 95 were in dollars. A peso-normalised price ships alongside, so everything sorts on one scale.

Q: Are the map coordinates exact? A: Almost never, and the row says so. Corotos publishes an approximate point for most adverts and an exact one only where the advertiser released it. Of 120 adverts sampled, one was exact. The locationIsExact field carries that flag.

Q: Can I filter by whether a property is furnished? A: Not as a search filter, and the reason is worth knowing. Corotos shows a furnished filter in its own panel, but its server ignores it. Asking for furnished, unfurnished or nonsense all return the identical unfiltered board. Offering it would charge you for the whole market while appearing to narrow it. The furnished value still ships on every detail row, so you can filter after the fact.

Q: How many adverts are there in total? A: 32,090 across the whole property section on 2026-09-13: 20,833 for sale and 11,257 to rent. Apartments alone hold 17,329.

Q: How deep can a single run go? A: To the end of the board. A full drain of the apartments-for-sale board returned 11,842 unique adverts against a declared 11,844, with no paging ceiling.

Q: Do you return advertiser phone numbers? A: No. Phone and WhatsApp numbers belong to private individuals and the portal puts them behind a click. You get the advertiser's name, type, shop address, account age and verification badge instead.

Q: What output formats are available? A: JSON, CSV and Excel — export directly from the Apify dataset.

Q: Does the search operation return descriptions and every photo? A: No. A search row carries the lead photo, price, rooms, area, town and advertiser name. Descriptions, the full gallery, coordinates and the published date come from Property Detail, which opens one advert per request.

🐛 Troubleshooting

A run returned nothing

  • Check the place and property type actually pair up. Some towns carry very little stock
  • Widen the price, area or bedroom bounds, or clear the condition filter
  • Try dealType on any to read both sides of the market

Fewer adverts than expected

  • maxItems caps the run; raise it to read the whole board
  • The FREE tier stops at 25 rows per run
  • A narrow filter combination can legitimately match only a handful of adverts

An advert came back as an error row

  • Adverts get withdrawn. A taken-down address comes back as a marked row and is not charged
  • Run a search over the same place and type to pick up what replaced it

A pasted address behaved unexpectedly

  • Addresses in searchUrls are used exactly as written, including any filters and ordering they already carry
  • Check the address opens in a browser first

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.

🤝 Support

Join our active support community


Corotos is a trademark of its owner. This actor is not affiliated with, endorsed by, or sponsored by Corotos.

Built by SIÁN Agency | More Tools