# Stock Exchanges API
> The official ISO 10383 Market Identifier Code (MIC) registry as an API — 2,800+ stock exchanges and trading venues worldwide. Look up a venue by its MIC (e.g. XNAS, XLON), search by name, country, status or market category, and see the operating MIC, legal entity, LEI, city, website and active/expired status. Ideal for fintech, trade reporting, MiFID II compliance and broker tooling.

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

## Pricing
- **Free** (Free) — 1,500 calls/Mo, 3 req/s
- **Starter** ($14/Mo) — 35,000 calls/Mo, 8 req/s
- **Pro** ($54/Mo) — 350,000 calls/Mo, 15 req/s
- **Enterprise** ($229/Mo) — 3,000,000 calls/Mo, 60 req/s

## Endpoints

### Exchanges

#### `GET /v1/mic` — A single venue by its MIC code

**Parameters:**
- `code` (query, required, string) — 4-character MIC, e.g. XNAS Example: `XNAS`

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

**Response:**
```json
{
    "data": {
        "lei": "549300L8X1Q78ERXFD06",
        "mic": "XNAS",
        "city": "NEW YORK",
        "name": "NASDAQ - ALL MARKETS",
        "type": "OPRT",
        "status": "ACTIVE",
        "acronym": "NASDAQ",
        "country": "US",
        "website": "WWW.NASDAQ.COM",
        "category": "RMKT",
        "legal_entity": "NASDAQ, INC.",
        "operating_mic": "XNAS"
    },
    "meta": {
        "timestamp": "2026-05-31T01:29:16.872Z",
        "request_id": "712bb126-bfcc-43f3-875b-f5432c45bf1d"
    },
    "status": "ok",
    "message": "Exchange retrieved",
    "success": true
}
```

#### `GET /v1/search` — Search exchanges / trading venues

**Parameters:**
- `q` (query, optional, string) — Name / acronym / city (substring) Example: `nasdaq`
- `country` (query, optional, string) — Filter by ISO-2 country code Example: `US`
- `status` (query, optional, string) — ACTIVE, EXPIRED or UPDATED Example: `ACTIVE`
- `category` (query, optional, string) — Market category code, e.g. RMKT, MLTF
- `limit` (query, optional, string) — Results per page (1-100, default 20) Example: `20`
- `offset` (query, optional, string) — Pagination offset Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/exchanges-api/v1/search?q=nasdaq&country=US&status=ACTIVE&limit=20&offset=0"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "limit": 20,
        "total": 21,
        "offset": 0,
        "filters": {
            "q": "nasdaq",
            "status": "ACTIVE",
            "country": "US",
            "category": null
        },
        "results": [
            {
                "lei": null,
                "mic": "XNFI",
                "city": "NEW YORK",
                "name": "NASDAQ FIXED INCOME TRADING",
                "type": "SGMT",
                "status": "ACTIVE",
                "acronym": null,
                "country": "US",
                "website": "WWW.NASDAQ.COM",
                "category": "NSPD",
                "legal_entity": null,
                "operating_mic": "XNAS"
            },
            {
                "lei": "254900F5GTSJJHGE9287",
                "mic": "FINN",
                "city": "NEW YORK",
                "name": "FINRA/NASDAQ TRF CARTERET (TRADE REPORTING FACILITY)",
                "type": "SGMT",
                "status": "ACTIVE",
                "acronym": "FINN",
                "country": "US",
                "website": "WWW.FINRA.ORG",
                "category": "TRFS",
                "legal_entity": "FINANCIAL INDUSTRY REGULATORY AUTHORITY, INC.",
                "operating_mic": "FINR"
            },
            {
                "lei": "549300L8X1Q78ERXFD06",
                "mic": "MELO",
                "city": "NEW YORK",
                "name": "NASDAQ MIDPOINT-ELO (M-ELO)",
              
…(truncated, see openapi.json for full schema)
```

### Countries

#### `GET /v1/countries` — Countries with exchange counts

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

**Response:**
```json
{
    "data": {
        "count": 149,
        "countries": [
            {
                "country": "GB",
                "exchanges": 598
            },
            {
                "country": "US",
                "exchanges": 497
            },
            {
                "country": "DE",
                "exchanges": 211
            },
            {
                "country": "NL",
                "exchanges": 121
            },
            {
                "country": "FR",
                "exchanges": 107
            },
            {
                "country": "JP",
                "exchanges": 89
            },
            {
                "country": "SE",
                "exchanges": 67
            },
            {
                "country": "IT",
                "exchanges": 66
            },
            {
                "country": "ES",
                "exchanges": 64
            },
            {
                "country": "IE",
                "exchanges": 63
            },
            {
                "country": "SG",
                "exchanges": 49
            },
            {
                "country": "CH",
                "exchanges": 48
            },
            {
                "country": "AU",
                "exchanges": 47
            },
            {
                "country": "NO",
                "exchanges": 43
            },
            {
                "country": "PL",
                "exchanges": 43
            },
            {
          
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Totals, statuses, categories & source

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

**Response:**
```json
{
    "data": {
        "total": 2853,
        "active": 2289,
        "fields": [
            "mic",
            "operating_mic",
            "type",
            "name",
            "legal_entity",
            "lei",
            "category",
            "acronym",
            "country",
            "city",
            "website",
            "status"
        ],
        "source": "ISO 10383 Market Identifier Codes (ISO 20022)",
        "statuses": [
            "ACTIVE",
            "EXPIRED",
            "UPDATED"
        ],
        "countries": 149,
        "categories": [
            "APPA",
            "ATSS",
            "CASP",
            "DCMS",
            "IDQS",
            "MLTF",
            "NSPD",
            "OTFS",
            "OTHR",
            "RMKT",
            "RMOS",
            "SEFS",
            "SINT",
            "TRFS"
        ]
    },
    "meta": {
        "timestamp": "2026-05-31T01:29:17.079Z",
        "request_id": "31ab8592-917a-4fea-a3f5-ad8c6cb9d4dd"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


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