Use this search bar to search topics within the CME STP.
CME STP API supports the following information in Trade Capture Report messages:
Single trade allocations are treated as group allocations, where the group has just one trade.
- Trade marked / unmarked for allocation
- Offset and Onset trades when an allocation is claimed
- Offset and Onset trades when an allocation is released / reversed
- MOS (Mutual Offset System) allocations, allowing foreign exchanges to allocate to a CME Firm and vice versa, are treated like normal allocations.
- Spread and Leg level messages
- Change of Firm. When the Trading Firm is changed on the transaction, CME STP API sends a Cancel Notification to the previous Trading Firm and a New Trade Notification is sent to the new Trading Firm.
Subscriptions and Queries
The CME STP API supports data retrieval using subscriptions and queries. Queries return trade messages only up to the date and time that the query request was received by the API. Subscriptions continue to send trade messages to the user on an ongoing basis; there is no end date time.
Continuing a Subscription or Query
When responding to a successful Subscription Request, the API sends a token to the user so that the user may continue the subscription. When responding to a successful Query Request, the API sends a token if the results of the query are incomplete (for example, more data is available). For a Subscription, the user must wait wait a minimum of three seconds before continuing the subscription, which requires making another HTTP call that contains the token. For a Query, the user may make another HTTP call containing the token immediately.
CME STP API will only accept a subscription or query request without token if it is a new subscription or query; all continuations of existing subscriptions or queries must include a token.
|API Input||API Output|
Subscription / Query Request: FIXML Trade Capture Report Request
Successful Subscription / Query Response: FIXML Trade Capture Report
|Subscription / Query Error Response: FIXML Trade Capture Report Request Ack|
API input messages continuing prior Subscription or Query Requests must send the token in the custom
x-cme-token HTTP header. API output messages will contain the token both in the
x-cme-token HTTP header as well as in the
/FIXML/Batch/@ID XPath within the message.
Each successful response from the API may return a different token. The user must send that new token in the next continued Subscription or Query Request.
Identifiers and Modes
The user must supply a unique identifier with each query in
/FIXML/TrdCaptRptReq/@ReqID which the API will echo back in
/FIXML/Batch/TrdCaptRpt/@ReqID for successful requests, and in
/FIXML/TrdCaptRptReqAck/@ReqID in case of errors. This enables the user to match the request with the resulting messages. When continuing a Subscription or a Request, the user may reuse the original
@ReqID or may send a new identifier. The API will respond with with the
@ReqID sent on the request.
The user must indicate in
/FIXML/TrdCaptRptReq/@SubReqTyp whether the message is a Subscription, a Query, or whether it disables a previous Subscription. The user must also indicate via
/FIXML/TrdCaptRptReq/@ReqTyp whether this is a new Subscription or Query, or a continuation of a prior Subscription or Query.
Subscription and Query Parameters
Use ONLY the following parameters to filter the query and/ or subscription results. Note that every continuation of a Subscription or Query must contain all of the filter criteria of the original subscription or query. Omitting, changing, or adding filter criteria may cause undesired results.
Party ID and Role
(e.g. Trading Firm, Asset Manager, Broker)
|Clearing Business Date||Optional|
|Venue (Input Source)||Optional|
|Product Type (e.g. FUT, OPT)||Optional|
|Secondary Trade ID||Optional|
|Client Order ID||Optional|
Optional on Requests
Required on Queries
Not Allowed on Requests
Optional on Queries
Users requiring a continuous record of all trading activity may continue a subscription from one business day to the next. The user ceases sending HTTP requests and, on the next business day, continues the subscription with an HTTP request using the last token received on the previous day. This method ensures that the API will send the user any trading activity that occurred during the time period that the user made no HTTP requests.
Alternately, users may begin a new subscription each day, specifying a Start Time encompassing any time the user did not send HTTP requests following the end of the prior business day's subscription. Users should exercise caution with this method to guarantee that they do not miss trading activity by sending too narrow a time window that misses trading activity, or that they do not process any duplicate any trades should the window overlap trades already received on the prior business day.
If the user begins a new subscription and does not send a Start Time, the subscription will begin at the present time and include no past trading activity. This method may result in missed trades should any trading occur after the user ceased sending HTTP requests on the prior business day and before the user initiated the new subscription.