SGX Scraper - Singapore Exchange Listed Companies & Stocks
Pricing
from $11.54 / 1,000 results
SGX Scraper - Singapore Exchange Listed Companies & Stocks
Scrape every Singapore Exchange (SGX) listed company and security with no API key: stocks, ETFs, REITs, business trusts, warrants. Get live prices, change, volume, bid/ask, ISIN, CPF eligibility, currency and Mainboard/Catalist board. Export SGX market data to JSON, CSV or Excel.
Pricing
from $11.54 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
SGX Scraper - Singapore Exchange Listed Companies & Stocks
The most complete SGX scraper for Singapore Exchange data, with no API key and no login. Pull every SGX listed company and security (stocks, ETFs, REITs, business trusts, warrants and certificates) with live Singapore stock prices, ISIN codes, CPF eligibility, currency, Mainboard or Catalist board, and full corporate profiles. It is a drop-in SGX API alternative for investors, fintech builders, quant researchers and data teams who need clean Singapore equities market data in JSON, CSV or Excel.
Here is one real result, with every field the actor returns for a company:
{"name": "DBS","symbol": "D05","isin": "SG1L01001701","type": "Stock","listingBoard": "Mainboard","issuerName": "DBS GROUP HOLDINGS LTD","lastPrice": 78.65,"change": 0.7,"changePercent": 0.898,"previousClose": 77.95,"open": 78.3,"dayHigh": 79.05,"dayLow": 77.94,"bid": 78.64,"ask": 78.65,"bidVolume": 1.5,"askVolume": 17.4,"volume": 296131219.8,"tradedValue": 3764.352,"currency": "SGD","boardLotSize": 100,"lastTradedDate": "2026-09-03","lastTradeTime": "2026-09-04T09:16:00","cpfEligible": true,"fisn": "DBS GRP HLDG/ORDSHS","chineseName": "星展集团控股","ibmCode": "1L01","companyLegalName": "DBS GROUP HOLDINGS LTD","country": "SINGAPORE","listedDate": "1999-09-20","incorporatedOn": "1999-03-09","registeredAddress": "12 Marina Boulevard, Level 41, DBS Asia Central @ Marina Bay Financial Centre Tower 3, Singapore 018982","webAddress": "http://www.dbs.com","companyBackground": "DBS is a leading financial services group in Asia ...","source": "Singapore Exchange (SGX)","observedAt": "2026-09-04T19:14:26.158Z"}
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Why this SGX scraper
- How it compares
- Quickstart
- Input reference
- Output reference
- Company profile add-on
- Run via API and CLI
- Fetch results
- Use cases
- Billing and limits
- FAQ and troubleshooting
What it does
This actor reads the Singapore Exchange (SGX) market listing for the security type and keyword you pass and writes one normalized record per security to the run's dataset. Each record carries the company name and trading symbol, ISIN code, instrument type, listing board (Mainboard or Catalist), issuer, and the full live quote: last price, change and percent change, previous close, day open, high and low, bid and ask with their volumes, traded volume and value, board lot size, and the last trade date and time. It also joins the SGX reference feed to add ISIN, CPF eligibility, trading and denomination currency, asset class, geographical focus, and product flags. An optional paid add-on enriches each company with its SGX corporate profile: registered country, listing date, incorporation date, registered office address, website and company background.
Numeric fields are parsed as numbers, missing source values are returned as null, and every quote is read live at run time (see observedAt). Transport is HTTP-only against the public SGX JSON endpoints (no headless browser), routed over a Singapore residential connection.
Why this SGX scraper
- No API key, no login. Point it at SGX and run. No credentials, no rate-limited developer keys.
- The whole market in one run. About 1,300 live securities: stocks, ETFs, REITs, business trusts, warrants, certificates and ADRs.
- More fields than any other SGX actor. Live quote plus ISIN, CPF eligibility, currency, Mainboard/Catalist board, warrant conversion ratio and exercise price, ETF indicative NAV, and an optional full corporate profile.
- Investor and KYB ready. ISIN, legal name, country of incorporation, listing date and registered address make the output usable for research, screening and compliance.
- Clean, typed output. Flat JSON records, honest
nullfor absent values, ready for JSON, CSV or Excel.
How it compares
| Capability | This actor | jungle_synthesizer/sgx-listed-companies-scraper | alwaysprimedev/sgx-scraper |
|---|---|---|---|
| No API key required | Yes | Yes | Yes |
| All instrument types (stocks, ETFs, REITs, trusts, warrants, certificates, ADRs) | Yes | Yes | Yes |
| Security-type filter | Yes | Partial | Partial |
| Keyword search filter | Yes | No | No |
| Live quote (OHLC, last, change, previous close) | Yes | Yes | Yes |
| Bid and ask with bid/ask volumes | Yes | Partial | Partial |
| Traded value and board lot size | Yes | No | No |
| ISIN code | Yes | Yes | Yes |
| CPF eligibility | Yes | No | Yes |
| Listing board (Mainboard / Catalist) | Yes | Yes | Partial |
| Trading and denomination currency | Yes | Partial | Partial |
| Warrant conversion ratio and exercise price | Yes | No | No |
| ETF indicative NAV, asset class, benchmark, management style | Yes | No | No |
| Corporate profile (country, listing date, address, website, background) | Yes (add-on) | Yes | Yes |
| Chinese name and FISN | Yes | No | No |
| Output as JSON, CSV, Excel | Yes | Yes | Yes |
This actor accepts every input the alternatives accept and returns every field they return, plus quote micro-fields (bid and ask volumes, traded value, board lot size), warrant and ETF specifics, Chinese name and FISN that they do not expose. It is a strict superset for Singapore Exchange market data.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 SGX-listed stocks.
{"securityType": "stocks","maxSecurities": 10}
Every input field is optional. Set securityType to all and leave searchQuery empty to pull the whole market.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
maxSecurities | integer | no | 10 | Maximum number of listed securities to collect. Leave high to pull the whole market. Free Apify accounts are capped at 10 per run. |
securityType | enum | no | all | Instrument type. One of all, stocks, etfs, reits, businesstrusts, warrants, certificates, adrs. |
searchQuery | string | no | (empty) | Filter by company name or trading symbol, for example DBS, Singtel, D05. Empty returns every matching security. |
withDetails | boolean | no | false | Paid company-profile add-on, paying accounts only. Adds registered country, listing date, incorporation date, registered address, website and company background. |
Both filters are optional and combine with logical AND.
Output reference
One dataset item per security. Types are string, number, boolean, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
name | string | Company or security name. |
symbol | string | SGX trading symbol, for example D05. |
isin | string | ISIN code. |
type | string | Instrument type, for example Stock, ETF, REIT. |
listingBoard | string | Mainboard or Catalist. |
issuerName | string | Issuer name. |
lastPrice | number | Last traded price. |
change | number | Absolute price change. |
changePercent | number | Percent price change. |
previousClose | number | Previous close price. |
open | number | Day open price. |
dayHigh | number | Day high price. |
dayLow | number | Day low price. |
bid | number | Current bid price. |
ask | number | Current ask price. |
bidVolume | number | Volume at the bid. |
askVolume | number | Volume at the ask. |
volume | number | Traded volume. |
tradedValue | number | Traded value (in thousands). |
currency | string | Trading currency of the quote. |
tradingCurrency | string | Trading currency (reference feed). |
denominationCurrency | string | Denomination currency. |
boardLotSize | number | Board lot size. |
lastTradedDate | string | Last traded date (YYYY-MM-DD). |
lastTradeTime | string | Last trade timestamp. |
statusIndicator | string | Trading status indicator, for example SUSP (suspended). |
remarks | string | Quote remarks, for example XD (ex-dividend), CD (cum-dividend). |
cpfEligible | boolean | Whether the security is CPF eligible. |
specifiedInvestmentProduct | boolean | Whether it is a Specified Investment Product. |
fisn | string | Financial Instrument Short Name. |
chineseName | string | Chinese company name, when available. |
assetClass | string | Asset class (ETFs), for example EQUITIES, BONDS, REITS. |
geographicalFocus | string | Geographical focus (ETFs). |
managementStyle | string | PASSIVE or ACTIVE (ETFs). |
incomeTreatment | string | DISTRIBUTING or ACCUMULATING (ETFs). |
benchmark | string | Tracked benchmark index (ETFs). |
leveragedProduct | boolean | Whether it is a leveraged product. |
sustainabilityLinked | boolean | Whether it is sustainability linked. |
retailBond | boolean | Whether it is a retail bond. |
sgsBond | boolean | Whether it is a Singapore Government Securities bond. |
conversionRatio | string | Warrant conversion ratio, for example 40:1. |
exercisePrice | number | Warrant exercise (strike) price. |
expiryDate | string | Expiry date (warrants, certificates). |
maturityDate | string | Maturity date, when applicable. |
indicativeNav | number | Indicative NAV (ETFs). |
primaryExchange | string | Primary exchange for a secondary listing, for example HKEX. |
marketClassification | string | Market classification, for example Developed. |
ibmCode | string | SGX internal instrument code (join key). |
companyLegalName | string | Add-on. Full legal company name. |
country | string | Add-on. Country of incorporation. |
countryCode | string | Add-on. ISO country code. |
listedDate | string | Add-on. Listing date (YYYY-MM-DD). |
listedDateText | string | Add-on. Listing date as reported by SGX. |
incorporatedOn | string | Add-on. Incorporation date (YYYY-MM-DD). |
registeredAddress | string | Add-on. Registered office address. |
webAddress | string | Add-on. Company website. |
companyBackground | string | Add-on. Company background text. |
source | string | Always Singapore Exchange (SGX). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Company profile add-on
Turn on withDetails to enrich each listed company with its SGX corporate profile: legal name, country and country code, listing date, incorporation date, registered office address, website and company background. This add-on is available to paying Apify accounts and is billed only for records that actually carry a corporate profile. Many warrants, certificates and ETFs have no corporate profile and are never charged for it. The base quote record is always delivered first, then the profile is added, so you are never charged for a profile you did not receive.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~singapore-sgx-listed-companies-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"securityType":"reits","maxSecurities":50}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~singapore-sgx-listed-companies-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQuery":"DBS","maxSecurities":100,"withDetails":true}'
Apify CLI:
apify call scrapers_lat/singapore-sgx-listed-companies-scraper \--input '{"securityType":"all","maxSecurities":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Use cases
- Market data feeds. Populate dashboards, watchlists and screeners with live Singapore stock prices and volumes.
- Quant and backtesting inputs. Pull the full SGX universe with ISIN, board and currency for reproducible research.
- Fintech and portfolio apps. Map holdings to ISIN, CPF eligibility and listing board without an official data license.
- KYB and compliance. Match SGX-listed entities to legal name, country, listing date and registered address.
- ETF and REIT research. Filter by type and read asset class, benchmark, management style and indicative NAV.
Billing and limits
- Pay per result. You are charged per security returned (
resultevent). See the pricing tab for the current per-result price. - Company profile add-on. When
withDetailsis on, adetailscharge applies only to records that carry a corporate profile. Records without one are never charged for it, and the base record is always delivered before any profile charge. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable records. - Free Apify plans are capped at 10 records per run. Upgrade for a higher
maxSecurities.
FAQ and troubleshooting
Do I need an SGX API key or account? No. This actor needs no API key and no login. It reads only publicly available Singapore Exchange market data.
A run returned 0 records. Why?
The keyword or security type matched nothing. Set securityType to all, broaden the keyword, and retry. Zero-result runs are not charged.
Why are some quote fields 0?
When a security has not traded in the current session, the exchange reports 0 for fields such as open, dayHigh, volume and tradedValue. These are real source values, not errors.
Why is a company profile missing for some rows?
SGX publishes corporate profiles for listed companies but not for every instrument. Warrants, certificates and many ETFs have no corporate profile, so those add-on fields are null and are not charged.
How do I get the whole market?
Set securityType to all, leave searchQuery empty, and raise maxSecurities.
How do I get only REITs or ETFs?
Set securityType to reits or etfs.
Is this an official SGX tool? No. This actor is independent and has no affiliation with the Singapore Exchange. It reads only publicly available market data. Use the results in accordance with the source's terms.
Related scrapers
- Singapore MyCareersFuture Jobs Scraper: Singapore job listings with salary and company.
- Singapore Business Directory Scraper: Singapore business listings with contacts.
- GLEIF LEI Company Records Scraper: Global legal entity identifiers.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for public platforms: finance, company registries, government data and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the Singapore Exchange (SGX). Accesses only publicly available market data. Use the results in accordance with the source's terms.
