# SGX Singapore Exchange API
> Live data from the Singapore Exchange (SGX), with no key. Read the live quote for any listed security by its trading code (last price, open/high/low, previous close, change and volume); pull a market list filtered by instrument type across SGX's full universe — stocks, ETFs, REITs, business trusts, ADRs, warrants and bonds; read the day's top gainers and losers; and see the breakdown of instrument types with counts. The Singapore-equities / multi-instrument / REIT-and-ETF layer for trading dashboards, screeners and fintech — distinct from other exchange readers, covering every SGX instrument type. Live from SGX; short cache only.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/sgx-api/..."
```

## Pricing
- **Free** (Free) — 17,000 calls/Mo, 3 req/s
- **Starter** ($20/Mo) — 340,000 calls/Mo, 8 req/s
- **Pro** ($53/Mo) — 1,800,000 calls/Mo, 20 req/s
- **Enterprise** ($129/Mo) — 9,200,000 calls/Mo, 60 req/s

## Endpoints

### Securities

#### `GET /v1/market` — Securities by instrument type

**Parameters:**
- `type` (query, optional, string) — stocks (default), etfs, reits, businesstrusts, adrs, structuredwarrants… Example: `reits`
- `sort` (query, optional, string) — volume (default), value or change Example: `volume`
- `limit` (query, optional, string) — Results (1-200, default 40) Example: `40`
- `offset` (query, optional, string) — Pagination offset Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sgx-api/v1/market?type=reits&sort=volume&limit=40&offset=0"
```

**Response:**
```json
{
    "data": {
        "note": "A list of SGX-listed securities of one instrument type — stocks (default), etfs, reits, businesstrusts, adrs, structuredwarrants and more — each with last price, change and volume. Sort by volume (default), value or change; page with offset and limit. See /v1/types for the instrument types.",
        "sort": "volume",
        "type": "reits",
        "count": 36,
        "total": 36,
        "offset": 0,
        "source": "SGX",
        "securities": [
            {
                "low": 2.32,
                "code": "C38U",
                "high": 2.37,
                "last": 2.34,
                "name": "CapLand IntCom T",
                "open": 2.36,
                "type": "reits",
                "change": 0,
                "volume": 11134.2,
                "traded_value": 26120362,
                "change_percent": 0,
                "previous_close": 2.34
            },
            {
                "low": 0.86,
                "code": "K71U",
                "high": 0.87,
                "last": 0.87,
                "name": "Keppel Reit",
                "open": 0.865,
                "type": "reits",
                "change": 0.01,
                "volume": 4950.5,
                "traded_value": 4283925.5,
                "change_percent": 1.16,
                "previous_close": 0.86
            },
            {
                "low": 0.007,
                "code": "D5IU",
                "high": 0.008,
                "la
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/movers` — Top gainers or losers

**Parameters:**
- `direction` (query, optional, string) — gainers or losers (default gainers) Example: `gainers`
- `type` (query, optional, string) — Instrument type (default stocks) Example: `stocks`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sgx-api/v1/movers?direction=gainers&type=stocks"
```

**Response:**
```json
{
    "data": {
        "note": "The day's top gainers or losers on SGX for an instrument type — each with its last price, percent change and volume. Pass direction (gainers|losers) and type (stocks default, etfs, reits…). Only securities that traded today are ranked.",
        "type": "stocks",
        "count": 20,
        "source": "SGX",
        "direction": "gainers",
        "securities": [
            {
                "low": 0.001,
                "code": "594",
                "high": 0.002,
                "last": 0.002,
                "name": "CapAllianz",
                "open": 0.001,
                "type": "stocks",
                "change": 0.001,
                "volume": 1040.5,
                "traded_value": 2070.5,
                "change_percent": 100,
                "previous_close": 0.001
            },
            {
                "low": 0.003,
                "code": "585",
                "high": 0.004,
                "last": 0.004,
                "name": "Asian Micro",
                "open": 0.003,
                "type": "stocks",
                "change": 0.001,
                "volume": 0.2,
                "traded_value": 0.7,
                "change_percent": 33.33,
                "previous_close": 0.003
            },
            {
                "low": 0.048,
                "code": "BJD",
                "high": 0.052,
                "last": 0.052,
                "name": "VibroPower",
                "open": 0.048,
            
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/quote` — Live quote for a security

**Parameters:**
- `code` (query, required, string) — SGX trading code, e.g. D05 (DBS), Z74 (Singtel), C6L (SIA) Example: `D05`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sgx-api/v1/quote?code=D05"
```

**Response:**
```json
{
    "data": {
        "note": "The live quote for one SGX-listed security by its trading code — last price, open/high/low, previous close, change (absolute and percent) and volume. Pass code (e.g. D05 for DBS, Z74 for Singtel). Works for stocks, ETFs, REITs and more.",
        "source": "SGX",
        "security": {
            "low": 63.31,
            "code": "D05",
            "high": 63.64,
            "last": 63.6,
            "name": "DBS",
            "open": 63.31,
            "type": "stocks",
            "change": 0.36,
            "volume": 1106.6,
            "traded_value": 70243710,
            "change_percent": 0.57,
            "previous_close": 63.24
        }
    },
    "meta": {
        "timestamp": "2026-06-15T02:11:10.525Z",
        "request_id": "7adbb858-4793-44f4-b3bb-526d363f947a"
    },
    "status": "ok",
    "message": "Quote retrieved successfully",
    "success": true
}
```

### Reference

#### `GET /v1/types` — Instrument types with counts

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sgx-api/v1/types"
```

**Response:**
```json
{
    "data": {
        "note": "The instrument types listed on SGX with the number of securities of each — stocks, ETFs, REITs, business trusts, ADRs, warrants, bonds and more. Pass a type to /v1/market or /v1/movers to slice the market.",
        "count": 14,
        "types": [
            {
                "type": "stocks",
                "listed": 564
            },
            {
                "type": "dlcertificates",
                "listed": 339
            },
            {
                "type": "structuredwarrants",
                "listed": 147
            },
            {
                "type": "etfs",
                "listed": 91
            },
            {
                "type": "reits",
                "listed": 36
            },
            {
                "type": "adrs",
                "listed": 36
            },
            {
                "type": "sgsbonds",
                "listed": 21
            },
            {
                "type": "companywarrants",
                "listed": 17
            },
            {
                "type": "businesstrusts",
                "listed": 15
            },
            {
                "type": "retailbonds",
                "listed": 14
            },
            {
                "type": "others",
                "listed": 10
            },
            {
                "type": "liprod",
                "listed": 4
            },
            {
                "type": "retailpreferenceshares",
        
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Endpoints & source

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/sgx-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "sample": {
            "dbs_last": 63.6
        },
        "source": "Singapore Exchange public securities API (api.sgx.com), keyless",
        "service": "sgx-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/quote": "Live quote for one security (code).",
            "GET /v1/types": "Instrument types with counts.",
            "GET /v1/market": "Securities of an instrument type (type, sort, limit).",
            "GET /v1/movers": "Top gainers or losers (direction, type)."
        },
        "description": "Live data from the Singapore Exchange (SGX) with no key: the live quote for any listed security by code, a market list filtered by instrument type across SGX's full universe (stocks, ETFs, REITs, business trusts, ADRs, warrants, bonds), the day's top gainers and losers, and the breakdown of instrument types with counts. The Singapore-equities / multi-instrument / REIT-and-ETF layer for trading dashboards and screeners. Distinct from other exchange readers — SGX across every instrument type. Live, short cache only.",
        "upstream_status": "ok",
        "instrument_types": [
            "stocks",
            "etfs",
            "reits",
            "businesstrusts",
            "adrs",
            "companywarrants",
            "structuredwarrants",
            "dlcertificates",
            "listedcertificates",
            "retailbonds",
            "sgsbonds",
            "retailpreferenceshares
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/sgx-api
OpenAPI spec: https://www.oanor.com/api/sgx-api/openapi.json
