SMDC APIsmdc.com ↗
Access SMDC property listings across Heights, Nature, and Symphony Homes segments, project details, location filters, and news articles via a structured API.
What is the SMDC API?
The SMDC API provides 7 endpoints covering property listings across three segments (Heights, Nature, and Symphony Homes), full project details, keyword search, and news articles from the Good Life section. Use get_property_details to retrieve a property's location, price range, unit types, landmarks, and images in a single call, or use get_all_properties_combined to pull the complete cross-segment inventory in one request.
curl -X GET 'https://api.parse.bot/scraper/b6d662e3-b990-4275-a244-698f58eeba2c/get_all_properties_by_segment?segment=heights' \ -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 smdc-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.
from parse_apis.smdc_property_api import SMDC, Segment, Property, Article
client = SMDC()
# List all properties in the Heights segment
for prop in client.properties.list(segment=Segment.HEIGHTS):
print(prop.name, prop.status, prop.url)
# Search properties by keyword
for result in client.properties.search(query="Shell"):
print(result.title, result.url)
# Get full details for a specific property
detail = client.properties.get(url="https://smdc.com/properties/heights/shell-residences/")
print(detail.name, detail.status, detail.url)
# Filter properties by location in the Nature segment
for prop in client.properties.filter(segment=Segment.NATURE, location="Pasay City"):
print(prop.name, prop.segment)
# List all properties across all segments
for prop in client.properties.list_all():
print(prop.name, prop.segment)
# List news articles with automatic pagination
for article in client.articles.list():
print(article.title, article.date)
# Get full article content
article_detail = client.articles.get(url="https://smdc.com/the-good-life/the-weather-is-changing-so-is-the-way-filipinos-think-about-home/")
print(article_detail.title, article_detail.date)
Get all properties listed under a specific segment. Returns property name, URL, status, and segment for each property. Three segments exist: heights (urban high-rise developments), nature (green community developments), and symphony-homes (house-and-lot communities).
| Param | Type | Description |
|---|---|---|
| segmentrequired | string | Property segment. Accepted values: 'heights', 'nature', 'symphony-homes'. |
{
"type": "object",
"fields": {
"count": "integer total number of properties in the segment",
"properties": "array of property objects with name, url, status, and segment fields"
},
"sample": {
"data": {
"count": 18,
"properties": [
{
"url": "https://smdc.com/properties/heights/light-2-residences/",
"name": "Light 2 Residences",
"status": "Pre-selling",
"segment": "heights"
},
{
"url": "https://smdc.com/properties/heights/shore-2-residences/",
"name": "Shore 2 Residences",
"status": "Move in Ready",
"segment": "heights"
}
]
},
"status": "success"
}
}About the SMDC API
Property Listings and Segments
The get_all_properties_by_segment endpoint accepts a segment parameter — heights, nature, or symphony-homes — and returns an array of property objects, each with name, url, status, and segment fields plus a total count. To pull the full inventory across all three segments at once, get_all_properties_combined aggregates everything into a single properties array alongside a total_count integer.
Property Details and Filtering
get_property_details takes a full property URL (e.g. https://smdc.com/properties/heights/shell-residences/) and returns structured data including location, description, unit_types, amenities, landmarks (grouped by category with items arrays), an images array, and a logo_url. The get_properties_filtered endpoint adds segment and location filters; the location value must match SMDC's exact city label (e.g. Pasay City, Makati City). A sort parameter accepts status values like Move in Ready or Pre-selling, though this filter may not return reliable results for every status value.
Search and News
search_properties matches a query string against property names and returns title, url, and thumbnail for each match — note it does not search against location fields. The get_news_articles endpoint lists articles from SMDC's Good Life section six per page, with a page parameter for pagination; each item includes title, url, date, and thumbnail. For full article content, get_news_article_details accepts an article URL and returns the complete content body text along with hero_image and date.
The SMDC API is a managed, monitored endpoint for smdc.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when smdc.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 smdc.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?+
- Build a property comparison tool showing unit types, amenities, and landmarks across multiple SMDC developments.
- Display a map-ready location index by iterating get_all_properties_combined and grouping results by city via get_properties_filtered.
- Create a status-monitoring dashboard that tracks which properties flip from Pre-selling to Move in Ready.
- Aggregate SMDC's Good Life news feed into a real estate content hub using get_news_articles pagination.
- Power a property search widget that queries get_search_properties by name keyword and renders thumbnail results.
- Sync a CRM with current SMDC inventory by diffing periodic get_all_properties_combined responses against stored records.
- Generate per-segment landing pages by fetching segment-specific property lists and their detail data including images and descriptions.
| 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.
Does SMDC provide an official developer API?+
How does the location filter work in get_properties_filtered, and what happens if the value doesn't match?+
location parameter is case-sensitive and must match exactly how SMDC labels the city in its own listings — for example Pasay City or Mandaluyong City. Partial matches or alternate spellings will return zero results. If you are unsure of a valid city label, first call get_all_properties_combined to inspect the location values returned in property objects.Does the search endpoint match against property locations or descriptions?+
search_properties matches only against property names. Results include title, url, and thumbnail fields. Location-based discovery is handled by get_properties_filtered with an exact location value instead.Does the API return floor plans, pricing breakdowns, or unit availability counts?+
get_property_details returns a price range description within the text description field and unit_types as an array of strings, but structured floor plan data, per-unit pricing tables, and inventory counts are not exposed as discrete fields. You can fork this API on Parse and revise it to add an endpoint targeting that data.How many news articles are returned per page, and is there a way to get more at once?+
get_news_articles returns exactly 6 articles per page. There is no batch-size parameter; to retrieve more articles you increment the page integer across multiple calls. Full article body text is only available through get_news_article_details using the article URL returned in the listing response.