# Bolsa Mexicana de Valores (BMV) API
> Live Mexican equity data from the Bolsa Mexicana de Valores (BMV): real-time quotes for any listed stock by ticker (price, % change, intraday OHLC, volume, market cap in Mexican peso MXN), a ranking screener for gainers, losers, most-active and top market-cap local primary listings, and the S&P/BMV index family (IPC plus LargeCap, MidCap and SmallCap). Foreign depositary receipts are filtered out so you get only genuine Mexican companies such as Grupo Mexico, America Movil, Walmex, FEMSA and Banorte. Mexican share classes carry a slash suffix (e.g. GMEXICO/B, AMX/B).

## 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/mexico-stock-api/..."
```

## Pricing
- **Free** (Free) — 1,620 calls/Mo, 3 req/s
- **Basic** ($14/Mo) — 49,500 calls/Mo, 8 req/s
- **Pro** ($43/Mo) — 207,000 calls/Mo, 20 req/s
- **Business** ($88/Mo) — 865,000 calls/Mo, 48 req/s

## Endpoints

### Quotes

#### `GET /v1/quote` — Live quote for one or more BMV stocks

**Parameters:**
- `symbols` (query, required, string) — Comma-separated BMV tickers (up to 20; share classes use a slash, e.g. GMEXICO/B) Example: `GMEXICO/B,AMX/B,WALMEX`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/mexico-stock-api/v1/quote?symbols=GMEXICO%2FB%2CAMX%2FB%2CWALMEX"
```

**Response:**
```json
{
    "data": {
        "count": 3,
        "market": "BMV",
        "quotes": [
            {
                "low": 206.42,
                "high": 213.06,
                "last": 209.69,
                "name": "Grupo Mexico S.A.B. de C.V. Class B",
                "open": 206.5,
                "pe_ttm": 15.3796,
                "sector": "Non-Energy Minerals",
                "symbol": "GMEXICO/B",
                "ticker": "BMV:GMEXICO/B",
                "volume": 2926233,
                "currency": "MXN",
                "change_abs": 3.07,
                "change_pct": 1.4858,
                "market_cap": 1632436669006
            },
            {
                "low": 23.65,
                "high": 24.49,
                "last": 23.88,
                "name": "America Movil SAB de CV Class B",
                "open": 23.75,
                "pe_ttm": 16.4553,
                "sector": "Communications",
                "symbol": "AMX/B",
                "ticker": "BMV:AMX/B",
                "volume": 60589195,
                "currency": "MXN",
                "change_abs": 0.04,
                "change_pct": 0.1678,
                "market_cap": 1461742508629
            },
            {
                "low": 51.71,
                "high": 52.34,
                "last": 52.08,
                "name": "Wal-Mart de Mexico SAB de CV",
                "open": 52,
                "pe_ttm": 17.9667,
                "sector": "Retail Trade",
                "symbol": "
…(truncated, see openapi.json for full schema)
```

### Screener

#### `GET /v1/screener` — Rank local primary listings

**Parameters:**
- `sort` (query, optional, string) — Sort field: market_cap, change or volume Example: `market_cap`
- `order` (query, optional, string) — asc or desc Example: `desc`
- `limit` (query, optional, string) — Number of results (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/mexico-stock-api/v1/screener?sort=market_cap&order=desc&limit=25"
```

**Response:**
```json
{
    "data": {
        "sort": "market_cap",
        "count": 25,
        "order": "desc",
        "market": "BMV",
        "results": [
            {
                "low": 206.42,
                "high": 213.06,
                "last": 209.69,
                "name": "Grupo Mexico S.A.B. de C.V. Class B",
                "open": 206.5,
                "pe_ttm": 15.3796,
                "sector": "Non-Energy Minerals",
                "symbol": "GMEXICO/B",
                "ticker": "BMV:GMEXICO/B",
                "volume": 2926233,
                "currency": "MXN",
                "change_abs": 3.07,
                "change_pct": 1.4858,
                "market_cap": 1632436669006
            },
            {
                "low": 23.65,
                "high": 24.49,
                "last": 23.88,
                "name": "America Movil SAB de CV Class B",
                "open": 23.75,
                "pe_ttm": 16.4553,
                "sector": "Communications",
                "symbol": "AMX/B",
                "ticker": "BMV:AMX/B",
                "volume": 60589195,
                "currency": "MXN",
                "change_abs": 0.04,
                "change_pct": 0.1678,
                "market_cap": 1461742508629
            },
            {
                "low": 51.71,
                "high": 52.34,
                "last": 52.08,
                "name": "Wal-Mart de Mexico SAB de CV",
                "open": 52,
                "pe_ttm": 17.9667,
            
…(truncated, see openapi.json for full schema)
```

### Indices

#### `GET /v1/index` — S&P/BMV indices (IPC family)

**Parameters:**
- `symbol` (query, optional, string) — Optional specific index symbol(s) Example: `ME`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/mexico-stock-api/v1/index?symbol=ME"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "market": "BMV",
        "indices": [
            {
                "low": 67045.06,
                "high": 68207.88,
                "name": "S&P/BMV IPC Index",
                "open": 67045.06,
                "index": "ME",
                "label": "S&P/BMV IPC",
                "value": 67954.55,
                "change_abs": 977.5,
                "change_pct": 1.4595
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-15T11:16:03.477Z",
        "request_id": "15d7ef62-21f9-4f64-8a8b-86f1225b9baf"
    },
    "status": "ok",
    "message": "Index retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Market metadata & endpoint guide

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

**Response:**
```json
{
    "data": {
        "note": "Mexican share classes use a slash suffix, e.g. GMEXICO/B, AMX/B, FEMSA/UBD.",
        "market": "Bolsa Mexicana de Valores (BMV)",
        "source": "TradingView screener (mexico market), keyless",
        "country": "Mexico",
        "indices": [
            "ME",
            "CP",
            "ICG",
            "CM"
        ],
        "currency": "MXN",
        "examples": {
            "index": "/v1/index?symbol=ME",
            "quote": "/v1/quote?symbols=GMEXICO/B,AMX/B,WALMEX",
            "screener": "/v1/screener?sort=change&order=desc&limit=10"
        },
        "endpoints": {
            "/v1/index": "S&P/BMV indices (IPC = ME, LargeCap = CP, MidCap = ICG, SmallCap = CM)",
            "/v1/quote": "live quote for one or more BMV stocks by ticker (symbols=GMEXICO/B,AMX/B,WALMEX)",
            "/v1/screener": "rank local primary listings by market_cap | change | volume (sort, order, limit)"
        },
        "cache_ttl_ms": 20000
    },
    "meta": {
        "timestamp": "2026-06-15T11:16:03.602Z",
        "request_id": "6aa1b653-4d34-4ef7-8445-05893ecd16d4"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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