# Cboe Titanium U.S. Secure Web API

Version 1.11.25 · August 4, 2026

## Introduction

The Cboe Titanium U.S. Secure Web API allows client applications to view and update data using the HTTPS protocol over the Internet. For example, a customer can use the Customer Web Portal to implement risk management at the client level. The API exposes this same functionality in a programmatic way allowing customers to write programs to automate these tasks. You could, for example, use the API to limit the max share size allowed on all orders for a particular client.

This API is available for use on all U.S. platforms that use the Cboe Titanium platform. Cboe reserves the right to add services to this API at any time without notice.

### Requirements

Secure services:

- An API Developer Key
- An API Developer Secret (Customer Portal Password)
- Ability to send HTTPS requests and receive HTTPS responses over the Internet

### Access

The API is accessed via a URL using the HTTPS protocol. The API is served from the api-account.cboe.com domain. Service is the path to a particular service you want to reach. The available services are detailed in U.S. Equities Services, U.S. Futures Services, and U.S. Options Services.

```
BYX Exchange
https://api-account.cboe.com/byx/service/
BZX Exchange
https://api-account.cboe.com/bzx/service/
EDGX Exchange 
https://api-account.cboe.com/edgx/service/
EDGA Exchange 
https://api-account.cboe.com/edga/service/
BZX Options Exchange
https://api-account.cboe.com/opt/service/
Cboe Options Exchange
https://api-account.cboe.com/cone/service/
C2 Options Exchange
https://api-account.cboe.com/ctwo/service/
EDGX Options Exchange
https://api-account.cboe.com/exo/service/
Cboe Futures Exchange
https://api-account.cboe.com/cfe/service/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BYX Exchange
https://api.batstrading.com/byx/service/
BZX Exchange
https://api.batstrading.com/bzx/service/
EDGX Exchange 
https://api.batstrading.com/edgx/service/
EDGA Exchange 
https://api.batstrading.com/edga/service/
BZX Options Exchange
https://api.batstrading.com/opt/service/
Cboe Options Exchange
https://api.batstrading.com/cone/service/
C2 Options Exchange
https://api.batstrading.com/ctwo/service/
EDGX Options Exchange
https://api.batstrading.com/exo/service/
Cboe Futures Exchange
https://api.batstrading.com/cfe/service/
```

#### Obtaining a Developer Key and Secret

Contact the Cboe or CFE Trade Desk to receive your API Developer Key. The API Developer Secret is the Customer Web Portal password associated with the account. Never share your Secret with anyone. Cboe employees will never ask you for your Secret.

#### Certification Environments

Features of the API services are available for testing in certification environments. Service is the path to a particular service you want to reach. Members are encouraged to test updates and new features in the certification environments prior to usage in production environments. You can request logical port sessions in the certification environment through the Logical Port Request tool. See the Cboe Titanium U.S. Customer Web Portal Specification for more information.

Certification Environment URLs.

```
BYX Exchange
https://certification-api-account.cboe.com/byx/service/
BZX Exchange
https://certification-api-account.cboe.com/bzx/service/
EDGX Exchange 
https://certification-api-account.cboe.com/edgx/service/
EDGA Exchange 
https://certification-api-account.cboe.com/edga/service/
Cboe Options Exchange
 https://certification-api-account.cboe.com/cone/service/
BZX Options Exchange
 https://certification-api-account.cboe.com/opt/service/
C2 Options Exchange
 https://certification-api-account.cboe.com/ctwo/service/
EDGX Options Exchange
 https://certification-api-account.cboe.com/exo/service/
Cboe Futures Exchange
 https://certification-api-account.cboe.com/cfe/service/
```

Effective 07/31/26 in certification, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BYX Exchange
https://certification-api.batstrading.com/byx/service/
BZX Exchange
https://certification-api.batstrading.com/bzx/service/
EDGX Exchange 
https://certification-api.batstrading.com/edgx/service/
EDGA Exchange 
https://certification-api.batstrading.com/edga/service/
Cboe Options Exchange 
https://certification-api.batstrading.com/cone/service/
BZX Options Exchange
https://certification-api.batstrading.com/opt/service/
C2 Options Exchange
https://certification-api.batstrading.com/ctwo/service/
EDGX Options Exchange
https://certification-api.batstrading.com/exo/service/
Cboe Futures Exchange
https://certification-api.batstrading.com/cfe/service/
```

### Authentication

The Secure Web API uses HTTP Basic Auth over SSL to authenticate your login credentials. You use your Cboe API Developer Key as your username and your usual, self-created password, as your password. If you already have an API Key for the Cboe Public Web API, you can use this same key. Contact the Trade Desk to receive your API Key. Never share your password with anyone. Cboe Associates will never ask you for your password.

## Request Structure

Requests that retrieve data without making any modifications can be made using an HTTP GET. Requests that are expected to modify data must use an HTTP POST. Each service may have several commands available. Each command may have unique parameter requirements and so are specified per service and command. You need to submit your key and secret on every request.

Example Request

For example, one of the services exposed via the API is the Port Control service. One of the commands available in this service is `viewClient`. Since this command does not modify anything, you could use a GET.

```
BZX Service URL: https://api-account.cboe.com/bzx/account/port_controls/
Method: GET 
Required request parameters:

        key: "dtiyt6VkQ1e3sFNgvuCaiA"
        secret: "MyPassword"
        command: "viewClient"
        client: "ABCD"
```

Since this example is a GET, the API request could be made using this URL:

```
https://api-account.cboe.com/bzx/account/port_controls/?key=dtiyt6VkQ1e3sFNgvuCaiA&secret=MyPassword&command=viewClient&client=ABCD
```

## Response Structure

The response will be in JSON format. There are some key-value pairs that you can always expect while other keys will optionally exist.

Additional key-value pairs and data items could be added. You should develop your application in such a way that it will not break if new items are added in the response. Do not rely on key position when parsing the response.

**Table 1. Response Structure**

| Field | Required | Description |
|---|---|---|
| code | Y | Request result code. 200 series = Success. Non 200 series = Failure. See ‘msg’ value for details. The request may have been partially successful. |
| Msg | Y | A string description of the success or failure. Usually only populated when code is not 200. |
| Data | N | A list of data items. The exact format is specific to the command requested. |

Example Response Structure

```
{
 "code":"200",
   "msg": "",
 "data":[{"Color":"green","Size":12},{"Color":"blue","Size":9}]
}
```

## U.S. Equities Services

Services available through the US Secure Web API for the BYX, BZX, EDGA, and EDGX Equities Exchanges operated by Cboe.

**Table 1. U.S. Equities Services**

| Name | Path | Description |
|---|---|---|
| Port Controls | /account/port_controls/ | Used by Customers and Service Bureaus to manage their ports and default port settings. |
| Market Maker | /account/market_maker/ | Used by Registered Market Makers to register symbols for automated quotation. |
| Liquidity Management Provider | /account/liquidity_management_provider/ | Used to register as a Liquidity Management Provider for a list of symbols. |
| Risk Manager | /account/risk_manager/ | Used to view and manage risk rules. |
| Ports Info | /account/ports_info/ | Ports information service. |
| Symbol Data | /account/symbol_data/ | Near-real-time top of book data for reference use or distribution. |
| Top | /account/top/ | Used to retrieve current top-of-book symbol data for all equity symbols |
| Book Data | /account/book/ | Near-real-time depth of book data for reference use or distribution. |

### Port Controls Service

```
BYX Exchange
https://api-account.cboe.com/byx/account/port_controls/
BZX Exchange
https://api-account.cboe.com/bzx/account/port_controls/
EDGX Exchange 
https://api-account.cboe.com/edgx/account/port_controls/
EDGA Exchange 
https://api-account.cboe.com/edga/account/port_controls/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BYX Exchange
https://api.batstrading.com/byx/account/port_controls/
BZX Exchange
https://api.batstrading.com/bzx/account/port_controls/
EDGX Exchange 
https://api.batstrading.com/edgx/account/port_controls/
EDGA Exchange 
https://api.batstrading.com/edga/account/port_controls/
```

#### viewClients

Use this command to retrieve a list of your configured clients and their associated clearing identifier.

**Table 1. viewClients**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewClients |

Example Response

```
{‘code’: ‘200’, ‘msg’: ‘’,
 ‘data’: [{
       'display': ‘FIRM/MMMM: Your Firm (direct using MMMM)',
       'client': 'FIRM', ‘firm_name': ‘Your Firm', 'clearing': 'MMMM',
   }, [{
       'display': 'SPON/MMMM: Sponsored Firm (sponsored using MMMM)',
       'client': 'SPON', 'firm_name': 'Sponsored Firm', 'clearing': 'MMMM',
   }]}
```

#### viewClient

Use this command to retrieve current default settings for all of your firm’s ports. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. viewClient**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewClient |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| Clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "data":[ {"allowShortSales":"0", "maxShareSize":999999, "maxNotionalValue":0, "allowPostmarket":"0", "allowIso":"1", "blockNewOrders":"0", "allowPremarket":"0", "executionCollar1":"50", "executionCollar2":"25", "executionCollar3":"15", "executionCollar4":"10", "executionCollar5":"10",  "dupOrderAction":"R", "dupOrderCount":"1000", "dupOrderSeconds":"5"} ]}
```

#### setClient

Use this command to update default settings for all of your firm’s ports. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. setClient**

| Parameter | Required | Description |
|---|---|---|
| command | Y | setClient |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| allowIso | N | 0=restrict, 1=allow |
| allowDirectedIso | N | 0=restrict, 1=allow |
| allowShortSales | N | 0=restrict, 1=allow |
| allowShortSaleExempt | N | 0=restrict, 1=allow |
| requireLocateBrokerOnShortSaleOrders | N | 0=no, 1=yes |
| requireLocateBrokerOnShortSaleExemptOrders | N | 0=no, 1=yes |
| requireLocateBrokerShortToShort | N | 0=no, 1=yes |
| allowPremarket | N | 0=restrict, 1=allow |
| allowPostMarket | N | 0=restrict, 1=allow |
| blockNewOrders | N | 0=do not block, 1=block |
| cancelOpenOrders | N | 0=do not cancel, 1=cancel |
| advPercent | N | Percent of ADV for Single Order ADV Checks. An integer from 1 to 100. |
| advMinThreshold | N | Enable when ADV Exceeds (shares), i.e. the Minimum Threshold for Single Order ADV Checks. An integer greater than 0. |
| maxNotionalValue | N | 0=use default max notional |
| maxShareSize | N | 0=use default max size |
| portThreshold | N | An integer from 1 to 5000. |
| symbolThreshold | N | An integer from 1 to 5000. |
| executionCollar1 | N | Fat Finger % Tier 1 (< $1)** An integer from 1 to 75. |
| executionCollar2 | N | Fat Finger % Tier 2 (>= $1 and < $10)** An integer from 1 to 50. |
| executionCollar3 | N | Fat Finger % Tier 3 (>= $10 and < $50)** An integer from 1 to 20. |
| executionCollar4 | N | Fat Finger % Tier 4 (>= $50 and < $100)** An integer from 1 to 20. |
| executionCollar5 | N | Fat Finger % Tier 5 (>= $100 and < $500)** An integer from 1 to 20. |
| executionCollar6 | N | Fat Finger % Tier 6 (>= $500)** An integer from 1 to 20. |
| executionCollarDollar1 | N | Fat Finger Dollar Tier 1 (< $1)** |
| executionCollarDollar2 | N | Fat Finger Dollar Tier 2 (>= $1 and < $10)** |
| executionCollarDollar3 | N | Fat Finger Dollar Tier 3 (>= $10 and < $50)** |
| executionCollarDollar4 | N | Fat Finger Dollar Tier 4 (>= $50 and < $100)** |
| executionCollarDollar5 | N | Fat Finger Dollar Tier 5 (>= $100 and < $500)** |
| rejectMktNoNbbo | Y | 0=do not reject, 1=reject |
| dupOrderAction | N | Action When Duplicative Orders are Encountered: O=Off (no action), R=Reject Orders, D=Disable Port Note the key for duplicative order checks are: Clearing MPID, Symbol, Price, Size and Side (i.e. Buy or not) |
| dupOrderCount | N | Order Count Threshold |
| dupOrderSeconds | N | Time Threshold in seconds |
| clearing | Y | The MPID used in the relationship (required when multiple MPIDs are in use) |
| marketOrderRestriction | N | 1=Allow MKT orders, 2=Reject MKT orders during continuous trading and allow during auctions, 3=Reject MKT orders during continuous trading and also during auctions |

Note that at least one of the optional parameters must be specified. You may supply one or multiple optional parameters in a single request.

** Refer to the Cboe Titanium U.S. Equities/Options Web Portal Port Controls Specification for more information on this parameter.

Example Response

```
{"code":"200", "msg":""}
```

#### viewEasy

Use this command to view the Easy to Borrow list for your firm. Firms cannot have both the Easy to Borrow list and Hard to Borrow list in place at the same time for order management. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. viewEasy**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewEasy |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| Clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg":"", "data": {"known": ["symbol1", "symbol2", "symbol3"], "unknown": [],"knownCount": 3, "unknownCount": 0}}
```

#### uploadEasy

Use this command to change the Easy to Borrow list for your firm. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. uploadEasy**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadEasy |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| symbols | Y | Comma separated list of Cboe symbol names |
| Clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg": "5 valid symbols were applied. Of these, 1 are not known to the Cboe trading system. Perhaps they will be known in the future. ", "data": {"knownCount": 4, "unknownCount": 1, "unknown": ["FOOO"], "invalidCount": 0, "invalid": []}}
```

#### removeEasy

Use this command to remove the Easy to Borrow list for your firm. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. removeEasy**

| Parameter | Required | Description |
|---|---|---|
| command | Y | removeEasy |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| Clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg": ""}
```

#### viewHard

Use this command to view the Hard to Borrow list for your firm. Firms cannot have both the Hard to Borrow list and Easy to Borrow list in place at the same time for order management. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. viewHard**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewHard |
| Client | Y | Customer or Service Bureau’s Cboe Firm ID |
| clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg":"", "data": {"known": ["symbol1", "symbol2", "symbol3"], "unknown": [],"knownCount": 3, "unknownCount": 0}}
```

#### uploadHard

Use this command to change the Hard to Borrow list for your firm. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. uploadHard**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadHard |
| Client | Y | Customer or Service Bureau’s Cboe Firm ID |
| symbols | Y | Comma separated list of Cboe symbol names |
| Clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg": "5 valid symbols were applied. Of these, 1 are not known to the Cboe trading system. Perhaps they will be known in the future. ", "data": {"knownCount": 4, "unknownCount": 1, "unknown": ["FOOO"], "invalidCount": 0, "invalid": []}}
```

#### removeHard

Use this command to remove the Hard to Borrow list for your firm. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. removeHard**

| Parameter | Required | Description |
|---|---|---|
| command | Y | removeHard |
| Client | Y | Customer or Service Bureau’s Cboe Firm ID |
| clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg": ""}
```

#### viewRestricted

Use this command to view the Restricted Symbols list for your firm. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. viewRestricted**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewRestricted |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg":"", "data": {"known": ["symbol1", "symbol2", "symbol3" ], "unknown": [],"knownCount": 3, "unknownCount": 0}}
```

#### uploadRestricted

Use this command to change the Restricted Symbols list for your firm. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. uploadRestricted**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadRestricted |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| symbols | Y | Comma separated list of Cboe symbol names |
| clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg": "5 valid symbols were applied. Of these, 1 are not known to the Cboe trading system. Perhaps they will be known in the future. ", "data": {"knownCount": 4, "unknownCount": 1, "unknown": ["FOOO"], "invalidCount": 0, "invalid": []}}
```

#### removeRestricted

Use this command to remove the Restricted Symbols list for your firm. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. removeRestricted**

| Parameter | Required | Description |
|---|---|---|
| command | Y | removeRestricted |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| clearing | N | The MPID used in the relationship (required when multiple MPIDs are in use) |

Example Response

```
{"code":"200", "msg": ""}
```

### Liquidity Management Provider Registration Service (BZX Only)

```
BZX Exchange
https://api-account.cboe.com/bzx/account/liquidity_management_provider/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BZX Exchange
https://api.batstrading.com/bzx/account/liquidity_management_provider/
```

#### viewIdentifiers

View all available clearing firm identifiers.

**Table 1. viewIdentifiers**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewIdentifiers |

Example Response

```
{"code":"200",
 "data":[
     {"identifier":"CBOE"},
     {"identifier":"MMQA"},
     {"identifier":"MMQB"}
 ], 
"msg":"","}
```

#### viewRegisteredSymbols

View LMP symbols registered for both the current trading session and the next trading session.

**Table 1. viewRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewRegisteredSymbols |
| identifier | Y | The clearing firm identifier to view |

Example Response

```
{"code":"200",
 "data":{
     "current":["ZVZZT"],
     "next":["ZVZZT"]
 }
 "msg":"",
}
```

#### viewActiveRegisteredSymbols

View active LMP symbols registered for both the current trading session and the next trading session.

**Table 1. viewActiveRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewActiveRegisteredSymbols |
| identifier | Y | The clearing firm identifier to view |

Example Response

```
{"code":"200",
 "data":{
     "current":["ZVZZT"],
     "next":["ZVZZT"]
 }
 "msg":"",
}
```

Note that the "current" and "next" lists represent registered symbols in an active state at the time the command is run.

#### clearRegisteredSymbols

Remove all currently-registered LMP symbols.

**Table 1. clearRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | clearRegisteredSymbols |
| identifier | Y | The clearing firm identifier to clear |

Example Response

```
{"code":"200", "msg":"INFO: Successfully removed all symbols"}
```

#### uploadRegisteredSymbols

Register a new set of symbols for the LMP program.

**Table 1. uploadRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadRegisteredSymbols |
| identifier | Y | The clearing firm identifier to clear |
| add | Y | Comma-separated list of symbols to register for the next trading session. |
| remove | Y | Comma-separated list of symbols to remove for the next trading session. |

Example Request

```
?command=uploadRegisteredSymbols&identifier=CBOE&add=ZVZZT,ZBZX,ZTEST
```

Example Response

```
{"code":"200"
 "msg":"List updated. Registration in the securities referenced in your update will be effective on January 12, 2016",
 "data":{
     "inactiveCount":0,
     "duplicateCount":0,
     "activeCount":3,
     "removeCount":0,
     "unknownList":[],
     "addCount":3,
     "failedMinimumRegistration":[]
 }
}
```

### Market Maker Registration Service

```
BYX Exchange
https://api-account.cboe.com/byx/account/market_maker/
BZX Exchange
https://api-account.cboe.com/bzx/account/market_maker/
EDGX Exchange
https://api-account.cboe.com/edgx/account/market_maker/
EDGA Exchange
https://api-account.cboe.com/edga/account/market_maker/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BYX Exchange
https://api.batstrading.com/byx/account/market_maker/
BZX Exchange
https://api.batstrading.com/bzx/account/market_maker/
EDGX Exchange
https://api.batstrading.com/edgx/account/market_maker/
EDGA Exchange
https://api.batstrading.com/edga/account/market_maker/
```

#### viewIdentifiers

View all available clearing firm identifiers.

**Table 1. viewIdentifiers**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewIdentifiers |

Example Response

```
{"code":"200",
 "data":[
     {"identifier":"CBOE"},
     {"identifier":"MMQA"},
     {"identifier":"MMQB"}
 ], 
"msg":"","}
```

#### viewRegisteredSymbols

View symbols registered for both the current trading session and the next trading session.

**Table 1. viewRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewRegisteredSymbols |
| identifier | Y | The clearing firm identifier to view |

Example Response

```
{"code":"200",
 "data":{
     "current":["ZVZZT"],
     "next":["ZVZZT"]
 }
 "msg":"",
}
```

#### viewActiveRegisteredSymbols

View active symbols registered for both the current trading session and the next trading session.

**Table 1. viewActiveRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewActiveRegisteredSymbols |
| identifier | Y | The clearing firm identifier to view |

Example Response

```
{"code":"200",
 "data":{
     "current":["ZVZZT"],
     "next":["ZVZZT"]
 }
 "msg":"",
}
```

Note that the "current" and "next" lists represent registered symbols in an active state at the time the command is run.

#### clearRegisteredSymbols

Remove all currently-registered symbols.

**Table 1. clearRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | clearRegisteredSymbols |
| identifier | Y | The clearing firm identifier to clear |

Example Response

```
{"code":"200", "msg":"INFO: Successfully removed all symbols"}
```

#### uploadRegisteredSymbols

Register a new set of symbols for automated quoting.

**Table 1. uploadRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadRegisteredSymbols |
| identifier | Y | The clearing firm identifier to clear |
| add | Y | Comma-separated list of symbols to register for the next trading session. |
| remove | Y | Comma-separated list of symbols to remove for the next trading session. |

Example Request

```
?command=uploadRegisteredSymbols&identifier=CBOE&add=ZVZZT,ZBZX,ZTEST
```

Example Response

```
{"code":"200"
 "msg":"List updated. Registration in the securities referenced in your update will be effective on January 12, 2016",
 "data":{
     "inactiveCount":0,
     "duplicateCount":0,
     "activeCount":3,
     "removeCount":0,
     "unknownList":[],
     "addCount":3,
     "failedMinimumRegistration":[]
 }
}
```

### Quoting Incentive Program Registration Service (BZX Only)

Service URL

```
BZX Exchange
https://api.batstrading.com/bzx/account/quoting_program/
```

#### viewIdentifiers

View all available clearing firm identifiers.

**Table 1. viewIdentifiers**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewIdentifiers |

Example Response

```
{"code":"200",
 "data":[
     {"identifier":"CBOE"},
     {"identifier":"MMQA"},
     {"identifier":"MMQB"}
 ], 
"msg":"","}
```

#### viewRegisteredSymbols

View symbols registered for both the current trading session and the next trading session.

**Table 1. viewRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewRegisteredSymbols |
| identifier | Y | The clearing firm identifier to view |

Example Response

```
{"code":"200",
 "data":{
     "current":["ZVZZT"],
     "next":["ZVZZT"]
 }
 "msg":"",
}
```

#### viewActiveRegisteredSymbols

View active symbols registered for both the current trading session and the next trading session.

**Table 1. viewActiveRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewActiveRegisteredSymbols |
| identifier | Y | The clearing firm identifier to view |

Example Response

```
{"code":"200",
 "data":{
     "current":["ZVZZT"],
     "next":["ZVZZT"]
 }
 "msg":"",
}
```

Note that the "current" and "next" lists represent registered symbols in an active state at the time the command is run.

#### clearRegisteredSymbols

Remove all currently-registered symbols.

**Table 1. clearRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | clearRegisteredSymbols |
| identifier | Y | The clearing firm identifier to clear |

Example Response

```
{"code":"200", "msg":"INFO: Successfully removed all symbols"}
```

#### uploadRegisteredSymbols

Register a new set of symbols for the Quoting Incentive program.

**Table 1. uploadRegisteredSymbols**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadRegisteredSymbols |
| identifier | Y | The clearing firm identifier to clear |
| add | Y | Comma-separated list of symbols to register for the next trading session. |
| remove | Y | Comma-separated list of symbols to remove for the next trading session. |

Example Request

```
?command=uploadRegisteredSymbols&identifier=CBOE&add=ZVZZT,ZBZX,ZTEST
```

Example Response

```
{"code":"200"
 "msg":"List updated. Registration in the securities referenced in your update will be effective on April 15, 2026",
 "data":{
     "inactiveCount":0,
     "duplicateCount":0,
     "activeCount":3,
     "removeCount":0,
     "unknownList":[],
     "addCount":3,
     "ineligibleList": [],
     "ineligibleList_count": 0,     "failedMinimumRegistration":[]
 }
}
```

### Risk Management Service

```
BYX Exchange
https://api-account.cboe.com/byx/account/risk_manager/
BZX Exchange
https://api-account.cboe.com/bzx/account/risk_manager/
EDGX Exchange
https://api-account.cboe.com/edgx/account/risk_manager/
EDGA Exchange
https://api-account.cboe.com/edga/account/risk_manager/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BYX Exchange
https://api.batstrading.com/byx/account/risk_manager/
BZX Exchange
https://api.batstrading.com/bzx/account/risk_manager/
EDGX Exchange
https://api.batstrading.com/edgx/account/risk_manager/
EDGA Exchange
https://api.batstrading.com/edga/account/risk_manager/
```

#### viewExecutingFirms

View available executing firm ID’s.

**Table 1. viewExecutingFirms**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | viewExecutingFirms |

Example Response

```
{
 "msg":"",
 "code":"200",
 "data":{

 "CBOE":{
 "clearingId":"CBOE",
 "clearingFirmName":"Clearing Firm",
 "firmname":"Firm Name",
 "controlledBy":"trading"
 "risk_group_id":"123"}
 }}
```

#### viewRules

View all rules stored for an executing firm ID.

**Table 1. viewRules**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewRules |
| identifier | Y | Executing Firm ID* |
| tradingDay | N | `'today'` is currently effective rules `'next'` (default) is for the next trading date's rules |

*If no `identifier`is provided, all rules for the firms’ MPIDs will be returned.

Example Response

```
{
 "msg":"",
 "code":"200",
 "data":[

 {"symbol":"",
 "limit_value":999999999,
 "limit_type":"abs_ntnl",
 "market_participant_id":"CBOE"
 "risk_group_id":"0", "reject_behavior":"rej_only"}
 ]}     
```

#### uploadRules

Upload a rule set for the next trading day.

**Table 1. uploadRules**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadRules |
| identifier | Y | Executing Firm ID |
| rules | Y | Comma-delimited list of rules to add |

Rule Format:

Colon-separated list of values as follows:

```
        mpid:limit_type:symbol:limit_value:risk_group_id:reject_behavior
```

**Table 2. uploadRules Parameters**

| Parameter | Required | Description |
|---|---|---|
| mpid | Y | Specifies the MPID to which the risk setting applies. A valid MPID must be included and the firm must have control of the MPID. |
| limit_type | Y | The limit type must be one of the following values: abs_ntnl - Absolute Gross Notional abs_nntnl - Absolute Net Notional agg_gcdt - Aggregated Gross Credit agg_ncdt - Aggregated Net Credit |
| symbol | Y | Not supported. Must be blank. |
| limit_value | Y | This value must be an integer value. Floating point values are not accepted. When the limit type is a notional type, this represents whole dollars. |
| risk_group_id | N | Integer 1-65535. |
| reject_behavior | N | rej_cncl (resting orders are cancelled and inbound orders are rejected) or rej_only (resting orders are not cancelled and inbound orders are rejected) If not specified, rej_cncl is default. Please note that only one reject_behavior per limit_type is allowed. |

Example Request

```
rules=CBOE:abs_ntnl::1000000000,CBGM:abs_nntnl::1000000:rej_only
```

Example Response

```
   {
     "msg":"Rules updated",
     "code":"200",
     "data":{
             "duplicateCount":0,
             "removeCount":2,
             "processedCount":2,
             "spacesCount":0,
             "efidsInUpload":[

 "CBOE",
 "CGBM",],             
 "unknownList":[],
 "addCount":2}
   }
```

#### clearRules

Remove all currently-stored rules, effective starting the next trading day.

**Table 1. clearRules**

| Parameter | Required | Description |
|---|---|---|
| command | Y | clearRules |
| identifier | Y | The Executing Firm ID to clear, or `all`to clear rules for all executing firm IDs. |

Example Response

```
{"msg":"","code":"200","data":[]}
```

### Ports Information Service

```
BYX Exchange
https://api-account.cboe.com/byx/account/ports_info/
BZX Exchange
https://api-account.cboe.com/bzx/account/ports_info/
EDGX Exchange
https://api-account.cboe.com/edgx/account/ports_info/
EDGA Exchange
https://api-account.cboe.com/edga/account/ports_info/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BYX Exchange
https://api.batstrading.com/byx/account/ports_info/
BZX Exchange
https://api.batstrading.com/bzx/account/ports_info/
EDGX Exchange
https://api.batstrading.com/edgx/account/ports_info/
EDGA Exchange
https://api.batstrading.com/edga/account/ports_info/
```

#### viewPortConnections

Use this command to retrieve CSV formatted data of your ports and their associated connection information. The data will reflect the same information presented in the `View Port Connection Info` available under the More Options link in the Customer Web Portal Ports Dashboard and is subject to change. Each port type will have its own header row and a blank line will be inserted between port types.

**Table 1. viewPortConnections**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewPortConnections |

Example Response

```
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","Username","Session Sub Id","Password","Trading Group","Allowed MPIDs"
"BOE","127.0.0.1","127.0.0.2","10100","CBOE","0001","bz1cboe","","CBOE"
"BOE","127.0.0.1","127.0.0.2","10101","CBOE","0002","bz2cboe","","CBOE"
"BOE","127.0.0.1","127.0.0.2","10102","CBOE","0003","bz3cboe","","CBOE"
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","SenderCompId","SenderSubId","TargetCompId","TargetSubId","Trading Group","Allowed MPIDs"
"FIX","127.0.0.1","127.0.0.2","10103","CBOE","0004","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10104","CBOE","0005","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10105","CBOE","0006","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10106","CBOE","0007","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10107","CBOE","0008","CBOE","DEV","","CBOE"
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","SenderCompId","SenderSubId","TargetCompId","TargetSubId","Trading Group"
"Odrop","127.0.0.1","127.0.0.2","10200","CBOE","0009","CBOE","DEV",""
"Odrop","127.0.0.1","127.0.0.2","10201","CBOE","0010","CBOE","DEV",""
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","Username","Password","Trading Group"
"Pitch","127.0.0.1","127.0.0.2","10504","CBOE","test",""
"Pitch","127.0.0.1","127.0.0.2","10507","CBOE","test",""
"Type","Unit","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","Username","Session Sub Id","Password","Trading Group"
"Spin","mcp_ss_01","127.0.0.1","127.0.0.2","18998","CBOE","0023","s1cboe",""
"Spin","mcp_ss_01","127.0.0.1","127.0.0.2","18998","CBOE","0024","s2cboe",""
"Spin","mcp_ss_01","127.0.0.1","127.0.0.2","18998","CBOE","0025","s3cboe",""
```

#### viewPortAttributes

Use this command to retrieve CSV formatted data of your order handler ports and their associated attribute information. The data will reflect the same information presented in the View Port Attributes Info available under the More Options link in the Customer Web Portal Ports Dashboard and is subject to change. Each port type will have its own header row and a blank line will be inserted between port types. The attribute label is given in the leftmost column, with the right-side columns showing the setting for each port (IP Port values given in the header row). The firm name will also be presented in the header row along with the port type.

**Table 1. viewPortAttributes**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewPortAttributes |

Example Response

```
"CBOE Trading, Inc., FIX, IP Port","10103","10104","10105","10106","10107"
"Authentication","","","","",""
"Sender Comp Id","CBOE","CBOE","CBOE","CBOE","CBOE"
"Sender Sub Id","0004","0005","0006","0007","0008"
"Target Comp Id","CBOE","CBOE","CBOE","CBOE","CBOE"
"Target Sub Id","DEV","DEV","DEV","DEV","DEV"
"Attributes","","","","",""
"Allowed Clearing MPID(s)","CBOE","CBOE","CBOE","CBOE","CBOE"
"Default Clearing MPID","","","","",""
"Bill To","","","","",""
"Allow Test Symbols Only","No","No","No","No","No"
"Allow Pre-market","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow Post-market","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow Short Sales","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow ISO","CBOE: Yes","CBOE: No","CBOE: No","CBOE: Yes","CBOE: Yes"
"Allow Directed ISO","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Default Routing Instruction","R (Route)","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)" 
"Default Exec. Instruction","None","None","None","None","None"
"Maximum Order Size","CBOE: 25000","CBOE: 25000","CBOE: 25000","CBOE: 25000","CBOE: 25000"
"Maximum Order Dollar Value","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Port Order Rate Threshold","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Default Price Sliding","Display price sliding","Display price sliding","Display price sliding","Display price sliding","Display price sliding"
"Default Pricing Sliding (Hidden Order Override)","Use displayed setting","Use displayed setting","Use displayed setting","Use displayed setting","Use displayed setting"
"Cancel on Disconnect","Cancel Continuous Book Orders Only","Cancel Continuous Book Orders Only","Cancel Continuous Book Orders Only","Cancel Continuous Book Orders Only","Cancel Continuous Book Orders Only"
"Send Trade Breaks","None","None","None","None","None"
"Default MTP Value","None","None","None","None","None"
"Report MTP Fields","No","No","No","No","No"
"Allow MTP Decrement Override","No","No","No","No","Yes"
"Allow Sponsored Participant MTP Control","No","No","No","No","No"
"Concatenate CompId and SubId","No","No","No","No","No"
"Cancel on Reject","No","No","No","No","No"
"Report Working Price","Yes","Yes","Yes","Yes","No"
"Unique Wash Execution IDs","No","No","No","No","No"
"Opt-out of PITCH Obfuscation","No","No","No","No","No"
"Enable State Change Tracking","No","No","No","No","No"
"Send 2nd Liquidity Character","No","No","No","No","No"
"Decrement Remainder Only","No","No","No","No","No"
"Restate on Reload","Yes","Yes","Yes","Yes","Yes"
"Send Fix tag 40 (order type)","No","No","No","No","No"
"Send Fix tag 47 (capacity)","No","No","No","No","No"
"Microsecond Timestamp Granularity","No","No","No","No","No"
"Fat Finger % - Limit Price < $1","CBOE: 70","CBOE: 70","CBOE: 70","CBOE: 70","CBOE: 70"
"Fat Finger % - Limit Price >= $1 and < $10","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $10 and < $50","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $50 and < $100","CBOE: 18","CBOE: 18","CBOE: 18","CBOE: 18","CBOE: 18"
"Fat Finger % - Limit Price >= $100 and < $500","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $500","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price < $1","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $1 and < $10","CBOE: 100","CBOE: 100","CBOE: 100","CBOE: 100","CBOE: 100"
"Fat Finger CENTS - Limit Price >= $10 and < $50","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $50 and < $100","CBOE: 200","CBOE: 200","CBOE: 200","CBOE: 200","CBOE: 200"
"Fat Finger CENTS - Limit Price >= $100 and < $500","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Reject Orders on DROP Port Disconnect","No","No","No","No","No"
"Reject Orders on DROP Port Timeout (sec)","30","30","30","30","30"
"Cancel Open Orders on DROP Port Disconnect","No","No","No","No","No"
"Gross Daily Risk Limit Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Gross Daily Risk Market Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Net Daily Risk Limit Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Net Daily Risk Market Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Send Fix tag 9303 (routing instruction)","No","No","No","No","No"
"Default Attributed Quote","Never","Never","Never","Never","Never"
"Crossed Market Reject/Cancel","No","No","No","No","No"
"Send Peg Restatements","No Peg restatements","No Peg restatements","No Peg restatements","No Peg restatements","No Peg restatements"
"Enable FIX V2 (routing_v2)","No","No","No","No","No"
"Route Instruction","Routable","Routable","Routable","Routable","Routable"
"Route Strategy","ROUT","ROUT","ROUT","ROUT","ROUT"
"Route Delivery","Route to Improve - ParD","Route to Improve - ParD","Route to Improve - ParD","Route to Improve - ParD","Route to Improve - ParD"
"Session Close Handling","Send Cancels","Send Cancels","Send Cancels","Send Cancels","Send Cancels"
"Default ExtendedExecInst","None","None","None","None","None"
"Cancel on Halt","Cancel None","Cancel None","Cancel None","Cancel None","Cancel None"
"Order Persistence on ME Disconnect","Yes","Yes","Yes","Yes","Yes"
"Duplicative Order Seconds","CBOE: 4","CBOE: 4","CBOE: 4","CBOE: 4","CBOE: 4"
"Duplicative Order Count","CBOE: 10","CBOE: 10","CBOE: 10","CBOE: 10","CBOE: 10"
"Duplicative Order Action","CBOE: Off","CBOE: Off","CBOE: Off","CBOE: Off","CBOE: Off"
"Trading Group","","","","",""
"CBOE Trading, Inc., BOE, IP Port","10100","10101","10102"
"Authentication","","",""
"Username","CBOE","CBOE","CBOE"
"Sender Sub Id","0001","0002","0003"
"Password","bz1cboe","bz2cboe","bz3cboe"
"Attributes","","",""
"Allowed Clearing MPID(s)","CBOE","CBOE","CBOE"
"Default Clearing MPID","CFAA","CFAA","CFAA"
"Bill To","","",""
"Allow Test Symbols Only","No","No","No"
"Allow Pre-market","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow Post-market","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow Short Sales","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow ISO","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow Directed ISO","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Default Routing Instruction","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)"
"Default Exec. Instruction","None","None","None"
"Maximum Order Size","CBOE: 25000","CBOE: 25000","CBOE: 25000"
"Maximum Order Dollar Value","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Port Order Rate Threshold","CBOE: ","CBOE: ","CBOE: "
"Default Price Sliding","Display price sliding","Display price sliding","Display price sliding"
"Default Pricing Sliding (Hidden Order Override)","Use displayed setting","Use displayed setting","Use displayed setting"
"Cancel on Disconnect","Cancel Continuous Book Orders Only","Cancel Continuous Book Orders Only","Cancel Continuous Book Orders Only"
"Send Trade Breaks","None","None","None"
"Default MTP Value","None","None","None"
"Allow MTP Decrement Override","No","No","No"
"Allow Sponsored Participant MTP Control","No","No","No"
"Cancel on Reject","No","No","No"
"Opt-out of PITCH Obfuscation","No","No","No"
"Decrement Remainder Only","No","No","No"
"Fat Finger % - Limit Price < $1","CBOE: 70","CBOE: 70","CBOE: 70"
"Fat Finger % - Limit Price >= $1 and < $10","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $10 and < $50","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $50 and < $100","CBOE: 18","CBOE: 18","CBOE: 18"
"Fat Finger % - Limit Price >= $100 and < $500","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $500","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price < $1","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $1 and < $10","CBOE: 100","CBOE: 100","CBOE: 100"
"Fat Finger CENTS - Limit Price >= $10 and < $50","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $50 and < $100","CBOE: 200","CBOE: 200","CBOE: 200"
"Fat Finger CENTS - Limit Price >= $100 and < $500","CBOE: None","CBOE: None","CBOE: None"
"Reject Orders on DROP Port Disconnect","No","No","No"
"Reject Orders on DROP Port Timeout (sec)","30","30","30"
"Cancel Open Orders on DROP Port Disconnect","No","No","No"
"Gross Daily Risk Limit Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: "
"Gross Daily Risk Market Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: "
"Net Daily Risk Limit Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: "
"Net Daily Risk Market Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: "
"Default Attributed Quote","Never","Never","Never"
"Crossed Market Reject/Cancel","No","No","No"
"Send Peg Restatements","No Peg restatements","No Peg restatements","No Peg restatements"
"Route Instruction","Routable","Routable","Routable"
"Route Strategy","ROUT","ROUT","ROUT"
"Route Delivery","Route to Improve - ParD","Route to Improve - ParD","Route to Improve - ParD"
"Default ExtendedExecInst","None","None","None"
"Cancel on Halt","Cancel None","Cancel None","Cancel None"
"Order Persistence on ME Disconnect","Yes","Yes","Yes"
"Duplicative Order Seconds","CBOE: 4","CBOE: 4","CBOE: 4"
"Duplicative Order Count","CBOE: 10","CBOE: 10","CBOE: 10"
"Duplicative Order Action","CBOE: Off","CBOE: Off","CBOE: Off"
"Trading Group","","",""
```

### Symbol Data

```
BYX Exchange
https://api-account.cboe.com/byx/account/symbol_data/
BZX Exchange
https://api-account.cboe.com/bzx/account/symbol_data/
EDGX Exchange
https://api-account.cboe.com/edgx/account/symbol_data/
EDGA Exchange
https://api-account.cboe.com/edga/account/symbol_data/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BYX Exchange
https://api.batstrading.com/byx/account/symbol_data/
BZX Exchange
https://api.batstrading.com/bzx/account/symbol_data/
EDGX Exchange
https://api.batstrading.com/edgx/account/symbol_data/
EDGA Exchange
https://api.batstrading.com/edga/account/symbol_data/
```

Use this API to retrieve current top-of-book symbol data for all US equity symbols on the selected exchange. The data will be returned in an XML format.

API requests for symbol data should be sent not more than once per 30-second period. More frequent requests will not provide more frequent updates.

Example Response

```
<cboe>
<stats vol="12345" orders="23456"/>
<symbols timestamp="2015-09-08 09:30:00" count="1111">
<symbol name="FOO" vol="11111" asksz="0" askpx="0.0" bidsz="0" bidpx="0.0" last="142.85" matched="123" routed="234"/>
<symbol name="BAR" vol="22222" asksz="0" askpx="0.0" bidsz="0" bidpx="0.0" last="29.95" matched="234" routed="345"/>
</symbols>
</cboe>
```

### EDGX/BZX Top-of-Book (REST/JSON)

```
EDGX Exchange
https://api-account.cboe.com/edgx/account/top/
BZX Exchange
https://api-account.cboe.com/bzx/account/top/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
EDGX Exchange
https://api.batstrading.com/edgx/account/top/
BZX Exchange
https://api.batstrading.com/bzx/account/top/
```

Use this API to retrieve current top-of-book symbol data for all equity symbols. The data will be returned in a JSON format.

API requests for symbol data should be sent not more than once per second. More frequent requests will not provide more frequent updates.

Example Response

```
{
    "updateTime":"2017-08-30T17:10:18-04:00",
    "data":[{
        "volume":960681,
        "bidPrice":0.0,
        "name":"SPY",
        "lastPrice":245.96,
        "askSize":0,
        "bidSize":0,
        "askPrice":0.0,
        "routed":400,
        "matched":960281}]
}
```

### Book Data

```
BYX Exchange
https://api-account.cboe.com/byx/account/book/<symbol>/data/
BZX Exchange
https://api-account.cboe.com/bzx/account/book/<symbol>/data/
EDGX Exchange
https://api-account.cboe.com/edgx/account/book/<symbol>/data/
EDGA Exchange
https://api-account.cboe.com/edga/account/book/<symbol>/data/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BYX Exchange
https://api.batstrading.com/byx/account/book/<symbol>/data/
BZX Exchange
https://api.batstrading.com/bzx/account/book/<symbol>/data/
EDGX Exchange
https://api.batstrading.com/edgx/account/book/<symbol>/data/
EDGA Exchange
https://api.batstrading.com/edga/account/book/<symbol>/data/
```

View current depth-of-book data for the selected symbol on the selected exchange.

API requests for book data should be sent not more than once per 5-second period. More frequent requests will not provide more frequent data updates.

Example Response

```
{
  "reload": 5000,
  "data": {
    "symbol": "FOOA",
    "timestamp": "14:39:01",
    "company": "FOO CORP",
    "volume": 23456,
    "orders": 123,
    "asks": [
      [200,5.24],
      [100,5.25]
    ],
    "bids": [
      [200,5.26],
      [100,5.23]
    ],
    "tick_type": "",
    "prev": 5.26,
    "high": 5.24,
    "low": 5.23,
    "status": "Trying",
    "trades": [
      ["15:59:59", 300, "4.59"],
      ["15:59:59",200,"4.60"],
      ["15:59:59",100,"4.59"],
      ["15:59:58",100,"4.61"],
      ["15:59:56",300,"4.62"],
      ["15:59:56",20,"4.61"],
      ["15:59:56",18,"4.62"],
      ["15:59:55",235,"4.62"],
      ["15:59:55",94,"4.61"],
      ["15:59:55",6,"4.61"]
    ],
    "hrname": ""
  },
  "success": true,
  "statusText": "",
  "statusCode": "200",
  "status": "200: "
}
```

## U.S. Options Services

Services available through the Secure Web API for C1, BZX, EDGX, and C2 Options Exchanges.

**Table 1. U.S. Options Services**

| Name | Path | Description |
|---|---|---|
| Port Controls | /account/port_controls/ | Used by Customers and Service Bureaus to manage their ports and default port settings. |
| Market Maker | /account/optmarket_maker/ | Used by Registered Market Makers to register symbols for automated quotation. |
| Risk Management | /account/risk_manager/ | Used by Options Customers to manage the risk of over-execution. |
| Ports Information Service | /account/ports_info/ | Used by Options Customers to receive configuration information about their ports. |
| Clearing Edit Service | /account/clearing_edits/ | Used by Options Customers to make post-trade corrections to their options executions |

### Port Controls

```
Cboe Options Exchange 
https://api-account.cboe.com/cone/account/port_controls/
BZX Options Exchange
https://api-account.cboe.com/opt/account/port_controls/
C2 Options Exchange
https://api-account.cboe.com/ctwo/account/port_controls/
EDGX Options Exchange
https://api-account.cboe.com/exo/account/port_controls/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
Cboe Options Exchange 
https://api.batstrading.com/cone/account/port_controls/
BZX Options Exchange
https://api.batstrading.com/opt/account/port_controls/
C2 Options Exchange
https://api.batstrading.com/ctwo/account/port_controls/
EDGX Options Exchange
https://api.batstrading.com/exo/account/port_controls/
```

#### viewClient

Use this command to retrieve current default settings for all of your firm’s ports. Customers and Service Bureaus must specify their four-character Cboe Firm ID.

**Table 1. viewClient**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewClient |
| client | Y | Customer or Service Bureau’s Cboe Firm ID |
| clearing | N | The Executing Firm ID (EFID) used in the relationship (required when multiple EFIDs are in use) |

Example Response

```
{"code":"200", "data":[ {"maxShareSize":999999, "maxNotionalValue":0, "allowIso":"1", "blockNewOrders":"0", "executionCollar1":"50", "executionCollar2":"25", "executionCollar3":"15", "executionCollar4":"10", "executionCollar5":"10", ""dailyLimitCutoff":"100000000", "dailyLimitNetCutoff":"100000000", "dailyMktCutoff":"100000000", "dailyMktNetCutoff":"100000000", "dupOrderAction":"R", "dupOrderCount":"1000", "dupOrderSeconds":"5"} ]}
```

#### setClient

Use this command to update settings for all of your firm’s ports. Customers and Service Bureaus must specify their four character Cboe Firm ID.

**Table 1. setClient**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | setClient |
| Client | Y | Customer or Service Bureau’s Cboe Firm ID |
| allowIso | N | 0=restrict, 1=allow |
| allowDirectedIso | N | 0=restrict, 1=allow |
| blockNewOrders | N | 0=do not block, 1=block |
| cancelOpenOrders | N | 0=do not cancel, 1=cancel |
| cancelDayOrders | N | 0=do not cancel, 1=cancel |
| maxNotionalValue | N | 0=use default max notional |
| maxContractSize | N | 0=use default max size |
| executionCollarPreMkt1 | N | Pre-Market Fat Finger % Tier 1 (< $2)** |
| executionCollarPreMkt2 | N | Pre-Market Fat Finger % Tier 2 (>= $2 and <= $5)** |
| executionCollarPreMkt3 | N | Pre-Market Fat Finger % Tier 3 (>= $5.01 and < =$10)** |
| executionCollarPreMkt4 | N | Pre-Market Fat Finger % Tier 4 (>= $10.01 and <= $20)** |
| executionCollarPreMkt5 | N | Pre-Market Fat Finger % Tier 5 (>= $20.01 and <= $50)** |
| executionCollarPreMkt6 | N | Pre-Market Fat Finger % Tier 6 (>= $50.01 and <= $100)** |
| executionCollarPreMkt7 | N | Pre-Market Fat Finger % Tier 7 (>=$100.01)** |
| executionCollarRegMkt1 | N | Regular Session Fat Finger % Tier 1 (< $2)** |
| executionCollarRegMkt2 | N | Regular Session Fat Finger % Tier 2 (>= $2 and <= $5)** |
| executionCollarRegMkt3 | N | Regular Session Fat Finger % Tier 3 (>= $5.01 and < =$10)** |
| executionCollarRegMkt4 | N | Regular Session Fat Finger % Tier 4 (>= $10.01 and <= $20)** |
| executionCollarRegMkt5 | N | Regular Session Fat Finger % Tier 5 (>= $20.01 and <= $50)** |
| executionCollarRegMkt6 | N | Regular Session Fat Finger % Tier 6 (>= $50.01 and <= $100)** |
| executionCollarRegMkt7 | N | Regular Session Fat Finger % Tier 7 (>=$100.01)** |
| executionCollarDollarPreMkt1 | N | Pre-Market Fat Finger Dollar Tier 1 (< $2)** |
| executionCollarDollarPreMkt2 | N | Pre-Market Fat Finger Dollar Tier 2 (>= 2 and <= $5)** |
| executionCollarDollarPreMkt3 | N | Pre-Market Fat Finger Dollar Tier 3 (>= $5.01 and <= $10)** |
| executionCollarDollarPreMkt4 | N | Pre-Market Fat Finger Dollar Tier 4 (>= $10.01 and <= $20)** |
| executionCollarDollarPreMkt5 | N | Fat Finger Dollar Tier 5 (>= $20.01 and < $50)** |
| executionCollarDollarPreMkt6 | N | Pre-Market Fat Finger Dollar Tier 6 (>=$50.01 and >=$100) |
| executionCollarDollarRegMkt1 | N | Regular Session Fat Finger % Tier 1 (< $2)** |
| executionCollarDollarRegMkt2 | N | Regular Session Fat Finger % Tier 2 (>= $2 and <= $5)** |
| executionCollarDollarRegMkt3 | N | Regular Session Fat Finger % Tier 3 (>= $5.01 and < =$10)** |
| executionCollarDollarRegMkt4 | N | Regular Session Fat Finger % Tier 4 (>= $10.01 and <= $20)** |
| executionCollarDollarRegMkt5 | N | Regular Session Fat Finger % Tier 5 (>= $20.01 and <= $50)** |
| executionCollarDollarRegMkt6 | N | Regular Session Fat Finger % Tier 6 (>= $50.01 and <= $100)** |
| exceptionClass1ExecutionCollarPreMkt1 (C1 Only) | N | Pre-Market Fat Finger % Tier 1 (< $2)** |
| exceptionClass1ExecutionCollarPreMkt2 (C1 Only) | N | Pre-Market Fat Finger % Tier 2 (>= $2 and <= $5)** |
| exceptionClass1ExecutionCollarPreMkt3 (C1 Only) * | N | Pre-Market Fat Finger % Tier 3 (>= $5.01 and < =$10)** |
| exceptionClass1ExecutionCollarPreMkt4 (C1 Only) | N | Pre-Market Fat Finger % Tier 4 (>= $10.01 and <= $20)** |
| exceptionClass1ExecutionCollarPreMkt5 (C1 Only) | N | Pre-Market Fat Finger % Tier 5 (>= $20.01 and <= $50)** |
| exceptionClass1ExecutionPreMkt6 (C1 Only) | N | Pre-Market Fat Finger % Tier 6 (>= $50.01 and <= $100)** |
| exceptionClass1ExecutionCollarPreMkt7 (C1 Only) | N | Pre-Market Fat Finger % Tier 7 (>=$100.01)** |
| exceptionClass1ExecutionCollarRegMkt1 (C1 Only) | N | Regular Session Fat Finger % Tier 1 (< $2)** |
| exceptionClass1ExecutionCollarRegMkt2 (C1 Only) | N | Regular Session Fat Finger % Tier 2 (>= $2 and <= $5)** |
| exceptionClass1ExecutionCollarRegMkt3 (C1 Only) | N | Regular Session Fat Finger % Tier 3 (>= $5.01 and < =$10)** |
| exceptionClass1ExecutionCollarRegMkt4 (C1 Only) | N | Regular Session Fat Finger % Tier 4 (>= $10.01 and <= $20)** |
| exceptionClass1ExecutionCollarRegMkt5 (C1 Only) | N | Regular Session Fat Finger % Tier 5 (>= $20.01 and <= $50)** |
| exceptionClass1ExecutionCollarRegMkt6 (C1 Only) | N | Regular Session Fat Finger % Tier 6 (>= $50.01 and <= $100)** |
| exceptionClass1ExecutionCollarRegMkt7 (C1 Only) | N | Regular Session Fat Finger % Tier 7 (>=$100.01)** |
| exceptionClass1ExecutionCollarDollarPreMkt1 (C1 Only) | N | Pre-Market Fat Finger Dollar Tier 1 (< $2)** |
| exceptionClass1ExecutionCollarDollarPreMkt2 (C1 Only) | N | Pre-Market Fat Finger Dollar Tier 2 (>= 2 and <= $5)** |
| exceptionClass1ExecutionCollarDollarPreMkt3 (C1 Only) | N | Pre-Market Fat Finger Dollar Tier 3 (>= $5.01 and <= $10)** |
| exceptionClass1ExecutionCollarDollarPreMkt4 (C1 Only) | N | Pre-Market Fat Finger Dollar Tier 4 (>= $10.01 and <= $20)** |
| exceptionClass1ExecutionCollarDollarPreMkt5 (C1 Only) | N | Fat Finger Dollar Tier 5 (>= $20.01 and < $50)** |
| exceptionClass1ExecutionCollarDollarPreMkt6 (C1 Only) | N | Pre-Market Fat Finger Dollar Tier 6 (>=$50.01 and >=$100) |
| exceptionClass1ExecutionCollarDollarRegMkt1 (C1 Only) | N | Regular Session Fat Finger % Tier 1 (< $2)** |
| exceptionClass1ExecutionCollarDollarRegMkt2 (C1 Only) | N | Regular Session Fat Finger % Tier 2 (>= $2 and <= $5)** |
| exceptionClass1ExecutionCollarDollarRegMkt3 (C1 Only) | N | Regular Session Fat Finger % Tier 3 (>= $5.01 and < =$10)** |
| exceptionClass1ExecutionCollarDollarRegMkt4 (C1 Only) | N | Regular Session Fat Finger % Tier 4 (>= $10.01 and <= $20)** |
| exceptionClass1ExecutionCollarDollarRegMkt5 (C1 Only) | N | Regular Session Fat Finger % Tier 5 (>= $20.01 and <= $50)** |
| exceptionClass1ExecutionCollarDollarRegMkt6 (C1 Only) | N | Regular Session Fat Finger % Tier 6 (>= $50.01 and <= $100)** |
| dupOrderAction | N | Action When Duplicative Orders are Encountered: O=Off (no action), R=Reject Orders, D=Disable Port Note the key for duplicative order checks are: Clearing EFID, Symbol, Price, Size and Side (i.e. Buy or not) |
| dupOrderCount | N | Order Count Threshold |
| dupOrderSeconds | N | Time Threshold in seconds |
| Clearing | N | The EFID used in the relationship (required when multiple EFIDs are in use) |

* Note that at least one of the optional parameters must be specified. You may supply one or multiple optional parameters in a single request.

** Refer to the Cboe Titanium U.S. Equities/Options Web Portal Port Controls Specification for more information on this parameter.

Example Response

```
{"code":"200", "msg":""}
```

### Market Maker Registration Service

```
BZX Options Exchange
https://api-account.cboe.com/opt/account/optmarket_maker/
Cboe Options Exchange 
https://api-account.cboe.com/cone/account/optmarket_maker/
C2 Options Exchange
https://api-account.cboe.com/ctwo/account/optmarket_maker/
EDGX Options Exchange
https://api-account.cboe.com/exo/account/optmarket_maker/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
BZX Options Exchange
https://api.batstrading.com/opt/account/optmarket_maker/
Cboe Options Exchange 
https://api.batstrading.com/cone/account/optmarket_maker/
C2 Options Exchange
https://api.batstrading.com/ctwo/account/optmarket_maker/
EDGX Options Exchange
https://api.batstrading.com/exo/account/optmarket_maker/
```

#### viewSeriesStatus

View status information on all currently-registered series.

**Table 1. viewSeriesStatus**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewSeriesStatus |
| identifier | Y | Market marker ID |
| tradingDay | N | View series status for current trading day or next trading day. Valid values are `today`or `next_trading_day`. Defaults to `today` if not supplied. |

Example Response

```
{
    "msg": "",
    "code": "200",
    "data": {
        "underlying": {
            "MMQA": {
                "count": 8,
                "regType": 0,
                "underlying": "P"
            }
        },
        "upload_list": {
            "MMQA": "2012-06-29 13:30:09.212097"
        },
        "series_count": {
            "MMQA":"8"
        }
    }
}
```

#### viewRegisteredSeries

View series registered for both the current trading session and the next trading session.

**Table 1. viewRegisteredSeries**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewRegisteredSeries |
| identifier | Y | Market Maker ID |
| dt | N | View series registered for the selected date, in YYYY-MM-DD format. Defaults to current date if not supplied. |

Example Response

```
{"msg":"",
 "code":"200",
 "data":[
    {"strike_price":10.000,
     "bats_symbol":"000333",
     "expiration_date":"3006-01-01",
     "osi_symbol":"A     060101P00010000",
     "put_call_flag":"P",
     "underlying":"A"},
    {"strike_price":10.000,
     "bats_symbol":"000111",
     "expiration_date":"3006-01-01",
     "osi_symbol":"A     060101C00010000",
     "put_call_flag":"C",
     "underlying":"A"}
 ]
}
```

#### storeSeriesList

Upload a series definition in a selected symbology format.

**Table 1. storeSeriesList**

| Parameter | Required | Description |
|---|---|---|
| command | Y | storeSeriesList |
| identifier | Y | Market Maker ID |
| series | Y | Comma-delimited list of underlying symbols. |
| mode | N | Valid values are: `replace` (default), `add`, `remove` |

Example Responses

C1/EDGX Options

```
{
    "msg": "Series list updated: Expired 0 series, Added 32 series",
    "code": "200",
    "data": {
        "upload_list": {
            "MMQA": "2012-06-30 15:08:54.685734"
        },
        "risk": "Your new registrations will increase your appointment fees from $1.99 to $2.00. This
 will increase your fee this month.",
        "state": 1,
        "series_count": {
            "MMQA": "2"
        },
        "underlying": {
            "MMQA": [{
                "count": 2,
                "regType": 0,
                "underlying": "A"
            }]
        }
    }
}
```

C2 Options/BZX Options

```
{
    "msg": "Series list updated: Expired 0 series, Added 32 series",
    "code": "200",
    "data": {
        "upload_list": {
            "MMQA": "2012-06-30 15:08:54.685734"
        },
        "state": 1,
        "series_count": {
            "MMQA": "2"
        },
        "underlying": {
            "MMQA": [{
                "count": 2,
                "regType": 0,
                "underlying": "A"
            }]
        }
    }
}
```

#### clearAllSeries

Remove all currently-registered series.

**Table 1. clearAllSeries**

| Parameter | Required | Description |
|---|---|---|
| command | Y | clearAllSeries |
| identifier | Y | Market Maker ID |

Example Response

```
{"msg":"All series expired","code":"200","data":[]}
```

#### removeSymbol

Remove all registered series for a specific underlying symbol.

**Table 1. removeSymbol**

| Parameter | Required | Description |
|---|---|---|
| command | Y | removeSymbol |
| identifier | Y | Market Maker ID |
| symbol | Y | Underlying symbol to remove |

Example Response

```
{"msg":"Underlying symbol list updated: Added 0 underlying symbols, expired 1 underlying symbols",
 "code":"200",
 "data":[]
}
```

### Risk Management Service

```
Cboe Options Exchange 
https://api-account.cboe.com/cone/account/risk_manager/
BZX Options Exchange
https://api-account.cboe.com/opt/account/risk_manager/
C2 Options Exchange
https://api-account.cboe.com/ctwo/account/risk_manager/
EDGX Options Exchange
https://api-account.cboe.com/exo/account/risk_manager/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
Cboe Options Exchange 
https://api.batstrading.com/cone/account/risk_manager/
BZX Options Exchange
https://api.batstrading.com/opt/account/risk_manager/
C2 Options Exchange
https://api.batstrading.com/ctwo/account/risk_manager/
EDGX Options Exchange
https://api.batstrading.com/exo/account/risk_manager/
```

#### viewExecutingFirms

View available executing firm ID’s.

**Table 1. viewExecutingFirms**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewExecutingFirms |

Example Response

```
{"msg":"Success",
 "code":"200",
 "data":[{"executingFirmId":"CBOE"}]
}
```

#### viewRules

View all rules stored for an individual trading session.

**Table 1. viewRules**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewRules |
| identifier | N | Executing Firm ID |
| tradingDay | N | 'today' is currently effective rules 'next' (default) is for the next trading date's rules |

Example Response

Note that risk_group_type is only returned for C1, C2, and EDGX Options. C2 Options and EDGX Options only support a risk_group_type value = `default`.

```
     {
         "msg":"",
         "code":"200",
         "data":[
            {"risk_group_type":"default",
             "efid_level_limit":"F",
             "limit_value":1000000,
             "millis":1000,
             "limit_type":"rate_ntnl",
             "risk_root":"XSP",
             "executing_firm_id":"CBOE"},
            {"risk_group_type":"gth",
             "efid_level_limit":"F",
             "limit_value":500000,
             "millis":1000,
             "limit_type":"rate_ntnl",
             "risk_root":"XSP",
             "executing_firm_id":"CBOE"},
            {"risk_group_type":"default",
             "efid_level_limit":"F",
             "limit_value":1000000,
             "millis":1000,
             "limit_type":"rate_ntnl",
             "risk_root":"QQQ",
             "executing_firm_id":"CBOE"},
            {"risk_group_type":"default",
             "efid_level_limit":"F",
             "limit_value":1000000,
             "millis":1000,
             "limit_type":"rate_ntnl",
             "risk_root":"IWM",
             "executing_firm_id":"CBOE"}
         ]
        }
```

#### uploadRules

Upload a rule set for the next trading session.

**Table 1. uploadRules**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadRules |
| rules | Y | Comma-delimited list of rules to add. The list of rules is available in the File Format section of U.S. Cboe Titanium U.S. Options Risk Management Specification. |

Rule Format

Colon-separated list of values as follows:

```
        EFID:limit_type:risk_root:limit_value:millis:efid_level_limit:risk_group_type*
```

*Note that risk_group_type is only returned for C1, C2, and EDGX Options. C2 Options and EDGX Options only support a risk_group_type value = `default`.

Example Request

```
rules=CBOE:rate_ntnl:XSP:1000000:1000:F:default,CBOE:rate_ntnl:XSP:1000000:1000:F:gth,CBOE:rate_ntnl:QQQ:1000000:1000:F:default,CBOE:rate_ntnl:IWM:1000000:1000:F:default
```

Example Response

```
   {
     "msg":"Rules updated",
     "code":"200",
     "data":{
             "duplicateCount":0,
             "removeCount":4,
             "processedCount":4,
             "unknownList":[],
             "spacesCount":0,
             "addCount":4}
   }
```

Please see the the Cboe Titanium U.S. Options Risk Management Specification for upload times.

#### clearRules

Remove all currently-stored rules.

**Table 1. clearRules**

| Parameter | Required | Description |
|---|---|---|
| command | Y | clearRules |
| identifier | Y | The Executing Firm ID to clear, or `all`to clear rules for all executing firm IDs. |

Example Response

```
{"msg":"","code":"200","data":[]}
```

#### viewControls

View the risk management control values for the next trading session. Any values not previously specified will return the system defaults.

**Table 1. viewControls**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewControls |

Example Response

```
{
    "code":"200",
    "data":{
        "enableAtomicEFIDLimits": true,
        "excludeAuctionVolume": false,
        "capacityFractions": "C:0.20,U:0.50",
        "effectiveDtTm": "2026-03-10T02:30:00-05:00"
    }
}
```

#### uploadControls

Update the risk management control values for the next trading session. Any optional arguments not specified will remain as-is from the previous upload or system defaults.

**Table 1. uploadControls**

| Parameter | Required | Description |
|---|---|---|
| command | Y | uploadControls |
| enableAtomicEFIDLimits | N | "true" to enable, "false" to disable |
| excludeAuctionVolume | N | "true" to enable, "false" to disable |
| capacityFractions | N | Comma-delimited list of capacity letter code to fraction assignments, each of which comprises a colon-delimited capacity character fraction pair. |

Example Request

```
command=uploadControls&enableAtomicEFIDLimits=true&capacityFractions=C:0.30,U:0.60
```

Example Response

```
{
    "code":"200",
    "data":{
        "enableAtomicEFIDLimits": true,
        "excludeAuctionVolume": false,
        "capacityFractions": "C:0.30,U:0.60",
        "effectiveDtTm": "2026-03-10T02:30:00-05:00"
    }
}
```

If a TPH has never explicitly specified whether to enable atomic EFID limits, default behavior (false) applies and the return value will be false.

If a TPH has never explicitly specified whether to exclude auction volume, default behavior (false) applies and the return value will be false.

Any order capacity not included in the capacityFractions assignment list will be assigned a default value of 1.0 whether or not it was previously assigned a different value..

### Ports Information Service

```
Cboe Options Exchange 
https://api-account.cboe.com/cone/account/ports_info/
BZX Options Exchange
https://api-account.cboe.com/opt/account/ports_info/
C2 Exchange
https://api-account.cboe.com/ctwo/account/ports_info/
EDGX Options Exchange
https://api-account.cboe.com/exo/account/ports_info/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
Cboe Options Exchange 
https://api.batstrading.com/cone/account/ports_info/
BZX Options Exchange
https://api.batstrading.com/opt/account/ports_info/
C2 Exchange
https://api.batstrading.com/ctwo/account/ports_info/
EDGX Options Exchange
https://api.batstrading.com/exo/account/ports_info/
```

#### viewPortConnections

Use this command to retrieve CSV formatted data of your ports and their associated connection information. The data will reflect the same information presented in the View Port Connection Info available under the More Options link in the Customer Web Portal Ports Dashboard and is subject to change. Each port type will have its own header row and a blank line will be inserted between port types.

**Table 1. viewPortConnections**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewPortConnections |

Example Response

```
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","Username","Session Sub Id","Password","Trading Group","Allowed MPIDs"
"BOE","127.0.0.1","127.0.0.2","10100","CBOE","0001","bz1cboe","","CBOE"
"BOE","127.0.0.1","127.0.0.2","10101","CBOE","0002","bz2cboe","","CBOE"
"BOE","127.0.0.1","127.0.0.2","10102","CBOE","0003","bz3cboe","","CBOE"
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","SenderCompId","SenderSubId","TargetCompId","TargetSubId","Trading Group","Allowed MPIDs"
"FIX","127.0.0.1","127.0.0.2","10103","CBOE","0004","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10104","CBOE","0005","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10105","CBOE","0006","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10106","CBOE","0007","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10107","CBOE","0008","CBOE","DEV","","CBOE"
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","SenderCompId","SenderSubId","TargetCompId","TargetSubId","Trading Group"
"Odrop","127.0.0.1","127.0.0.2","10200","CBOE","0009","CBOE","DEV",""
"Odrop","127.0.0.1","127.0.0.2","10201","CBOE","0010","CBOE","DEV",""
"Type","Unit","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","Username","Session Sub Id","Password","Trading Group"
"Spin","mcp_ss_01","127.0.0.1","127.0.0.2","18998","CBOE","0023","s1cboe",""
"Spin","mcp_ss_01","127.0.0.1","127.0.0.2","18998","CBOE","0024","s2cboe",""
"Spin","mcp_ss_01","127.0.0.","127.0.0.2","18998","CBOE","0025","s3cboe",""
```

#### viewPortAttributes

Use this command to retrieve CSV formatted data of your order handler ports and their associated attribute information. The data will reflect the same information presented in the View Port Attributes Info available under the More Options link in the Customer Web Portal Ports Dashboard and is subject to change. Each port type will have its own header row and a blank line will be inserted between port types. The attribute label is given in the leftmost column, with the right-side columns showing the setting for each port (IP Port values given in the header row). The firm name will also be presented in the header row along with the port type.

**Table 1. viewPortAttributes**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewPortAttributes |

Example Response

```
"CBOE Trading, Inc., FIX, IP Port","10103","10104","10105","10106","10107"
"Authentication","","","","",""
"Sender Comp Id","CBOE","CBOE","CBOE","CBOE","CBOE"
"Sender Sub Id","0004","0005","0006","0007","0008"
"Target Comp Id","CBOE","CBOE","CBOE","CBOE","CBOE"
"Target Sub Id","DEV","DEV","DEV","DEV","DEV"
"Attributes","","","","",""
"Allowed Executing Firm Id(s)","CBOE","CBOE","CBOE","CBOE","CBOE"
"Default Executing Firm Id","CBOE","CBOE","CBOE","CBOE","CBOE"
"Bill To","","","","",""
"Allow Test Symbols Only","No","No","No","No","No"
"Allow Queuing on Halts","No","No","No","No","No"
"Allow ISO","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow Directed ISO","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Default Routing Instruction","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)","RND  (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)"
"Maximum Order Size","CBOE: 25000","CBOE: 25000","CBOE: 25000","CBOE: 25000","CBOE: 25000"
"Maximum Order Dollar Value","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Port Order Rate Threshold","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Default Price Sliding","Display price sliding","Display price sliding","Display price sliding","Display price sliding","Display price sliding"
"Cancel on Disconnect","Yes","Yes","Yes","Yes","Yes"
"Send Trade Breaks","None","None","None","None","None"
"Default MTP Value","None","None","None","None","None"
"Report MTP Fields","No","No","No","No","No"
"Allow MTP Decrement Override","No","No","No","No","No"
"Allow Sponsored Participant MTP Control","No","No","No","No","No"
"Concatenate CompId and SubId","No","No","No","No","No"
"Cancel on Reject","No","No","No","No","No"
"Report Working Price","No","No","No","No","No"
"Unique Wash Execution IDs","No","No","No","No","No"
"Enable State Change Tracking","No","No","No","No","No"
"Send 2nd Liquidity Character","No","No","No","No","No"
"Decrement Remainder Only","No","No","No","No","No"
"Restate on Reload","No","No","No","No","No"
"Send Fix tag 40 (order type)","No","No","No","No","No"
"Send Fix tag 47 (capacity)","No","No","No","No","No"
"Microsecond Timestamp Granularity","No","No","No","No","No"
"Fat Finger % - Limit Price < $1","CBOE: None","CBOE: 10","CBOE: 10","CBOE: 10","CBOE: 10"
"Fat Finger % - Limit Price >= $1 and < $10","CBOE: None","CBOE: 10","CBOE: 10","CBOE: 10","CBOE: 10"
"Fat Finger % - Limit Price >= $10 and < $50","CBOE: None","CBOE: 10","CBOE: 10","CBOE: 10","CBOE: 10"
"Fat Finger % - Limit Price >= $50 and < $100","CBOE: None","CBOE: 10","CBOE: 10","CBOE: 10","CBOE: 10"
"Fat Finger % - Limit Price >= $100 and < $500","CBOE: None","CBOE: 10","CBOE: 10","CBOE: 10","CBOE: 10"
"Fat Finger % - Limit Price >= $500","CBOE: None","CBOE: 10","CBOE: 10","CBOE: 10","CBOE: 10"
"Fat Finger CENTS - Limit Price < $1","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $1 and < $10","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $10 and < $50","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $50 and < $100","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $100 and < $500","CBOE: None","CBOE: None","CBOE: None","CBOE: None","CBOE: None"
"Reject Orders on DROP Port Disconnect","No","No","No","No","No"
"Reject Orders on DROP Port Timeout (sec)","30","30","30","30","30"
"Cancel Open Orders on DROP Port Disconnect","No","No","No","No","No"
"Gross Daily Risk Limit Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Gross Daily Risk Market Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Net Daily Risk Limit Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Net Daily Risk Market Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Send Fix tag 9303 (routing instruction)","No","No","No","No","No"
"Send Contra Capacity","No","No","No","No","No"
"Default Attributed Quote","Never","Never","Never","Never","Never"
"Crossed Market Reject/Cancel","No","No","No","No","No"
"Send Peg Restatements","No Peg restatements","No Peg restatements","No Peg restatements","No Peg restatements","No Peg restatements"
"Enable FIX V2 (routing_v2)","No","No","No","No","No"
"Route Instruction","Routable","Routable","Routable","Routable","Routable"
"Route Strategy","ROUT","ROUT","ROUT","ROUT","ROUT"
"Route Delivery","Route to Improve - ParD","Route to Improve - ParD","Route to Improve - ParD","Route to Improve - ParD","Route to Improve - ParD"
"Session Close Handling","Send Cancels","Send Cancels","Send Cancels","Send Cancels","Send Cancels"
"Order Persistence on ME Disconnect","Yes","Yes","Yes","Yes","Yes"
"Duplicative Order Seconds","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Duplicative Order Count","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Duplicative Order Action","CBOE: Off","CBOE: Off","CBOE: Off","CBOE: Off","CBOE: Off"
"Trading Group","","","","",""
"CBOE Trading, Inc., BOE, IP Port","10100","10101","10102"
"Authentication","","",""
"Username","CBOE","CBOE","CBOE"
"Sender Sub Id","0001","0002","0003"
"Password","bo1cboe","bo2cboe","bo3cboe"
"Attributes","","",""
"Allowed Executing Firm Id(s)","CBOE","CBOE","CBOE"
"Default Executing Firm Id","","",""
"Bill To","","",""
"Allow Bulk Updates","Yes","Yes","Yes"
"Allow Test Symbols Only","No","No","No"
"Allow Queuing on Halts","No","No","No"
"Allow ISO","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Allow Directed ISO","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Default Routing Instruction","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)","RND (Route, No Reroute, Parallel-D)"
"Maximum Order Size","CBOE: 25000","CBOE: 25000","CBOE: 25000"
"Maximum Order Dollar Value","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Port Order Rate Threshold","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Default Price Sliding","Display price sliding","Display price sliding","Display price sliding"
"Cancel on Disconnect","Yes","Yes","Yes"
"Send Trade Breaks","None","None","None"
"Default MTP Value","None","None","None"
"Allow MTP Decrement Override","No","No","No"
"Allow Sponsored Participant MTP Control","No","No","No"
"Cancel on Reject","No","No","No"
"Decrement Remainder Only","No","No","No"
"Fat Finger % - Limit Price < $1","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $1 and < $10","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $10 and < $50","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $50 and < $100","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $100 and < $500","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger % - Limit Price >= $500","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price < $1","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $1 and < $10","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $10 and < $50","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $50 and < $100","CBOE: None","CBOE: None","CBOE: None"
"Fat Finger CENTS - Limit Price >= $100 and < $500","CBOE: None","CBOE: None","CBOE: None"
"Reject Orders on DROP Port Disconnect","No","No","No"
"Reject Orders on DROP Port Timeout (sec)","30","30","30"
"Cancel Open Orders on DROP Port Disconnect","No","No","No"
"Gross Daily Risk Limit Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: "
"Gross Daily Risk Market Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: "
"Net Daily Risk Limit Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: "
"Net Daily Risk Market Order Notional Cutoff","CBOE: ","CBOE: ","CBOE: "
"Default Attributed Quote","Never","Never","Never"
"Crossed Market Reject/Cancel","No","No","No"
"Send Peg Restatements","No Peg restatements","No Peg restatements","No Peg restatements"
"Route Instruction","Routable","Routable","Routable"
"Route Strategy","ROUT","ROUT","ROUT"
"Route Delivery","Route to Improve - ParD","Route to Improve - ParD","Route to Improve - ParD"
"Order Persistence on ME Disconnect","Yes","Yes","Yes"
"Duplicative Order Seconds","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Duplicative Order Count","CBOE: Unlimited","CBOE: Unlimited","CBOE: Unlimited"
"Duplicative Order Action","CBOE: Off","CBOE: Off","CBOE: Off"
"Trading Group","","",""
```

### Clearing Edit Service

Used to make post-trade edits to options trades. This service automates the activities that can be performed through the Customer Web Portal Clearing Editor.

```
Cboe Options Exchange
https://api-account.cboe.com/cone/account/clearing_edits/
BZX Options Exchange
https://api-account.cboe.com/opt/account/clearing_edits/
C2 Options Exchange
https://api-account.cboe.com/ctwo/account/clearing_edits/
EDGX Options Exchange
https://api-account.cboe.com/exo/account/clearing_edits/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
Cboe Options Exchange
https://api.batstrading.com/cone/account/clearing_edits/
BZX Options Exchange
https://api.batstrading.com/opt/account/clearing_edits/
C2 Options Exchange
https://api.batstrading.com/ctwo/account/clearing_edits/
EDGX Options Exchange
https://api.batstrading.com/exo/account/clearing_edits/
```

#### viewTrades

Use this command to retrieve trade details. The response will provide the order_id, exec_id, item and other fields to help identify which executed trades to modify when using the addToQueue command. Note that even though an executed trade may show in the response, it may not be available for modification. For example, if a trade has been modified but not submitted to the clearinghouse, the trade will not be eligible for modification until the clearinghouse submission has been completed.

A response to viewTrades is limited to 10,000 trade records. The following table describes the filters that can be added to the viewTrades command in order to reduce the number of trades returned in the response.

**Table 1. viewTrades**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewTrades |
| clearing_corp | N | Valid values included OCC or CCUS. If field not specified, the value defaults to OCC. |
| account | Y |  |
| call_put_flag | Y | Valid values include the following. `C` = Call `P` = Put |
| capacity | Y | The capacity for the order. `C` = Customer `F` = Firm `M` = Market Maker `U` = Professional Customer `N` = Away Market Maker `B` = Broker-Dealer `J` = Joint Back Office `L` = Non-TPH Affiliate (C1 and C2 only) |
| cl_order_id (C1 only) | Y | ID chosen by client, 20 characters or less. Characters in ASCII range 33-126 are allowed, except for comma, semicolon, and pipe |
| clearing_account | Y | Referred to as Sub Account in GUI. |
| clearing_firm | Y | The EFID used in the relationship. Referred to as Broker Id in GUI. Returned as "executing_firm_id" in the viewTrades results. |
| cmta | Y |  |
| compression_trade (C1 only) | Y | Only `Y` and `N` values are accepted. |
| exec_id | Y | Cboe-created execution id. |
| floor_trader (C1 only) | Y |  |
| frequent_trader_id (C1 only) | Y | Identifies the frequent trader program in which the order is participating, 6 characters or less, ASCII 33-126 |
| occ_id (C1 only) | Y |  |
| open_close | Y | Valid values include the following. `O` = Open `C` = Close |
| order_id | Y | Cboe-created order id. |
| ors_eligible (C1 only) | Y | Only `Y` and `N` values are accepted. |
| osi_root | Y |  |
| price | Y |  |
| side | Y | Valid values are `B` and `S`. |
| status | Y | Valid values include the following. `<empty>` = (no filters) `all_matched` `all_related` `all_unmatched` `contra_unmatched` `modified` `pending` `related_unmatched` `unmatched` `unrelated_unmatched` |
| strategy_id (C1 only) | Y | Valid values include the following. `<single space>` = Unspecified `C` = Conversion `R` = Reversal `M` = Merger `S` = Short stock interests `J` = Jelly roll `F` = CompressionForum `B` = BoxSpread `A` = BoxSwap |
| strike_price | Y |  |

Example Response

```
{"code":"200",
 "data":[
  {"cmta":"111", "call_put_flag":"Call", "executing_firm_id":"CBOE", "size":"10", "capacity":"Customer", "ts":"09:30:01.02021", "expire_date":"3006-01-01", "cl_order_id":"AAAAAAAAAAAAA", "sub_account":"", "revision":0,"status":"", "strike_price":"10.0000", "order_id":"123456789012", "price":"0.6000", "account":"AAAA", "firm_sub_id":"0003", "firm_id":"CBOE", "position":"Open", "osi_root":"A", "exec_id":"01XX00001", "routing_broker":"", "item":"", "mod_contact_id":0,"side":"Buy", "clearing_opt_data": ""}
],
 "msg":""
}
```

#### viewEdits

Use this command to retrieve trades that have already been edited and recleared.

**Table 1. viewEdits**

| Parameter | Required | Description |
|---|---|---|
| command | Y | viewEdits |

Example Response

```
{"code":"200",
 "data":[
  {"status": "modified", "orig_position": "O", "changed": ["cmta", "position", "capacity", "account", "sub_account", "executing_firm_id", "size"], "strike_price": "10.0000", "order_id": "A827YN002VVU", "price": "0.4500", "exec_id": "RAAS00002", "cmta": "111", "firm_id": "CBOE", "mod_contact_id": 1, "account": "AAAAAAAA", "orig_sub_account": "<span class="blank">[blank]</span>", "osi_root": "A", "orig_capacity": "U", "executing_firm_id": "TEST", "call_put_flag": "Call", "size": "1", "on_behalf_of": "CBOE", "cl_order_id": "961544200", "capacity": "C", "symbol_id": "000111", "orig_cmta": "330", "orig_account": "0330CS4Q", "sub_account": "BBBB", "item": "2", "orig_executing_firm_id": "CBOE", "contact_name": "readonly readonly", "expire_date": "3006-01-01", "orig_size": "2", "position": "C", "transact_time": "09:30:00.13903", "side": "Sell", "clearing_opt_data": "", "revision": 1}],
 "msg":""
}
```

#### addToQueue

Use this command to submit changes to your trades. The command does not submit revisions to the clearinghouse for reclearing, but adds them to the queue. The request payload of the POST should be two key/value pairs. The keys are `id`and `data`. The values should be in JSON format.

When used to add multiple trades to the queue in a single method call, all trades must be be associated with the same clearing house. All trades in a single method call must be cleared either OCC or CCUS, but not a mixture of both.

The Cboe `order_id` and `exec_id` are always required in the ids object when submitting an addToQueue command. The `position, capacity, clearing_firm,` and `qty` values are required to submit an edit for a single trade. Changing `capacity` from `C` to another value may not be done using the API and can only be changed using the Clearing Editor. The remaining fields must be included as parts of the object; however, each field can be submitted as an empty string with the following exceptions:

- If editing an execution that has already been modified, the item information must be provided. The item can be obtained using the viewTrades command
- `firm_id, firm_sub_id,` and `routing_broker` must be provided in the object if editing the `clearing_firm` on a trade
- sub_account must not be empty for capacity 'M' or 'N' trades

For floor trades, the following fields may not be edited using the API and can only be edited via the Clearing Editor:

- osi_root
- call_put_flag
- expire_date
- strike_price
- price
- floor_trader
- contra_floor_trader

**Table 1. addToQueue**

| Parameter | Required | Description |
|---|---|---|
| command | Y | addToQueue |
| ids | Y | JSON-formatted list of objects. Each object must contain `order_id, exec_id` , `item, firm_id, firm_sub_id,` and `routing_broker` keys to identify the order(s) to be modified. |
| data | Y | JSON-formatted object. The keys for the objects are numbers indexed by zero. The values are objects that contain the following keys. `position, cmta, capacity, account, sub_account, clearing_firm, clearing_opt_data,` and `qty` The following are available on C1 only : `cl_order_id, frequent_trader_id, strategy_id, compression_trade,` and `ors_eligible` . |

viewTrades to addToQueue Translation Guide

The table below provides a guide to translating between the fields values received for the viewTrades command and the field values that should be sent for addToQueue.

**Table 2. viewTrades to addToQueue**

| viewTrades | addToQueue |
|---|---|
| Ids |  |
| order_id | order_id |
| exec_id | exec_id |
| item | Item |
| firm_id | firm_id |
| firm_sub_id | firm_sub_id |
| routing_broker | routing_broker |
| Data |  |
| account | account |
| capacity (value is spelled out) | capacity (value must be a single letter, see viewTrades values above) Changing capacity from `C` to another value may not be done using the API and can only be changed using the Clearing Editor. |
| reason_code | Valid values include the following: `I` = Input Error or Error Rpt. (Rule 6.6) `U` = Unmatched Trade (Rule 6.6) `K` = Unknown at Ord Entry (Rule 6.6) `M` = Manual Add (Rule 6.6) `O` = Other, Text Required (Rule 6.6) `A` = Allocation `N` = Trade Nullification (Rule 6.5) `J` = Trade Adjustment (Rule 6.5) `E` = Error Account (Rule 5.91) `S` = System Issue |
| reason_text | Reason for change of capacity if reason_code parameter = 0 |
| cl_order_id | cl_order_id (C1 only) |
| clearing_opt_data | clearing_opt_data |
| cmta | cmta |
| compression_trade (value is spelled out as "No" or Yes") | compression_trade ( C1 only ) value must be a single letter, `N` or `Y` |
| executing_firm_id | clearing_firm |
| frequent_trader_id | frequent_trader_id (C1 only) |
| ors_eligible (value is spelled out as "No" or Yes") | ors_eligible ( C1 only ) (value must be a single letter, `N` or `Y` ) |
| position (value is spelled out) | position (value must be `O` or `C`) |
| size | qty |
| strategy_id (value is spelled out) | strategy_id ( C1 only ) (value must be a single letter, see viewTrades values above) |
| sub_account | sub_account |

Ids Format:

JSON-formatted list of objects (do not include carriage returns):

```
ids:[
  {
"order_id": "

AAAAAAAAAAAAA",
"exec_id": "

01XX00001",
   "item": "",
   "firm_id": "CBOE",
   "firm_sub_id": "0002",
   "routing_broker": "CBOE"
  }
 ]
```

Data Format:

JSON-formatted list of objects (do not include carriage returns):

```
data:{
  "0": {
    "position": "C",
    "cmta": "111",
    "capacity": "C",
    "account": "AAAA",
    "sub_account": "",
    "clearing_firm": "CBOE",
    "qty": "10"
   }
 }
```

Example Request (Changing a Single Trade)

```
ids:[
  {
"order_id": "

AAAAAAAAAAAAA",
"exec_id": "

01XX00001",
   "item": "",
   "firm_id": "CBOE",
   "firm_sub_id": "0002",
   "routing_broker": "CBOE"
  }
 ]
data:{
  "0": {
    "position": "C",
    "cmta": "111",
    "capacity": "C",
    "account": "AAAA",
    "sub_account": "",
    "clearing_firm": "CBOE",
    "clearing_opt_data": ""
   }
 }
```

Example Request (Changing Multiple Trades)

When changing multiple executions, the `data` key must contain a single key. Multiple trades cannot be split with a single command.

```
Ids:[
  {
"order_id": "

AAAAAAAAAAAAA",
"exec_id": "

01XX00001",
   "item": "",
   "firm_id": "CBOE",
   "firm_sub_id": "0002",
   "routing_broker": "CBOE"
  }, {
"order_id": "

BBBBBBBBBBBB",
"exec_id": "

02XX00001",
   "item": "",
   "firm_id": "CBOE",
   "firm_sub_id": "0002",
   "routing_broker": "CBOE"
  }
 ]
data:{
  "0": {
    "position": "C",
    "cmta": "111",
    "capacity": "C",
    "account": "AAAA",
    "sub_account": "",
    "clearing_firm": "CBOE",
    "clearing_opt_data": ""
   }
 }
```

Example Request (Splitting an Execution)

Only one trade may be split at a time, and as a result, you must submit a single identifier in the `id` fields. The number of keys in the data object should match the number of times the trade was split. Data keys should be numbered, beginning with the first key equal to `0`, followed by `1`, etc.

The value of each key in the data object is a JSON-formatted object that contains all the keys described in the Parameter/Description table. The sum of the qty fields must equal the size of the trade being split. For example, if you are splitting an execution that was for ten contracts into two, five-lot trades, adding the qty fields of the two key/value objects in the data object will equal 10, the original quantity.

It is possible that one of the value objects will be the same as the original trade. For example, if you are splitting a trade for ten contracts into two, five-lot executions, and there are no changes to one of these five-lot trades, one of the two key/value pairs in the data object will have updates, while the other key/value pair will remain unchanged.

```
Ids:[
  {
"order_id": "

AAAAAAAAAAAAA",
"exec_id": "

01XX00001",
   "item": "",
   "firm_id": "CBOE",
   "firm_sub_id": "0002",
   "routing_broker": "CBOE"
  }
 ]
data:{
  "0": {
    "position": "C",
    "cmta": "111",
    "capacity": "C",
    "account": "AAAA",
    "sub_account": "",
    "clearing_firm": "CBOE",
    "clearing_opt_data": "",
    "qty": "2"
   }
 },
  "1": {
    "position": "O",
    "cmta": "222",
    "capacity": "U",
    "account": "BBBB",
    "sub_account": "",
    "clearing_firm": "CBOE",
    "clearing_opt_data": "",
    "qty": "8"
   }
 }
```

Example Response

```
{"code":"200",
 "msg":"Execution attribute changes queued"}
```

Reject Messaging

If an addToQueue command fails, the response will be an HTTP 500 status code with text indicating the reason for failure. Possible failure messages can included, but are not limited to the following:

- Invalid capacity type has been selected
- Invalid Broker Id has been selected
- If you have multiple orders to edit you cannot split the orders
- An unknown error occurred
- Could not re-allocate orders because the order sizes did not match

#### submitToOcc

Use this command to submit all queued trade modifications for reclearing.

Despite the name, the method submits OCC-cleared trade edits to the OCC for reclearing and submits CCUS-cleared trade edits to CCUS for reclearing. The method submitToClearing should be used going forward as the submitToOcc method will be deprecated in the future.

**Table 1. submitToOcc**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | submitToOcc |

Example Response

```
{"code":"200",
 "msg":"1 out of 1 executions successfully modified by Example User at FIRM"
}
```

#### submitToClearing (Effective as Early as Q3, 2026)

Use this command to submit all queued trade modifications for reclearing.

Queued trade edits associated with OCC-cleared products will be submitted to the OCC for reclearing, and trade edits associated with CCUS-cleared products will be submitted to CCUS for reclearing.

**Table 1. submitToClearing**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | submitToClearing |

Example Response

```
{"code":"200",
 "msg":"1 out of 1 executions successfully modified by Example User at FIRM"
}
```

## U.S. Futures Services

Services available through the US Secure Web API for Cboe Futures Exchange, LLC (CFE).

**Table 1. U.S. Futures Services**

| Name | Path | Description |
|---|---|---|
| Risk Management | /account/risk_manager/ | Used by CFE TPHs and Clearing Firms to manage the risk of over-execution. |
| Port Controls | /account/port_controls/ | Used by CFE TPHs and Clearing Firms to manage their ports and default port settings. |
| Ports Information Service | /account/ports_info/ | Used by CFE TPHs to receive configuration information about their ports. |
| Block/ECRP Trade Reporting Service | /account/block_ecrp/ | Used by Authorized Reporters (CFE TPH or TPH Related Party) to submit and accept Block and ECRP trades. |

### Risk Management Service

```
CFE 
https://api-account.cboe.com/cfe/account/risk_manager/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
CFE 
https://api.batstrading.com/cfe/account/risk_manager/
```

#### viewExecutingFirms

View available executing firm ID’s.

**Table 1. viewExecutingFirms**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | viewExecutingFirms |

Example Response

```
{"msg":"Success",
 "code":"200",
 "data":[{"executingFirmId":"CBOE"}]
}
```

#### viewRules

View all rules stored for an individual trading date.

**Table 1. viewRules**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | viewRules |
| Identifier | Y | Executing Firm ID |
| tradingDay | N | `'today'` is currently effective rules `'next'` (default) is for the next trading date's rules |

Example Response

```
     {
         "msg":"",
         "code":"200",
         "data":[
            {"limit_value":500,
             "limit_type":"rate_vol",
             "product_root":"VX",
             "executing_firm_id":"CBOE"},
            {"limit_value":1000,
             "limit_type":"max_size",
             "product_root":"VX",
             "executing_firm_id":"CBOE"}
         ]
        }
```

#### clearRules

Remove all currently-stored rules. TPH only.

**Table 1. clearRules**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | clearRules |
| Identifier | Y | The Executing Firm ID to clear, or `all` to clear rules for all executing firm IDs. |

Example Response

```
{"msg":"","code":"200","data":[]}
```

#### uploadRules

Expire all existing rules and upload a new rule set for the next trading date.

**Table 1. uploadRules**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | uploadRules |
| Rules | Y | Comma-delimited list of rules to add. |

Rule Format:

```
        executing_firm_id:limit_type:product_root:limit_value:time_limit:product_type
```

Example Request (single EFID)

```
rules=CBOE:rate_vol:VX:1000,CBOE:max_size:VX:10000:time_limt:10,product_type:option
```

Example Request (multiple EFIDs)

```
rules=CBOE|CTWO|CONE:rate_vol:VX:1000,CBOE|CTWO|CONE:max_size:VX:10000,time_limit:10,product_type:future
```

Example Response

```
   {
     "msg":"Rules updated",
     "code":"200",
     "data":{
             "duplicateCount":0,
             "removeCount":4,
             "processedCount":4,
             "unknownList":[],
             "spacesCount":0,
             "addCount":4}
   }
```

### Port Controls Service

```
CFE
https://api-account.cboe.com/cfe/account/port_controls/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
CFE
https://api.batstrading.com/cfe/account/port_controls/
```

#### setClient

Use this command to cancel open orders/quotes or to initiate a kill switch (cancel+block). The allowed combinations of blockNewOrders and cancelOpenOrders are described in the table below. All other combinations will result in no action (no orders/quotes cancelled and no orders/quotes blocked). The operatorId field must be populated with the Order Entry Operator ID in order to cancel open orders/quotes or to initiate a kill switch.

A block of new orders/quotes will not persist across trading segments/dates. To reverse blockNewOrders= `1` within the same trading day, a clearing firm must call the CFE Trade Desk. A trading firm may either call the CFE Trade Desk or send the appropriate risk reset message using BOE/FIX. Unblocking new orders/quotes within the same trading segment/date will not be available via the API.

**Table 1. blockNewOrders and cancelOpenOrders Combinations**

| blockNewOrders | cancelOpenOrders | Result |
|---|---|---|
| Not sent | 1 | Open orders/quotes for EFID are cancelled. |
| 0 | 1 | Open orders/quotes for EFID are cancelled. |
| 1 | 1 | Open orders/quotes for EFID are cancelled; and New orders/quotes are blocked. |
| 1 | 0 | No action taken. |
| 1 | Not Sent | No action taken. |

**Table 2. setClient**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | setClient |
| product_type | Y | `option` , `future` , or `both` If not specified Futures is default |
| Clearing | Y | Four character EFID |
| blockNewOrders | N | `1` = block |
| cancelOpenOrders | Y | `1` = cancel |
| operatorId | Y | Identifies the Order Entry Operator responsible for the setClient request. Must be at least 3 characters and no more than 18. Characters in the ASCII range 33-126 are allowed, except for comma, semicolon, and pipe. |
| manualOrderInd | Y | `0` = No `1` = Yes |

* Note that at least one of the optional parameters must be specified. You may supply one or multiple optional parameters in a single request.

Example Response

```
{"code":"200", "msg":""}
```

### Ports Information Service

```
CFE
https://api-account.cboe.com/cfe/account/ports_info/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
CFE
https://api.batstrading.com/cfe/account/ports_info/
```

#### viewPortConnections

Use this command to retrieve CSV formatted data of your ports and their associated connection information. The data will reflect the same information presented in the `View Port Connection Info` available under the More Options link in the Customer Web Portal Ports Dashboard and is subject to change. Each port type will have its own header row and a blank line will be inserted between port types.

**Table 1. viewPortConnections**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | viewPortConnections |

Example Response

```
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","Username","Session Sub Id","Password","Trading Group","Allowed EFIDs"
"BOE","127.0.0.1","127.0.0.2","10100","CBOE","0001","bz1cboe","","CBOE"
"BOE","127.0.0.1","127.0.0.2","10101","CBOE","0002","bz2cboe","","CBOE"
"BOE","127.0.0.1","127.0.0.2","10102","CBOE","0003","bz3cboe","","CBOE"
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","SenderCompId","SenderSubId","TargetCompId","TargetSubId","Trading Group","Allowed EFIDs"
"FIX","127.0.0.1","127.0.0.2","10103","CBOE","0004","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10104","CBOE","0005","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10105","CBOE","0006","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10106","CBOE","0007","CBOE","DEV","","CBOE"
"FIX","127.0.0.1","127.0.0.2","10107","CBOE","0008","CBOE","DEV","","CBOE"
"Type","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","SenderCompId","SenderSubId","TargetCompId","TargetSubId","Trading Group"
"Odrop","127.0.0.1","127.0.0.2","10200","CBOE","0009","CBOE","DEV",""
"Odrop","127.0.0.1","127.0.0.2","10201","CBOE","0010","CBOE","DEV",""
"Type","Unit","Primary IP (SECAUCUS)","Secondary IP (CHICAGO)","Port","Username","Session Sub Id","Password","Trading Group"
"Spin","mcp_ss_01","127.0.0.1","127.0.0.2","18998","CBOE","0023","s1cboe",""
"Spin","mcp_ss_01","127.0.0.1","127.0.0.2","18998","CBOE","0024","s2cboe",""
"Spin","mcp_ss_01","127.0.0.","127.0.0.2","18998","CBOE","0025","s3cboe",""
```

#### viewPortAttributes

Use this command to retrieve CSV formatted data of your order handler ports and their associated attribute information. The data will reflect the same information presented in the `View Port Attributes Info` available under the More Options link in the Customer Web Portal Ports Dashboard and is subject to change. Each port type will have its own header row and a blank line will be inserted between port types. The attribute label is given in the leftmost column, with the right-side columns showing the setting for each port (IP Port values given in the header row). The firm name will also be presented in the header row along with the port type.

**Table 1. viewPortAttributes**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | viewPortAttributes |

Example Response

```
"Cboe Trading, Inc. (Z), FIX, IP Port","10810","10811","10812","10813","10814","10815","10816","10817","10818","10819","10824"
"Authentication","","","","","","","","","","",""
"Sender Comp Id","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE"
"Sender Sub Id","0011","0012","0013","0014","0015","0016","0017","0018","0019","0020","0025"
"Target Comp Id","CFE","CFE","CFE","CFE","CFE","CFE","CFE","CFE","CFE","CFE","CFE"
"Target Sub Id","PROD","PROD","PROD","PROD","PROD","PROD","PROD","PROD","PROD","PROD","PROD"
"Attributes","","","","","","","","","","",""
"Allowed Executing Firm Id(s)","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE"
"Default Executing Firm Id","","","","","","","","","","",""
"Bill To","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge"
"Allow Test Symbols Only","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Port Order Rate Threshold","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000"
"Symbol Order Rate Threshold","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000"
"Test Symbol Order Rate Threshold","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: 0","CBOE: "
"Cancel on Disconnect","Day - Cancel Only Day Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","None - Disabled","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","None - Disabled","None - Disabled"
"Send Trade Breaks","All Breaks","Today Only","None","None","None","All Breaks","None","None","None","All Breaks","Today Only"
"Default MTP Value","None","None","None","None","None","None","None","None","None","None","None"
"Report MTP Fields","No","No","No","No","No","No","No","No","No","No","No"
"Concatenate CompId and SubId","No","No","No","No","No","No","No","No","No","No","No"
"Cancel on Reject","No","No","No","No","No","No","No","No","No","No","No"
"Unique Wash Execution IDs","No","No","No","No","No","No","No","No","No","No","No"
"Send 2nd Liquidity Character","No","No","No","No","No","No","No","No","No","No","No"
"Send Fix tag 40 (order type)","No","No","No","No","No","No","No","No","No","No","No"
"Send Fix tag 47 (capacity)","No","No","No","No","No","No","No","No","No","No","No"
"Microsecond Timestamp Granularity","No","No","No","No","No","No","No","No","No","No","No"
"Reject Orders on DROP Port Disconnect","No","No","No","No","No","No","No","No","No","No","No"
"Reject Orders on DROP Port Timeout (sec)","30","30","30","30","30","30","30","30","30","30","30"
"Cancel Open Orders on DROP Port Disconnect","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders"
"Cancel Orders on ME Disconnect","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","None - Disabled","All - Cancel Day, GTC, and GTD Orders","Day - Cancel Only Day Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","None - Disabled"
"Carried Order Restatements","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes"
"Trading Group","","","ordgen_weekend_1","ordgen_weekend_2","","","","","","","Canary GTC Session"
"Cboe Trading, Inc. (Z), BOE, IP Port","10800","10801","10802","10803","10804","10805","10806","10807","10808","10809","10823"
"Authentication","","","","","","","","","","",""
"Username","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE"
"Sender Sub Id","0001","0002","0003","0004","0005","0006","0007","0008","0009","0010","0024"
"Password","bf1cboe","bf2cboe","bf3cboe","bf4cboe","bf5cboe","bf6cboe","bf7cboe","bf8cboe","bf9cboe","bf10cboe","bf11cboe"
"Attributes","","","","","","","","","","",""
"Allowed Executing Firm Id(s)","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE","CBOE"
"Default Executing Firm Id","","","","","","","","","","",""
"Bill To","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge","No Charge"
"Allow Test Symbols Only","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes","CBOE: Yes"
"Port Order Rate Threshold","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000"
"Symbol Order Rate Threshold","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000","CBOE: 3000"
"Test Symbol Order Rate Threshold","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: ","CBOE: "
"Cancel on Disconnect","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","Day - Cancel Only Day Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","All - Cancel Day, GTC and GTD Orders","None - Disabled","None - Disabled"
"Send Trade Breaks","None","None","None","None","None","None","Today Only","None","None","None","None"
"Default MTP Value","None","None","None","None","None","None","None","None","None","None","None"
"Cancel on Reject","No","No","No","No","No","No","No","No","No","No","No"
"Reject Orders on DROP Port Disconnect","No","No","No","No","No","No","No","No","No","No","No"
"Reject Orders on DROP Port Timeout (sec)","30","30","30","30","30","30","30","30","30","30","30"
"Cancel Open Orders on DROP Port Disconnect","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders"
"Cancel Orders on ME Disconnect","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","Day - Cancel Only Day Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","All - Cancel Day, GTC, and GTD Orders","None - Disabled"
"Carried Order Restatements","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes"
"Trading Group","","","","","","","","","","","Canary GTC Session"
```

### Block/ECRP Trade Reporting Service

```
CFE
https://api-account.cboe.com/cfe/account/block_ecrp/
```

Effective 08/31/26, Cboe will begin redirecting users from the old batstrading URLs below to the new cboe URLs above. Users may wish to update their systems to the cboe URLs to avoid any disruption in the event redirection causes technical issues.

```
CFE
https://api.batstrading.com/cfe/account/block_ecrp/
```

#### getProducts

Returns a list of available products (underlying symbols) that can be entered via the Block/ECRP reporting system.

**Table 1. getProducts**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | getProducts |
| Product_type | Y | Default is "fut" (to trade Futures products). Must send "futo" to trade Options on Futures products. |

Example Response

```
{
    "code": "200",
    "msg": "",
    "data": [
        "IBHY",
        "IBIG",
        "VU",
        "VX"
    ]
}
```

#### getInstrumentsForProduct

Returns a list of available instruments for a given product (underlying symbol). Available products can be viewed with the getProducts command.

**Table 1. getInstrumentsForProduct**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | getInstrumentsForProduct |
| product_type | Y | The product to view instruments for. Valid products can be viewed with the getProducts command. |

Example Response

```
{
    "code": "200",
    "msg": "",
    "data": [
        {
            "instrumentId": "000020",
            "instrumentName": " UX1A/K4 C2000",
            "instrumentExpiration": "May 6 2024"
       },
        {
            "instrumentId": "000011",
            "instrumentName": "VX",
            "instrumentExpiration": "Oct 12, 2021"
        },
        {
            "instrumentId": "000002",
            "instrumentName": "VX17/J5",
            "instrumentExpiration": "Apr 14, 2055"
        }
    ]
}
```

#### getReporterInfo

Returns available reporter information for the requesting user. Available information includes accounts and operator ids (OEOIDs) from the requesting users firm as well as executing firm ids (EFIDs).

**Table 1. getReporterInfo**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | getReporterInfo |

Example Response

```
{
    "code": "200",
    "msg": "",
    "data": {
        "accounts": [
            "1111"
        ],
        "efids": [
            "CBOE"
        ],
        "oeoids": [
            "1111"
        ]
    }
}
```

#### getPendingTrades

Given a Reference ID from an entered Block/ECRP report, returns pending trades. This includes both sent and received pending trades. This response includes a token on each trade which must be used when sending the submitContra command to identify which trade you are accepting/rejecting.

**Table 1. getPendingTrades**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | getPendingTrades |
| referenceId | Y | The referenceId obtained from the original reporter. This is returned to the submitter either on the website GUI (if they submitted via the GUI) or from the submitTrade command. |

Example Response

```
{
    "code": "200",
    "msg": "",
    "data": {
        "sent": [
            {
                "tradeDescription": "VX/J5 - Apr 21, 2055 - Block",
                "side": "BUY",
                "size": 100,
                "price": 10,
                "tradeTime": "Oct 11, 11:20:00",
                "blockTradeComplexType": "SIMPLE",
                "reportingFirm": null,
                "contraTrades": [
                    {
                        "reportingFirm": "BATS Trading, Inc.",
                        "tradeDescription": "VX/J5 - Apr 21, 2055 - Block",
                        "blockTradeComplexType": "SIMPLE",
                        "side": "BUY",
                        "size": 100,
                        "price": 10,
                        "token": "f2d45cc385b321233319de43af26517edbb977f5",
                        "tradeTime": "Oct 11, 11:20:00",
                        "status": "pending",
                        "account": "1111",
                        "ctiCode": 1,
                        "capacity": "F",
                        "operatorId": "1111",
                        "rejectReason": null,
                        "minutesRemaining": 8.0,
                        "responseTime": "",
                        "efid": "BATS",
                        "frequentTraderId": null
                    }
                ],
                "totalAccepted": 0,
                "totalRejected": 0,
                "totalPending": 1,
                "minutesRemaining": 8.0
            }
        ],
        "received": [
            {
                "reportingFirm": "BATS Trading, Inc.",
                "tradeDescription": "VX/J5 - Apr 21, 2055 - Block",
                "blockTradeComplexType": "SIMPLE",
                "side": "SELL",
                "size": 100,
                "price": 10,
                "token": "f2d45cc385b321233319de43af26517edbb977f5",
                "tradeTime": "Oct 11, 11:20:00",
                "status": "pending",
                "account": null,
                "ctiCode": null,
                "capacity": null,
                "operatorId": null,
                "rejectReason": null,
                "minutesRemaining": 8.0,
                "responseTime": "",
                "efid": "BATS",
                "frequentTraderId": null
            }
        ]
    }
}
```

#### getPastTrades

Returns a list of past trades (within the last 7 days) that have been accepted. Includes both sent and received trades.

**Table 1. getPastTrades**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | getPastTrades |

Example Response

```
{
    "code": "200",
    "msg": "",
    "data": {
        "sent": [
            {
                "tradeDescription": "VX/J5 - Apr 21, 2055 - Block",
                "side": "BUY",
                "size": 100,
                "price": 10,
                "tradeTime": "Oct 11, 15:03:00",
                "blockTradeComplexType": "SIMPLE",
                "reportingFirm": null,
                "contraTrades": [
                    {
                        "reportingFirm": "BATS Trading, Inc.",
                        "tradeDescription": "VX/J5 - Apr 21, 2055 - Block",
                        "blockTradeComplexType": "SIMPLE",
                        "side": "BUY",
                        "size": 100,
                        "price": 10,
                        "token": null,
                        "tradeTime": "Oct 11, 15:03:00",
                        "status": "submitted",
                        "account": "1111",
                        "ctiCode": 1,
                        "capacity": "F",
                        "operatorId": "1111",
                        "rejectReason": null,
                        "minutesRemaining": 0,
                        "responseTime": "15:05:08",
                        "efid": "BATS",
                        "frequentTraderId": null
                    }
                ],
                "totalAccepted": 1,
                "totalRejected": 0,
                "totalPending": 0,
                "minutesRemaining": 0
            }
        ],
        "received": [
            {
                "reportingFirm": "BATS Trading, Inc.",
                "tradeDescription": "VX/J5 - Apr 21, 2055 - Block",
                "blockTradeComplexType": "SIMPLE",
                "side": "BUY",
                "size": 100,
                "price": 10,
                "token": null,
                "tradeTime": "Oct 11, 15:03:00",
                "status": "submitted",
                "account": "1111",
                "ctiCode": 1,
                "capacity": "F",
                "operatorId": "1111",
                "rejectReason": null,
                "minutesRemaining": 0,
                "responseTime": "15:05:08",
                "efid": "BATS",
                "frequentTraderId": null
            }
        ]
    }
}
```

#### submitTrade

Submits a new Block/ECRP report. Returns a Reference ID which should be copied and distributed to all contra parties so that they may accept or reject the trade. Note that while trades can be modified after submission via the web GUI they cannot be modified ("replaced") using the API.

**Table 1. submitTrade**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | submitTrade |
| related_position | N* | The related position information, e.g., VX Buy 100 2021-10-12 100 Call 100 12 Delta Follow the format: instrument_or_underlying side size expiry strike call_put price delta Delta Only applies when trade_type is ecrp. |
| product-1 | Y | The product (underlying symbol) of this leg. Valid values can be viewed with the getProducts command. |
| instrument-1 | Y | The instrument (symbol id) of this leg. Valid values can be viewed with the getInstrumentsForProduct command. |
| size-1 | Y | The size of this leg. |
| price-1 | Y | The price of this leg. |
| side-1 | Y | The side of this leg. Valid values are [ `Buy` , `Sell` ] |
| blockTradeComplexType-1 | Y | The trade type of this leg Valid values are [ `Complex` , `Simple` , `Strip` ] |
| product-2 | N | Format for adding an additional leg. Up to four legs total may be specified on any given trade report. |
| instrument-2 | N* |  |
| size-2 | N* |  |
| price-2 | N* |  |
| side-2 | N* |  |
| blockTradeComplexType-2 | N* |  |
| trade_time | Y | The time the trade took place (central time; e.g. 11:20:00). |
| arrangement_time | Y | The time the trade was arranged (central time; e.g. 11:20:00). |
| reportingPartyEfid | Y | The executing firm id of the reporting party (e.g. CBOE). |
| reportingPartyAccount | Y | The Account of the reporting party. |
| sub_account | N | The Clearing Account of the reporting party. |
| cti_code | Y | The CTI Code of the reporting party; valid values are `1, 2, 3`, or `4`. |
| cmta | N | The CMTA (Give Up) of the reporting party. |
| capacity | Y | The Capacity of the reporting party; valid values are `C` (customer) or `F` (firm). |
| operatorid | Y | The Operator ID of the reporting party. |
| frequentTraderId | N | The Frequent Trader ID of the reporting party. |
| exec_source | Y | The execution source of the reporting party Valid values are [ `W` , `Y` , `C` , `G` , `H` , `D` ] `W` : Desk (High Touch) `Y` : Electronic `C` : Vendor-provided Platform billed by Executing Broker `G` : Sponsored Access via Exchange API or FIX provided by Executing Broker `H` : Premium Algorithmic Trading Provider billed by Executing Broker `D` : Other, including Other-provided screen |
| contra_efid-1 | Y | The executing firm id (e.g. CBOE) for this contra. |
| contra_size_leg1-1 | Y | Size allocated to this contra for the first leg. |
| contra_size_leg2-1 | N | Size allocated to this contra for the second leg (if exists) . |
| contra_size_leg3-1 | N* | Size allocated to this contra for the third leg (if exists). |
| contra_size_leg4-1 | N* | Size allocated to this contra for the fourth leg (if exists). |
| contra_efid-2 | N* | Format for adding additional counterparties. Up to 35 counterparties may be specified on any given trade report. |
| contra_size_leg1-2 | N* |  |
| contra_size_leg2-2 | N* |  |
| contra_size_leg3-2 | N* |  |
| contra_size_leg4-2 | N* |  |
| trade_type | Y | Either `block` or `ecrp`. |
| country_alpha2_code | Y | The Country of origin of the party to the Block/ECRP trade. Block and ECRP trades that include a country code for a comprehensively sanctioned country on either side of the trade will be rejected. |

Example Response

```
{
    "code": "200",
    "msg": "Trade report successfully submitted",
    "data": {
        "referenceId": "5237D"
    }
}
```

#### submitContra

Accepts or rejects a submitted trade. Requires the unique token generated for the trade which can be obtained from the getPendingTrades command using the Reference ID provided by the reporting party.

**Table 1. submitContra**

| Parameter | Required | Description |
|---|---|---|
| Command | Y | submitContra |
| action | Y | Either `accept` or `reject` |
| token | Y | The unique token to identify the trade. Can be obtained by calling getPendingTrades with the reference ID provided by the reporting party. |
| account | Y | The Account |
| subAccount | N | The Clearing Account |
| ctiCode | Y | The CTI Code; valid values are `1, 2, 3`, or`4` |
| capacity | Y | The Capacity; valid values are `C` (customer) or `F` (firm) |
| operatorid | Y | The Operator ID |
| frequentTraderId | N | The Frequent Trader ID |
| exec_source | Y | The execution source of the reporting party Valid values are [ `W` , `Y` , `C` , `G` , `H` , `D` ] `W` : Desk (High Touch) `Y` : Electronic `C` : Vendor-provided Platform billed by Executing Broker `G` : Sponsored Access via Exchange API or FIX provided by Executing Broker `H` : Premium Algorithmic Trading Provider billed by Executing Broker `D` : Other, including Other-provided screen |

Sample response when accepting a trade:

```
{
    "code": "200",
    "msg": "Trade successfully accepted",
    "data": null
}
```

Sample response when rejecting a trade:

```
{
    "code": "200",
    "msg": "Trade successfully rejected",
    "data": null
}
```

## Support

Please direct all Equities or Options-related questions or comments regarding this specification to tradedesk@cboe.com.

Please direct all Futures-related questions or comments regarding this specification to cfetradedesk@cboe.com.

## Revision History

| Document Version | Date | Description |
|---|---|---|
| 1.0.0 | 12/14/09 | Release 1.0.0 distributed. |
| 1.0.1 | 04/15/10 | Noted support only for BZX Exchange at this time. |
| 1.1.0 | 04/05/11 | Added support for BYX Exchange. |
| 1.2.0 | 07/09/12 | Added Options US Services section. Added Market Maker Registration Services (Equities and Options). Added Risk Management Services (Options). |
| 1.3.0 | 10/12/12 | Added Port Controls Services (Equities and Options). Noted Sponsored Access Service is now considered deprecated in favor of the new Port Controls Service. Added executionCollar , dailyLimitCutoff , dailyLimitNetCutoff , dailyMktCutoff , and dailyMktNetCutoff parameters to setClient command |
| 1.3.1 | 11/01/12 | Field order correction in uploadRules definition for Risk Management Services (Options). |
| 1.3.2 | 12/28/12 | Correction to command description in ClearAllSeries command. |
| 1.3.3 | 03/28/13 | Added parameter to exclude Mini Options symbols from Options Market Maker Registration storeSeriesList command. Added confirmation of Max Quote value in Equities Market Maker Registration viewRegisteredSymbols command. |
| 1.3.4 | 05/10/13 | Minor clarifications and corrections made to Options storeSeriesList and viewSeriesStatus commands. |
| 1.3.5 | 10/3/13 | Added parameter to exclude Jumbo Options symbols from Options Market Maker Registration storeSeriesList command. |
| 1.3.6 | 12/03/13 | Added viewActiveRegisteredSymbols command and removed references to Max Quote in Equities Market Maker Registration section. |
| 1.3.7 | 10/20/14 | Added the new EDGX and EDGA service links for API functionality. Available effective 01/12/15. |
| 1.3.8 | 01/12/15 | Updated uploadRegisteredSymbols example response. |
| 1.3.9 | 02/06/15 | Updated setClient command for Equities and Options Port Controls and Sponsored Access sections to reflect changes to Fat Finger Protection. Removed references to 1/12/15 effective date. |
| 1.3.10 | 02/20/15 | Updated setClient command for Equities and Options Port Controls and Sponsored Access sections to reflect addition of duplicative order controls added effective 2/20/15. |
| 1.3.11 | 03/16/15 | Added viewClients command for Equities and Options Port Controls sections. Available effective 3/27/15. |
| 1.3.12 | 03/23/15 | Corrected broken links to deprecated US Equities/Options Sponsored Access Specification. |
| 1.4.0 | 04/02/15 | Added Ports Information Service with viewPortConnections and viewPortAttributes commands. Available effective 4/6/15. |
| 1.4.1 | 04/08/15 | Corrected URL in Options Ports Information Service section (5.5). Corrected example response for Options viewPortAttributes section (5.5.2). |
| 1.4.2 | 04/21/15 | Update name change for Bats Options Exchange to BZX Options Exchange. |
| 1.4.3 | 07/27/15 | Included support for EDGX Options Exchange |
| 1.5.0 | 08/06/15 | Removed references to deprecated Sponsored Access service. Added Single Order ADV Check section. |
| 1.6.0 | 09/08/15 | Added symbol data and book data services. |
| 1.7.0 | 02/19/16 | Bats branding/logo changes. |
| 1.7.1 | 05/06/16 | Added Warning Percentage Features for Aggregated Credit Limit Risk Checks |
| 1.7.2 | 05/18/16 | Added support for Liquidity Management Provider registration. |
| 1.8.0 | 05/01/17 | Added support for CFE. |
| 1.8.1 | 05/22/17 | Removed references to deprecated call_put_flag and front_trail_flag fields from Options Risk Management Service section (5.3). |
| 1.8.2 | 09/01/17 | Added support for C2’s transition onto the Bats Technology platform. |
| 1.9.0 | 09/06/17 | Added EDGX/BZX Top-of-Book API |
| 1.9.1 | 10/17/17 | Cboe branding/logo changes. |
| 1.9.2 | 05/23/18 | Changed `osi_root` value to `risk_root`. |
| 1.10.0 | 11/16/18 | Added Clearing Edit Service Support. Added support for Cboe Options Exchange. |
| 1.10.1 | 11/27/18 | Added detail that the Clearing Edit Service will be available in Feature Pack 3, in preparation for C1 Migration. |
| 1.10.2 | 01/22/19 | Added certification environment URLs. Corrected typos in Clearing Edit Service addToQueue examples. |
| 1.10.3 | 01/29/19 | Additional clarification on required items for the addToQueue command. |
| 1.10.4 | 04/17/19 | Updates to Market Maker Registration service to reflect that registration by symbology will be sunset (effective 05/10/19). |
| 1.10.5 | 05/02/19 | Added support for risk_group_type within Risk Management Service for Options (effective on C2 and EDGX with C1 Feature Pack 7). Updated Market Maker Registration service to reflect that registration by symbol will remain active for BZX and only be sunset for EDGX (effective 05/10/19). |
| 1.10.6 | 05/10/19 | Clarified description of `clearRules` identifier parameter. Added uploadRules Application in Trading Session table. Clarfied valid values for Symbology parameter in `storeSeriesList` . |
| 1.10.7 | 05/17/19 | Added ‘allowDirectedIso’, ‘portThreshold’ and ‘symbolThreshold’ parameters to `setClient` command for US Equities. Added ‘allowDirectedIso’ paramteter to `setClient` command for US Options. Added Fat Finger Protection parmeters to `setClient` command for US Options. |
| 1.10.8 | 07/15/19 | Fixed incorrect section numbering in Section 5 of the document. |
| 1.10.9 | 09/25/19 | Added Clearing Edit Service field support for C1-specific parameters. Added notes indicating BZX will only support a symbology parameter value of ‘underlying’ in `storeSeriesList` command when registration by series is sunset. , effective 10/1/19. The following `storeSeriesList` parameters will be sunset effective 10/1/19: exclude_sdo, exclude_close_only, expire_period, auto_reg_underlying . |
| 1.10.10 | 10/02/19 | Reworked the viewTrades section fo the Clearing Edit service to more accurately describe the filters available when running the viewTrades command. Added a translation table to allow users to translate from the values received when using viewTrades and the values that are expected to be sent when using addToQueue. |
| 1.10.11 | 11/08/19 | Removed symbology parameter from `storeSeriesList` commands as this is no longer necessary following Market Maker appointment by class updates. |
| 1.10.12 | 11/12/19 | Added notes indicating GTH will be deprecated on EDGX and C2, effective 11/22/19. |
| 1.10.13 | 01/08/20 | Fixed section numbering for `uploadRegisteredSymbols` command. Added note to indicate that editing the capacity parameter with a value of ‘C’, in the `ViewTrades` command to any other value must be made via the Clearing Editor (effective 02/07/20). |
| 1.10.14 | 02/07/20 | Removed effective date notes for features released to production. |
| 1.10.15 | 04/15/20 | Added reason_code and reason _ text fields to the list of parameters for the US Options Clearing Edit Service. Added US Equities Risk Management Service section. |
| 1.10.16 | 04/27/2020 | Added support for Risk Group ID. Noted Notional Exposure Tracking to be deprecated on Options effective 5/8/20. |
| 1.10.17 | 10/20/20 | Removed deprecated parameters from `setClient` command in Port Controls. |
| 1.10.18 | 03/25/21 | Added notes indicating GTH and Curb risk rule upload cutoff times in the "uploadRules Application in Trading Session" table (effective 04/25/22 TBD 02/07/22 TBD 09/27/21 Q3 2021 for Curb and 11/21/21 Q4 2021 for GTH). |
| 1.10.19 | 05/13/21 | Updated section 4 entries in US Equities Services table to include Risk Manager and Top services. Updated Curb session effective date to 04/25/22 TBD 02/07/22 TBD 09/27/21 . |
| 1.10.20 | 05/20/21 | Added Port Controls Service to CFE (effective 07/11/21 06/13/21). |
| 1.10.21 | 06/11/21 | Clarification around kill switch functionality and updated effective date to 07/11/21. |
| 1.10.22 | 06/15/21 | Updated extended GTH session effective date to 11/21/21. |
| 1.10.23 | 06/30/21 | Updated Futures Services `setClient` command table with new entry detailing combination of 1 blockNewOrders and cancelOpenOrders not sent. |
| 1.10.24 | 07/26/21 | Updated uploadRules Application in Trading Session table. |
| 1.10.25 | 08/24/21 | Updated Curb session effective date to 04/25/22 TBD 02/07/22 TBD. |
| 1.10.26 | 09/09/21 | Added new sections "viewHard", "uploadHard", and "removeHard" to support the Hard to Borrow list functionality (effective 01/26/22 TBD 09/29/21). |
| 1.10.27 | 10/04/21 | Updated the Cboe Web Portal Port Controls Specification link. Updated effective dates for "viewHard", "uploadHard", and "removeHard" commands to 01/26/22 TBD . |
| 1.10.28 | 10/18/21 | Added requirement to CFE `setClient` service that the operatorId field must be populated with the Order Entry Operator ID in order to cancel open orders/quotes or to initiate a kill switch (effective 11/14/21). |
| 1.10.29 | 11/4/21 | Updated Curb session effective date to 04/25/22 TBD 02/07/22. |
| 1.10.30 | 11/15/21 | Added Block/ECRP service to US Futures section (effective 01/09/22). |
| 1.10.31 | 12/06/21 | Added country_alpha2_code to the list of parameters for submitTrade (effective 02/27/22). |
| 1.10.32 | 01/14/22 | Updated Hard-to-Borrow List effective date to 01/26/22. |
| 1.10.33 | 02/01/22 | Updated Curb session effective date to 04/25/22 TBD. |
| 1.10.34 | 03/21/22 | Added a note indicating Block and ECRP trades that include a country code for a comprehensively sanctioned country on either side of the trade will be rejected. |
| 1.10.35 | 04/04/22 | Updated Curb session effective date to 04/25/22. |
| 1.11.0 | 07/29/22 | Added support for CFE Options on Futures (effective 07/10/23 04/03/23). |
| 1.11.1 | 08/19/22 | Added allowShortSales, allowShortSaleExempt, requireLocateBrokerOnShortSaleOrders, and requireLocateBrokerOnShortSaleExemptOrders parameters to the US Equities Port Controls service (effective 10/14/22). |
| 1.11.2 | 11/29/22 | Updated uploadRules and setClient sections for clarity. |
| 1.11.3 | 01/19/23 | Updated effective date for Options on Futures (effective 07/10/23). |
| 1.11.4 | 07/20/23 | Added new product_type field to getProducts (effective 08/21/23 07/30/23). |
| 1.11.5 | 08/01/23 | Updated effective date for product_type field (effective 08/21/23). |
| 1.11.6 | 09/13/23 | Added new marketOrderRestriction to setClient (effective 10/13/23). |
| 1.11.7 | 11/09/23 | Updated storeSeriesList example to include C1 and EDGX Options example response (effective 11/25/23). |
| 1.11.8 | 05/23/24 | Removed references to IBHYT and IBIGT as part of CFE sunsetting TAS functionality for coproate bond index futures. Changing capacity from ‘C’ to another value may not be done using the API and can only be changed using the Clearing Editor. Added list of fields unable to be changed on floor trades using the API to section 5.5.3. |
| 1.11.9 | 06/28/24 | Updated getInstrumentsForProduct example. |
| 1.11.10 | 09/20/24 | Added limit_type and reject_behavior values to US Equities Risk Management Service uploadRules (effective 01/27/25 on EDGA and effective 02/03/25 on BYX, BZX, and EDGX 11/22/24). Updated US Equities Risk Management Service viewRules example response to include rej_only. |
| 1.11.11 | 10/30/24 | Updated example response for Book Data. |
| 1.11.12 | 11/18/24 | Updated the effective date for limit_type and reject_behavior values to US Equities Risk Management Service uploadRules to 01/27/25 on EDGA and effective 02/03/25 on BYX, BZX, and EDGX. |
| 1.11.13 | 01/15/25 | Updated with Cboe Titanium branding. |
| 1.11.14 | 08/22/25 | Added Authentication . |
| 1.11.15 | 09/11/25 | Updated viewTrades to include new strategy_id values `F` = CompressionForum, `B` = BoxSpread, and `A` = BoxSwap. (C1 Only) |
| 1.11.16 | 11/18/25 | Updated table formatting to include a Required column throughout the specification. |
| 1.11.17 | 11/25/25 | Updated the Certification Environment URL from https://api.certification.batstrading.com to https://certification-api.batstrading.com. Updated viewRules to indicate identifier is not required in U.S. Options Options Service. Updated uploadRule rule description to indicate The list of rules is available in the File Format section of U.S. Options Risk Management Specification . Removed identifier from uploadRules in U.S. Options Options Service. |
| 1.11.18 | 12/16/25 | Removed "dailyLimitCutoff":"100000000", "dailyLimitNetCutoff":"100000000", "dailyMktCutoff":"100000000", and "dailyMktNetCutoff":"100000000" from viewClient example (01/30/26). Updated dailyLimitCutoff, dailyLimitNetCutoff, dailyMktCutoff, and dailyMktNetCutoff Required setClient fields to note that as of 01/30/26 these fields will not be applicable and will be ignored. |
| 1.11.19 | 01/16/26 | Added requireLocateBrokerShortToShort to setClient (effective 02/02/26). |
| 1.11.20 | 03/13/26 | Added viewControls and uploadControls messages to US Options Risk Management Service (effective 04/20/26). |
| 1.11.21 | 03/19/26 | Updated URLs: effective 08/31/26, Cboe will begin redirecting batstrading URLs. |
| 1.11.22 | 03/23/26 | Updated viewControls Example Response to include "capacityFractions": "C:0.20,U:0.50". Updated uploadControls Example Response to include "capacityFractions": "C:0.30,U:0.60". |
| 1.11.23 | 04/17/26 | Added Quoting Incentive Program Registration (effective 05/01/26) |
| 1.11.24 | 07/06/26 | Updated U.S. Equities setClient table to indicate the executionCollarDollar2, executionCollarDollar3, executionCollarDollar4, executionCollarDollar5, dupOrderAction, dupOrderCount, dupOrderSeconds, and marketOrderRestriction parameters are not required. Removed U.S. Equities setClient parameters that are no longer applicable. Updated tradingDay description in viewRules for U.S. Equities, U.S. Options, and U.S. Futures. |
| 1.11.25 | 08/04/26 | Added new submitToClearing section (effective as early as Q3, 2026). Added clearing_corp parameter to viewTrades to indicate valid values included OCC or CCUS (if field not specified, the value defaults to OCC). Updated submitToOcc to indicate that submitToOcc submits OCC-cleared trade edits to the OCC for reclearing and submits CCUS-cleared trade edits to CCUS for reclearing. The submitToClearing method should be used going forward as the submitToOcc method will be deprecated in the future. Updated to introduce new clearinghouse (OCC and CCUS) and CCUS ID top-level trade filters. Updated references to OCC to indicate clearinghouse as changes are submitted to clearinghouse associated with the underlying trade product. |
