# GET Market Info

Returns real-time session status for an instrument, including whether the market is currently open or closed, the current/next session boundaries in UTC and exchange local time, and a countdown to the next state change.

This is useful for algos that need to know whether the market is in session before placing orders, or UIs that display session timers.

## Retrieve market session info

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

**Headers**

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

**Query Parameters**

| Name         | Type   | Required                                 | Description                          |
| ------------ | ------ | ---------------------------------------- | ------------------------------------ |
| `instrument` | string | <mark style="color:red;">Required</mark> | Instrument name (e.g., `"ES 09-26"`) |

\*If neither is provided, defaults to ES front month.

**Code Examples**

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

```python
import requests

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

params = {"instrument": "ES 09-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" %}

```json
{
  "success": true,
  "timestamp": "2026-03-18T20:46:29.0248281Z",
  "instrument": "ES 06-26",
  "timeZone": "Central Standard Time",
  "status": {
    "isOpen": true,
    "state": "Open"
  },
  "session": {
    "label": "Current Session",
    "utcStart": "2026-03-17T22:00:00.0000000Z",
    "utcEnd": "2026-03-18T21:00:00.0000000Z",
    "localStart": "2026-03-17 17:00:00",
    "localEnd": "2026-03-18 16:00:00",
    "countdown": "00:13:30",
    "action": "Until Close",
    "secondsRemaining": 810.9751719
  },
  "upcoming": {
    "utcStart": "2026-03-18T22:00:00.0000000Z",
    "utcEnd": "2026-03-19T21:00:00.0000000Z"
  }
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
When the market is closed, the `session` object reflects the next upcoming session with `"label": "Next Session"` and `"action": "Until Open"`.
{% endhint %}

#### 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": "MarketInfo",
  "args": {
    "instrument": "ES 06-26"
  }
}
```
