# PSE Philippine Stock Exchange API
> Live data for the Philippine Stock Exchange (PSE), with no key. Read the whole-market snapshot of every listed stock (price in Philippine pesos, percent change and volume); a single stock quote; and the day's top gainers and losers computed across the market. The Philippines-equities / market-snapshot / movers layer for trading dashboards, screeners and research — distinct from other exchange readers, this is PSE data. Live from the public phisix feed; 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/pse-api/..."
```

## Pricing
- **Free** (Free) — 16,000 calls/Mo, 3 req/s
- **Starter** ($17/Mo) — 320,000 calls/Mo, 8 req/s
- **Pro** ($46/Mo) — 1,700,000 calls/Mo, 20 req/s
- **Enterprise** ($110/Mo) — 8,600,000 calls/Mo, 60 req/s

## Endpoints

### Stocks

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

**Parameters:**
- `direction` (query, optional, string) — gainers or losers (default gainers) Example: `gainers`
- `limit` (query, optional, string) — Results (1-50, default 20) Example: `20`

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

**Response:**
```json
{
    "data": {
        "note": "The day's top gainers or losers on the PSE — each with its price, percent change and volume — computed across the whole market. Pass direction (gainers or losers) and limit (1-50, default 20).",
        "as_of": "2026-06-15T00:00:00+08:00",
        "count": 20,
        "source": "PSE",
        "stocks": [
            {
                "name": "Supercity Realty Development Corporation",
                "price": 11.68,
                "symbol": "SRDC",
                "volume": 100,
                "currency": "PHP",
                "percent_change": 29.78
            },
            {
                "name": "Atok-Big Wedge Co., Inc.",
                "price": 2.15,
                "symbol": "AB",
                "volume": 1000,
                "currency": "PHP",
                "percent_change": 20.79
            },
            {
                "name": "Dominion Holdings, Inc.",
                "price": 6.64,
                "symbol": "DHI",
                "volume": 366200,
                "currency": "PHP",
                "percent_change": 10.3
            },
            {
                "name": "DigiPlus Interactive Corp.",
                "price": 11.7,
                "symbol": "PLUS",
                "volume": 1800000,
                "currency": "PHP",
                "percent_change": 9.96
            },
            {
                "name": "Ayala Land, Inc.",
                "price": 13.8,
                "symbol": "ALI",
     
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/quote` — Latest quote for a stock

**Parameters:**
- `symbol` (query, required, string) — PSE symbol, e.g. SM (SM Investments), BDO, ALI, JFC, TEL Example: `SM`

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

**Response:**
```json
{
    "data": {
        "name": "SM Investments Corporation",
        "note": "The latest quote for one PSE-listed stock — price (PHP), percent change and volume. Pass symbol (e.g. SM, BDO, ALI, JFC, TEL).",
        "as_of": "2026-06-15T00:00:00+08:00",
        "price": 617,
        "source": "PSE",
        "symbol": "SM",
        "volume": 86770,
        "currency": "PHP",
        "percent_change": 5.47
    },
    "meta": {
        "timestamp": "2026-06-15T02:11:01.570Z",
        "request_id": "247a942e-304e-4019-85a0-6b5da76ba1c2"
    },
    "status": "ok",
    "message": "Quote retrieved successfully",
    "success": true
}
```

#### `GET /v1/stocks` — Whole-market snapshot

**Parameters:**
- `sort` (query, optional, string) — symbol (default), change, volume or price Example: `volume`
- `limit` (query, optional, string) — Results (1-500, default 50) Example: `50`
- `offset` (query, optional, string) — Pagination offset Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pse-api/v1/stocks?sort=volume&limit=50&offset=0"
```

**Response:**
```json
{
    "data": {
        "note": "The whole-market snapshot of every PSE-listed stock — each with its price (PHP), percent change and volume. Sort by symbol (default), change, volume or price; page with offset and limit (max 500). The full Philippine market tape.",
        "sort": "volume",
        "as_of": "2026-06-15T00:00:00+08:00",
        "count": 50,
        "total": 385,
        "offset": 0,
        "source": "PSE",
        "stocks": [
            {
                "name": "Ayala Land, Inc.",
                "price": 13.8,
                "symbol": "ALI",
                "volume": 13067800,
                "currency": "PHP",
                "percent_change": 8.32
            },
            {
                "name": "Apollo Global Capital, Inc.",
                "price": 0.0065,
                "symbol": "APL",
                "volume": 6000000,
                "currency": "PHP",
                "percent_change": 3.17
            },
            {
                "name": "ACEN CORPORATION",
                "price": 3.26,
                "symbol": "ACEN",
                "volume": 5033000,
                "currency": "PHP",
                "percent_change": 0.93
            },
            {
                "name": "DITO CME Holdings Corp.",
                "price": 0.75,
                "symbol": "DITO",
                "volume": 3249000,
                "currency": "PHP",
                "percent_change": 5.63
            },
            {
                "name": "SP New
…(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/pse-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "sample": {
            "sm_price": 617
        },
        "source": "public phisix PSE feed (phisix-api), keyless",
        "service": "pse-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/quote": "Latest quote for one stock (symbol).",
            "GET /v1/movers": "Top gainers or losers (direction, limit).",
            "GET /v1/stocks": "Whole-market snapshot (sort, offset, limit)."
        },
        "description": "Live data for the Philippine Stock Exchange (PSE) with no key: the whole-market snapshot of every listed stock (price in PHP, percent change, volume), a single stock quote, and the day's top gainers and losers computed across the market. The Philippines-equities / market-snapshot / movers layer for trading dashboards and screeners. Distinct from other exchange readers — PSE data. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-15T02:11:01.744Z",
        "request_id": "a5fcbc32-4f61-4546-9862-69d214be93ca"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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