Encuentra24 APIencuentra24.com ↗
Search Panama real estate listings, retrieve property details, and browse regional filters via the Encuentra24 API. Covers price, specs, photos, and seller contact.
What is the Encuentra24 API?
The Encuentra24 API exposes 3 endpoints for accessing public real estate listings from encuentra24.com, Panama's major property marketplace. Use search_listings to query listings by region and property type with pagination, get_listing_details to pull full property data including coordinates, photo URLs, bedrooms, area in square meters, and seller contact, and get_regions to resolve valid location slugs at any hierarchy level from provinces down to neighborhoods.
curl -X GET 'https://api.parse.bot/scraper/ff07139a-22b4-45a9-b71b-ceddbce57f15/search_listings?page=1&limit=5®ion_slug=prov-panama&country_lang=panama-es&category_slug=bienes-raices-venta-de-propiedades-apartamentos' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace encuentra24-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Encuentra24 Panama real estate — discover regions, search listings, fetch details."""
from parse_apis.encuentra24_real_estate_api import (
Encuentra24, CategorySlug, Level, ListingNotFound
)
client = Encuentra24()
# Discover available regions (provinces) for Panama.
for region in client.regions.list(level=Level._2, limit=5):
print(region.name, region.slug)
# Search apartments for sale in Panama province (constructible region by slug).
panama = client.region("prov-panama")
for listing in panama.search(category_slug=CategorySlug.BIENES_RAICES_VENTA_DE_PROPIEDADES_APARTAMENTOS, limit=3):
print(listing.title, listing.price.raw, listing.location)
# Drill into the first result for full details (photos, description, contact).
summary = panama.search(limit=1).first()
if summary:
detail = summary.details()
print(detail.title, detail.price.currency, detail.bedrooms, detail.size_m2)
print(detail.media.og_image)
# Handle a listing that no longer exists.
try:
gone = client.region("prov-panama").search(limit=1).first()
if gone:
gone.details()
except ListingNotFound as exc:
print(f"Listing removed: {exc.listing_url}")
print("exercised: regions.list / region / search / details / ListingNotFound")
Search real estate listings by category (property type) and region. Returns paginated results (20 per page from the site). Use get_regions to discover valid region_slug values. Each listing summary includes ad_id, title, price, location, and basic specs (bedrooms/bathrooms/area). Paginate via the page parameter; total_results and pagination metadata indicate how many pages are available.
| Param | Type | Description |
|---|---|---|
| page | integer | Results page number (1-based). |
| limit | integer | Max listings to return from the page. |
| region_slugrequired | string | Region slug to filter by location. Obtain valid slugs from get_regions endpoint. |
| country_lang | string | Country/language prefix in URL. |
| category_slug | string | Search category slug (property type). Common values: bienes-raices-venta-de-propiedades-apartamentos (apartments for sale), bienes-raices-venta-de-propiedades-casas (houses for sale), bienes-raices-alquiler-apartamentos (apartments for rent). |
{
"type": "object",
"fields": {
"query": "object containing the search parameters used (country_lang, category_slug, region_slug, page, limit)",
"listings": "array of listing summary objects with ad_id, title, price, location, seller_name, details, image_url, url, is_featured",
"pagination": "object with page, per_page, total_pages, next_page, prev_page",
"total_results": "integer total number of matching listings"
}
}About the Encuentra24 API
Search and Filter Listings
The search_listings endpoint accepts a required region_slug and an optional category_slug to filter by property type — for example, bienes-raices-venta-de-propiedades-apartamentos for apartment sales. Results come back paginated at 20 per page; the pagination object in the response includes total_pages, next_page, and prev_page so you can walk through large result sets. Each listing summary in the listings array carries ad_id, title, price, location, seller_name, core specs like bedrooms and bathrooms, a thumbnail image_url, the full listing url, and an is_featured flag.
Property Detail Data
get_listing_details takes a full listing URL — typically sourced from search_listings results — and returns the complete record. The media object contains an og_image, photos arrays in large, medium, and all-sizes variants, and a coordinates field when the seller has provided a map pin. The price object breaks down into amount (integer or null), currency, and raw (the displayed string). Additional structured attributes appear in the details key-value object alongside dedicated fields for size_m2, bedrooms, and location.
Region Hierarchy
get_regions exposes Encuentra24's location tree at configurable depth. Pass level=2 for provinces, level=3 for cities and districts, level=4 for neighborhoods, and level=5 for sub-neighborhoods. Each region object in the response includes name, display, and slug. Feed those slugs directly into region_slug on search_listings to scope results geographically. The optional country_lang parameter controls the locale prefix used across all three endpoints.
The Encuentra24 API is a managed, monitored endpoint for encuentra24.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when encuentra24.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official encuentra24.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate Panama apartment and house listings into a property search app using search_listings with category and region filters
- Track asking prices over time for a specific district by polling search_listings with a neighborhood-level region_slug
- Enrich CRM records with full property details — coordinates, photos, area — by calling get_listing_details on saved listing URLs
- Build a map overlay of available properties using the coordinates field returned by get_listing_details
- Populate a region dropdown in a real estate tool by fetching provinces and cities from get_regions at levels 2 and 3
- Monitor which listings carry the is_featured flag in a given region to analyze promoted inventory patterns
- Extract seller contact information from individual listings to support lead-generation workflows
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.