# GET Quote

Retrieve a real-time quote for one or more instruments. Unlike the legacy account-scoped quote endpoint (`/v1/api/accounts/{account}/quote`), this route does not require an account name. It resolves instruments by name and returns the latest quote from your NinjaTrader data feed.

You can request multiple instruments in a single call by passing a comma-separated list. All instruments are quoted concurrently.

## Get a live quote

<mark style="color:green;">`GET`</mark> `/v1/api/market/quote`

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Query Parameters**

<table><thead><tr><th width="168.71429443359375">Name</th><th width="147.28564453125">Type</th><th width="157.4857177734375">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>instrument</code></td><td>string</td><td><mark style="color:red;">Required</mark></td><td>Instrument name (e.g., <code>"ES 09-26"</code>). Supports CSV for multiple: <code>"ES 09-26,NQ 09-26"</code></td></tr></tbody></table>

**Code Examples**

{% tabs %}
{% tab title="Python" %}

```python
import requests

token = 'my-secret-token'
url = "https://app.crosstrade.io/v1/api/market/quote"
headers = {
    "Authorization": f"Bearer {token}",
    "Content-Type": "application/json"
}

# Quote by instrument
params = {"instrument": "ES 03-26"}

# Multi-instrument quote, returns a list of quote objects
# params = {"instrument": "ES 03-26,NQ 03-26,MBT 03-26"}

try:
    response = requests.get(url, headers=headers, params=params)
    print(f"Response Code: {response.status_code}, Response Text: {response.text}")
except Exception as e:
    print(f"An error occurred: {e}")
```

{% endtab %}
{% endtabs %}

***

**Response**

{% tabs %}
{% tab title="200 - single" %}

```json
{
  "description": "E-mini S&P 500 Futures",
  "type": "Future",
  "tickSize": 0.25,
  "pointValue": 50.0,
  "tickValue": 12.5,
  "exchange": "Globex",
  "expiration": "2026-03-01",
  "tradingHours": "CME US Index Futures ETH",
  "instrument": "ES 03-26",
  "bid": 6618.0,
  "ask": 6618.25,
  "last": 6617.75,
  "open": 6722.5,
  "high": 6762.25,
  "low": 6604.0,
  "close": 6626.0,
  "volume": 204962,
  "quoteTime": "03/18/2026 01:51:54 PM",
  "quoteTimeUtc": "2026-03-18 20:51:54",
  "epoch": 1773867114,
  "dataSource": {
    "status": "Live",
    "connectedFeeds": [
      "Live"
    ]
  },
  "isMarketOpen": true
}

```

{% endtab %}

{% tab title="200 - multi" %}

```json
[
  {
    "description": "E-mini S&P 500 Futures",
    "type": "Future",
    "tickSize": 0.25,
    "pointValue": 50.0,
    "tickValue": 12.5,
    "exchange": "Globex",
    "expiration": "2026-03-01",
    "tradingHours": "CME US Index Futures ETH",
    "instrument": "ES 03-26",
    "bid": 6618.0,
    "ask": 6618.25,
    "last": 6618.0,
    "open": 6722.5,
    "high": 6762.25,
    "low": 6604.0,
    "close": 6626.0,
    "volume": 205008,
    "quoteTime": "03/18/2026 01:52:22 PM",
    "quoteTimeUtc": "2026-03-18 20:52:22",
    "epoch": 1773867142,
    "dataSource": {
      "status": "Live",
      "connectedFeeds": [
        "Live"
      ]
    },
    "isMarketOpen": true
  },
  {
    "instrument": "NQ 03-26",
    "description": "E-mini NASDAQ 100 Futures",
    "type": "Future",
    "bid": 24407.75,
    "ask": 24409.25,
    "last": 24407.75,
    "open": 24796.0,
    "high": 24989.0,
    "low": 24350.0,
    "close": 24434.5,
    "volume": 68708,
    "tickSize": 0.25,
    "tickValue": 5.0,
    "pointValue": 20.0,
    "exchange": "Globex",
    "expiration": "2026-03-01",
    "tradingHours": "CME US Index Futures ETH",
    "isMarketOpen": true,
    "quoteTime": "03/18/2026 01:52:18 PM",
    "quoteTimeUtc": "2026-03-18 20:52:18",
    "epoch": 1773867138,
    "success": true
  },
  {
    "description": "CME Micro Bitcoin Futures",
    "type": "Future",
    "tickSize": 5.0,
    "pointValue": 0.1,
    "tickValue": 0.5,
    "exchange": "Globex",
    "expiration": "2026-03-01",
    "tradingHours": "CME FX Futures ETH",
    "instrument": "MBT 03-26",
    "bid": 71305.0,
    "ask": 71325.0,
    "last": 71350.0,
    "open": 74650.0,
    "high": 74965.0,
    "low": 70570.0,
    "close": 71115.0,
    "volume": 64283,
    "quoteTime": "03/18/2026 01:52:23 PM",
    "quoteTimeUtc": "2026-03-18 20:52:23",
    "epoch": 1773867143,
    "dataSource": {
      "status": "Live",
      "connectedFeeds": [
        "Live"
      ]
    },
    "isMarketOpen": true,
    "success": true
  }
]

```

{% endtab %}

{% tab title="400" %}

```json
{
  "error": "Missing required arguments"
}
```

{% endtab %}
{% endtabs %}

#### WebSocket API

This request can also be made over the WebSocket API. Query parameters are passed inside `args`. Use `instrument` to identify the contract.

```json
{
  "action": "rpc",
  "id": "my-request-id",
  "api": "GetQuote",
  "args": {
    "instrument": "ES 06-26"
  }
}
```
