REIT Lens Public API
A free, read-only HTTP API for Singapore REIT data. Daily-refreshed, no auth, no API key. Use it for personal dashboards, side projects, or research.
Attribution
If you display this data in a public project, link back to reitlens.com. That's the only string attached.
Rate limit
60 requests per minute per IP. No keys to manage.
Endpoints
List all S-REITs
GET https://reitlens.com/api/v1/public/sgreits
Query params (all optional):
order_by—current_yield(default),nav_discount,safety,growthlimit— 1..200 (default 100)
Example:
curl "https://reitlens.com/api/v1/public/sgreits?order_by=safety&limit=10"
Single REIT
GET https://reitlens.com/api/v1/public/sgreit/{ticker}
Example:
curl "https://reitlens.com/api/v1/public/sgreit/C38U.SI"
Coverage catalogue
GET https://reitlens.com/api/v1/public/coverage
List of every ticker we currently track + sub-sector. Useful for projecting coverage in your app.
Response shape
{
"as_of": "2026-06-06",
"count": 40,
"order_by": "current_yield",
"attribution": "https://reitlens.com",
"rate_limit": "60 requests/min",
"data": [
{
"ticker": "C38U.SI",
"name": "CapitaLand Integrated Commercial Trust",
"country_code": "SG",
"sub_sector": "Retail",
"current_yield": 5.47,
"avg_yield_5y": 5.21,
"nav_premium_discount": -3.4,
"nav_stale": false,
"distribution_safety_score": 75,
"is_aristocrat": true,
"years_continuous_distributions": 11,
"distribution_growth_5y": 2.8,
"distribution_frequency": "quarterly",
"insider_ownership_pct": 30.5
}
]
}What we don't do
- Real-time prices — data is refreshed once per day around 02:00 UTC
- Historical data via API — only current snapshot
- Authentication — public read-only only
- Webhooks or push delivery
Versioning
The /api/v1/public/* endpoints are versioned. We'll add fields in non-breaking ways. If we ever need to change response shape we'll publish /api/v2/public/* alongside the v1 endpoints for at least 6 months.
Found something wrong?
If a metric looks off, check the per-REIT page on our site to see the raw inputs first — most discrepancies trace to methodology differences. If it's a real bug, open an issue on our GitHub (link in footer).