Discover/99 API
live

99 API99.co

Search and filter Singapore residential property listings from 99.co. Access condo directories, price ranges, floor area data, and listing counts via 2 endpoints.

This API takes change requests — .
Endpoint health
verified 17h ago
list_condos
search_properties_for_sale
2/2 passing latest checkself-healing
Endpoints
2
Updated
17h ago

What is the 99 API?

The 99.co API provides access to Singapore residential property listings across 2 endpoints, covering for-sale listings and a condo directory. The search_properties_for_sale endpoint returns paginated results with filtering by price range, floor area, and property category (condo, HDB, landed), while list_condos exposes an alphabetically ordered condo directory. Both endpoints return 20 results per page and include totals for building full result sets.

Try it
Page number for pagination (1-based).
Maximum listing price in SGD.
Minimum listing price in SGD.
Field to sort results by. Omitted uses default relevance ordering.
Sort direction. Used together with sort_field.
Maximum floor area in square feet.
Minimum floor area in square feet.
Property category filter. Omitted returns all categories.
api.parse.bot/scraper/38c8b80a-f869-4bf3-9c9f-a714e416bdad/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/38c8b80a-f869-4bf3-9c9f-a714e416bdad/search_properties_for_sale?page=1&price_max=3000000&price_min=1000000&sort_field=price&sort_order=asc&floorarea_max=2000&floorarea_min=800&main_category=condo' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 99-co-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: 99.co Property Search API — bounded, re-runnable; every call capped."""
from parse_apis._99_co_Property_Search_API import NinetyNineCo, PropertyCategory, SortField, SortOrder, SortBy, ParseError

client = NinetyNineCo()

# List condos starting with letter B, sorted alphabetically.
for condo in client.condos.list(sort_by=SortBy.ALPHABETICALLY, letter="b", limit=3):
    print(condo.name, condo.tenure, condo.number_of_units)

# Take one condo for inspection.
item = client.condos.list(letter="c", limit=1).first()
if item:
    print(item.name, item.listing_url, item.completed_at, item.developer)

# Search condos for sale filtered by price and category.
for listing in client.property_listings.search_for_sale(
    main_category=PropertyCategory.CONDO,
    price_min=1000000,
    price_max=3000000,
    sort_field=SortField.PRICE,
    sort_order=SortOrder.ASC,
    limit=3,
):
    print(listing.address_name, listing.price_formatted, listing.area_size_formatted)

# Typed error handling around a real call.
try:
    result = client.condos.list(letter="z", limit=1).first()
    if result:
        print(result.name, result.type)
except ParseError as e:
    print("error:", e)

print("exercised: condos.list, property_listings.search_for_sale")
All endpoints · 2 totalmissing one? ·

Search residential properties listed for sale in Singapore. Results are paginated in pages of 20. Supports filtering by property category (condo, HDB, landed), price range, and floor area range. Results can be sorted by price or price per square foot.

Input
ParamTypeDescription
pageintegerPage number for pagination (1-based).
price_maxintegerMaximum listing price in SGD.
price_minintegerMinimum listing price in SGD.
sort_fieldstringField to sort results by. Omitted uses default relevance ordering.
sort_orderstringSort direction. Used together with sort_field.
floorarea_maxintegerMaximum floor area in square feet.
floorarea_minintegerMinimum floor area in square feet.
main_categorystringProperty category filter. Omitted returns all categories.
Response
{
  "type": "object",
  "fields": {
    "page": "current page number",
    "total": "total number of matching listings",
    "listings": "array of property listing objects",
    "page_size": "number of listings per page (always 20)"
  },
  "sample": {
    "data": {
      "page": 1,
      "total": 18551,
      "listings": [
        {
          "id": "VeqQggVPwVm4xyyGZRehSz",
          "psf": 1658.37,
          "price": 1000000,
          "tenure": null,
          "bedrooms": 1,
          "district": "19",
          "latitude": null,
          "area_size": 603,
          "bathrooms": 1,
          "longitude": null,
          "photo_url": "https://pic2.99.co/v3/44gh4Hs7QVW8mqBnv5vpsG?text=Jane+Doe&sampling=lanczos&version=1&width=320&mode=fill&quality=80&signature=1bcfb691de262c34ed15cbee93718c26e705061e",
          "agent_name": "Jane Doe",
          "agent_phone": "+1 (555) 012-3456",
          "listing_url": "/singapore/sale/property/property-in-singapore-condo-VeqQggVPwVm4xyyGZRehSz",
          "address_name": "Watertown",
          "completed_at": 2017,
          "listing_type": "sale",
          "sub_category": "Condo",
          "main_category": "condo",
          "psf_formatted": "S$ 1,658.37 psf",
          "address_line_1": "Watertown",
          "address_line_2": "71 Punggol Central · D19",
          "date_formatted": "18 days ago",
          "price_formatted": "S$ 1,000,000",
          "area_size_formatted": "603 sqft"
        }
      ],
      "page_size": 20
    },
    "status": "success"
  }
}

About the 99 API

Searching For-Sale Listings

The search_properties_for_sale endpoint queries active residential listings on 99.co's Singapore marketplace. You can scope results by main_category (e.g. condo, HDB, landed), set price bounds with price_min and price_max in SGD, and filter by floor area using floorarea_min and floorarea_max in square feet. Results are sorted by passing a sort_field and sort_order — useful for ordering by price or price per square foot. The response includes a total count of matching listings, the current page, and an array of listings objects, each representing one property listing.

Browsing the Condo Directory

The list_condos endpoint exposes 99.co's condo and apartment directory, which is sorted alphabetically. Use the letter parameter (a–z or # for numeric names) to filter directory entries to a specific starting character. The response returns condos (an array of directory entries), page, page_size (always 20), and total_pages for the current letter filter — making it straightforward to walk the full directory programmatically.

Pagination and Coverage

Both endpoints use 1-based page numbering and return exactly 20 items per page. The search_properties_for_sale response exposes a total field so you can calculate page counts. The list_condos endpoint instead exposes total_pages directly. Coverage is limited to Singapore residential properties listed for sale on 99.co; rental listings and commercial properties are not in scope for these endpoints.

Reliability & maintenanceVerified

The 99 API is a managed, monitored endpoint for 99.co — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 99.co 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 99.co 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.

Last verified
17h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate Singapore condo listings filtered by price range and floor area for a property comparison tool
  • Track total listing counts by property category (HDB, condo, landed) across price bands
  • Build a complete condo directory index by walking list_condos letter by letter
  • Identify price-per-sqft outliers by sorting search_properties_for_sale results by that field
  • Seed a database of Singapore condos by paginating through the full list_condos directory
  • Filter for large-footprint properties using floorarea_min to surface listings above a threshold
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does 99.co have an official developer API?+
99.co does not publish a public developer API or documented API program. There is no official API key signup or developer portal available.
What does `search_properties_for_sale` return for each listing?+
Each entry in the listings array is a property listing object from 99.co's for-sale marketplace. The response also includes a total count of all matching results, the current page number, and a page_size of 20. Filtering parameters include price_min, price_max, floorarea_min, floorarea_max, and main_category.
Does the API cover rental listings or commercial properties?+
Not currently. Both endpoints cover only residential properties listed for sale — search_properties_for_sale for active sale listings and list_condos for the condo directory. Rental listings and commercial properties are not included. You can fork this API on Parse and revise it to add an endpoint targeting rental or commercial listings.
Can I filter `list_condos` by location or MRT station?+
Not currently. The list_condos endpoint supports filtering by starting letter (letter param) and page navigation only. Location or transit-based filtering is not available on this endpoint. You can fork the API on Parse and revise it to add location-based directory filtering if that data is accessible.
How do I paginate through all results from `search_properties_for_sale`?+
The response includes a total field with the count of all matching listings and page_size is always 20. Divide total by 20 (rounding up) to get the number of pages, then increment the page parameter from 1 up to that count to retrieve all results.
Page content last updated . Spec covers 2 endpoints from 99.co.
Related APIs in Real EstateSee all →
propertyguru.com.sg API
Search and browse thousands of property listings across Singapore for both sale and rent, view comprehensive details like pricing and features, and discover upcoming new project launches. Find the perfect property or connect with real estate agents all in one platform.
99acres.com API
99acres.com API
housing.com API
Search and retrieve real estate listings on Housing.com. Browse properties for sale, rent, plots, and commercial spaces across major Indian cities with filtering by locality and property type.
dotproperty.com.ph API
Search for residential properties for rent or sale on Dot Property Philippines and retrieve detailed information like pricing, specifications, and agent details from individual listings. Access comprehensive property data to compare options and make informed real estate decisions.
domain.com.au API
Search and compare property listings for sale, rent, or sold properties across Australia, view detailed property information and agent profiles, and explore suburb insights to make informed real estate decisions. Access comprehensive data on agents, neighborhoods, and properties all in one place.
zoopla.co.uk API
Search for properties available for sale or rent, view detailed listing information, check sold house prices, and find local estate agents all in one place. Get access to live marketplace data to help you research properties, compare prices, and connect with agents on the Zoopla platform.
rew.ca API
Search rental and for-sale properties across Canada, get detailed listing information, explore neighbourhoods, and find real estate agents in your area. Access property details, agent profiles, and neighbourhood data all in one place.
realtor.com API
Search millions of real estate listings on Realtor.com, view detailed property information, find qualified agents in your area, and access market analytics to understand pricing trends. Get location suggestions and property insights all in one place to help you make informed decisions about buying, selling, or investing in real estate.