A7 Analytics Platform - Market Data API (EOBI)
Un-normalized, genuine historical order-by-order market data from the T7 Enhanced Order Book Interface (EOBI) feed for Eurex and Xetra.
Un-normalized, genuine historical order-by-order market data from the T7 Enhanced Order Book Interface (EOBI) feed for Eurex and Xetra.
openapi: 3.0.0
info:
title: A7 Analytics Platform - Algo management Algo management API Market data API (EOBI) API
description: 'A7 Analytics Platform for the main T7 trading venues of Deutsche Börse Group and for the MDP feed of CME Group. The platform enables clients to perform pre/at/post trade analysis and to interact with market data and analytics.It provides clients access to the most granular un-normalized/genuine historical order book data (EOBI, MDP) as well as constructed order books, off-the-shelf analytics and allows them to build their own custom analytics utilizing algo functionality, which is a flexible high-performance framework based on historical order book data.<br/><br/> The A7 data can be accessed either via the <a href="https://a7.deutsche-boerse.com/">user interface</a> or via RESTful API.</br></br>
The algo management API provides access to the A7 algos and their results. With the API it is possible to create, update, delete and run algos and to access the results of the algo runs. All available endpoints are described in detail below.<br/><br/>
<b>Security measures:</b></br> In order to prevent unauthorized access to the API an authentication token must be used. A7 utilises the bearer authentication scheme for this purpose. The authentication token must be added to the header of each request message. Depending on the implementation it might be necessary to add the keyword "Bearer" to the token string as a prefix followed by a space.</br></br> A token can be generated at the <a href="https://a7.deutsche-boerse.com/">A7 user interface</a>. After login the user has to click on the user icon in the upper right corner, click on <b>API token generation</b> and finally click on <b>Request API key</b>. The generated token will be displayed directly in the user interface.<br/><br/>
'
contact:
name: Deutsche Börse Data & Analytics
url: https://www.mds.deutsche-boerse.com
email: analytics@deutsche-boerse.com
version: 1.0.2
servers:
- url: /api/v1
description: A7 production environment
security:
- bearerAuth: []
tags:
- name: Market data API (EOBI)
paths:
/eobi:
get:
tags:
- Market data API (EOBI)
summary: Retrieve list of markets
description: The request delivers all available markets as a list of MarketIDs.
operationId: getMarketIds
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/MarketIDs'
- $ref: '#/components/schemas/InternalError'
example:
MarketIDs:
- XETR
- XEUR
application/gzip:
schema:
oneOf:
- $ref: '#/components/schemas/MarketIDs'
- $ref: '#/components/schemas/InternalError'
format: binary
example:
MarketIDs:
- XETR
- XEUR
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
/eobi/{marketId}:
get:
tags:
- Market data API (EOBI)
summary: Retrieve list of trading days
description: The request delivers all available trading days for the selected market as a list of dates (YYYYMMDD).
operationId: getAvailableDates
parameters:
- $ref: '#/components/parameters/marketId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Dates'
- $ref: '#/components/schemas/InternalError'
example:
Dates:
- 20200629
- 20200630
application/gzip:
schema:
oneOf:
- $ref: '#/components/schemas/Dates'
- $ref: '#/components/schemas/InternalError'
format: binary
example:
Dates:
- 20200629
- 20200630
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
/eobi/{marketId}/{date}:
get:
tags:
- Market data API (EOBI)
summary: Retrieve list of products
description: The request delivers a list of all available products for the selected market and trading day as a list of MarketSegmentIDs.
operationId: getMarketSegmentIds
parameters:
- $ref: '#/components/parameters/marketId'
- $ref: '#/components/parameters/date'
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/MarketSegmentIDs'
- $ref: '#/components/schemas/InternalError'
example:
MarketSegmentIDs:
- 3
- 5
- 21
application/gzip:
schema:
oneOf:
- $ref: '#/components/schemas/MarketSegmentIDs'
- $ref: '#/components/schemas/InternalError'
format: binary
example:
MarketSegmentIDs:
- 3
- 5
- 21
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
/eobi/{marketId}/{date}/{marketSegmentId}:
get:
tags:
- Market data API (EOBI)
summary: Retrieve list of instruments
description: The request delivers a list of all instruments for the selected market, trading day and MarketSegmentID as a list of SecurityIDs.
operationId: getSecurityIds
parameters:
- $ref: '#/components/parameters/marketId'
- $ref: '#/components/parameters/date'
- $ref: '#/components/parameters/marketSegmentId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/SecurityIDs'
- $ref: '#/components/schemas/InternalError'
example:
SecurityIDs:
- 2346321
- 3426522
- 3242343
application/gzip:
schema:
oneOf:
- $ref: '#/components/schemas/SecurityIDs'
- $ref: '#/components/schemas/InternalError'
format: binary
example:
SecurityIDs:
- 2346321
- 3426522
- 3242343
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
/eobi/{marketId}/{date}/{marketSegmentId}/{securityId}:
get:
tags:
- Market data API (EOBI)
summary: Retrieve list of transaction times
description: 'The request delivers a list of the available transaction times for the selected market, trading day, MarketSegmentID and SecurityID as a list of TransactTimes.
'
operationId: getTransactTimes
parameters:
- $ref: '#/components/parameters/marketId'
- $ref: '#/components/parameters/date'
- $ref: '#/components/parameters/marketSegmentId'
- $ref: '#/components/parameters/securityId'
- $ref: '#/components/parameters/mode'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/to'
- $ref: '#/components/parameters/applSeqNumFilter'
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/TransactTimes'
- $ref: '#/components/schemas/InternalError'
example:
TransactTimes:
- '1589175000156121100'
- '1589180100007332308'
- '1589180400061095876'
application/gzip:
schema:
oneOf:
- $ref: '#/components/schemas/TransactTimes'
- $ref: '#/components/schemas/InternalError'
format: binary
example:
TransactTimes:
- '1589175000156121100'
- '1589180100007332308'
- '1589180400061095876'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
/eobi/{marketId}/{date}/{marketSegmentId}/{securityId}/{transactTime}:
get:
tags:
- Market data API (EOBI)
summary: Retrieve list of application sequence numbers or list of packets
description: '"The request delivers a list of the available application sequence numbers for the selected market, trading day, MarketSegmentID, SecurityID and TransactTime as a list of ApplSeqNums."<br/> If mode is set to ''detailed'', the request returns a list of packets including their respective messages and available details. For a detailed description of the different message types please refer to the T7 EOBI documentation.
'
operationId: getApplSeqNums
parameters:
- $ref: '#/components/parameters/marketId'
- $ref: '#/components/parameters/date'
- $ref: '#/components/parameters/marketSegmentId'
- $ref: '#/components/parameters/securityId'
- $ref: '#/components/parameters/transactTime'
- $ref: '#/components/parameters/mode'
- $ref: '#/components/parameters/msgSeqNumFilter'
- $ref: '#/components/parameters/templateIdFilter'
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApplSeqNums'
- $ref: '#/components/schemas/Packets'
- $ref: '#/components/schemas/InternalError'
application/gzip:
schema:
oneOf:
- $ref: '#/components/schemas/ApplSeqNums'
- $ref: '#/components/schemas/Packets'
- $ref: '#/components/schemas/InternalError'
format: binary
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
/eobi/{marketId}/{date}/{marketSegmentId}/{securityId}/{transactTime}/{applSeqNum}:
get:
tags:
- Market data API (EOBI)
summary: Retrieve list of message sequence numbers or a list of messages
description: 'The request delivers a list of the available message sequence numbers for the selected market, trading day, MarketSegmentID, SecurityID, TransactTime and ApplSeqNum as a list of MsgSeqNums.<br/> If mode is set to ''detailed'', the request returns a list of messages and available details. For a detailed description of the different message types please refer to the T7 EOBI documentation.
'
operationId: getMsgSeqNums
parameters:
- $ref: '#/components/parameters/marketId'
- $ref: '#/components/parameters/date'
- $ref: '#/components/parameters/marketSegmentId'
- $ref: '#/components/parameters/securityId'
- $ref: '#/components/parameters/transactTime'
- $ref: '#/components/parameters/applSeqNum'
- $ref: '#/components/parameters/mode'
- $ref: '#/components/parameters/templateIdFilter'
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/MsgSeqNums'
- $ref: '#/components/schemas/Messages'
- $ref: '#/components/schemas/InternalError'
application/gzip:
schema:
oneOf:
- $ref: '#/components/schemas/MsgSeqNums'
- $ref: '#/components/schemas/Messages'
- $ref: '#/components/schemas/InternalError'
format: binary
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
/eobi/{marketId}/{date}/{marketSegmentId}/{securityId}/{transactTime}/{applSeqNum}/{msgSeqNum}:
get:
tags:
- Market data API (EOBI)
summary: Retrieve message details
description: The request delivers the details of the message identified by the selected MarketID, trading day, MarketSegmentID, SecurityID,TransactTime, ApplSeqNum and MsgSeqNum combination. The message details consist of all fields specified in the T7 EOBI documentation for the respective message type. For a detailed description of the different message types please refer to the T7 EOBI documentation.
operationId: getMessageDetails
parameters:
- $ref: '#/components/parameters/marketId'
- $ref: '#/components/parameters/date'
- $ref: '#/components/parameters/marketSegmentId'
- $ref: '#/components/parameters/securityId'
- $ref: '#/components/parameters/transactTime'
- $ref: '#/components/parameters/applSeqNum'
- $ref: '#/components/parameters/msgSeqNum'
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/MessageDetails'
- $ref: '#/components/schemas/InternalError'
example:
MessageHeader:
BodyLen: 32
TemplateID: 13301
MsgSeqNum: 27
ApplSeqNum: 6745122
SecurityID: 4233128
SecurityStatus: 1
SecurityTradingStatus: 204
MarketCondition: 0
FastMarketIndicator: 0
SecurityTradingEvent: null
SoldOutIndicator: null
TransactTime: '1589180100007258166'
application/gzip:
schema:
oneOf:
- $ref: '#/components/schemas/MessageDetails'
- $ref: '#/components/schemas/InternalError'
example:
MessageHeader:
BodyLen: 32
TemplateID: 13301
MsgSeqNum: 27
ApplSeqNum: 6745122
SecurityID: 4233128
SecurityStatus: 1
SecurityTradingStatus: 204
MarketCondition: 0
FastMarketIndicator: 0
SecurityTradingEvent: null
SoldOutIndicator: null
TransactTime: '1589180100007258166'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
components:
schemas:
MessageDetails:
properties:
MessageDetails:
type: object
example:
MessageHeader:
BodyLen: 32
TemplateID: 13301
MsgSeqNum: 27
ApplSeqNum: 6745122
SecurityID: 4233128
SecurityStatus: 1
SecurityTradingStatus: 204
MarketCondition: 0
FastMarketIndicator: 0
SecurityTradingEvent: null
SoldOutIndicator: null
TransactTime: '1589180100007258166'
description: "Please see the T7 EOBI documentation for a detailed description of the supported message types.<br/> The following message types are supported by the API:\n * MarketDataOrder (U21)\n * MarketDataTrade (U22)\n * MarketDataInstrument (U23)\n * TradingSessionStatus (h)\n * SecurityMassStatus (CO)\n * SecurityStatus (f)\n * SecurityDefinitionUpdateReport (BP) \n"
Packets:
properties:
Packets:
type: array
items:
type: object
example:
- MessageHeader:
BodyLen: 32
TemplateID: 13301
MsgSeqNum: 27
ApplSeqNum: 6745122
SecurityID: 4233128
SecurityStatus: 1
SecurityTradingStatus: 204
MarketCondition: 0
FastMarketIndicator: 0
SecurityTradingEvent: null
SoldOutIndicator: null
TransactTime: '1589180100007258166'
MsgSeqNums:
properties:
MsgSeqNums:
type: array
items:
type: integer
example:
- 4294967295
- 3224966211
InternalError:
properties:
success:
type: string
example: 'false'
message:
type: string
example: Error message
required:
- success
- message
SecurityIDs:
properties:
SecurityIDs:
type: array
items:
type: integer
example:
- '2786758'
- '3593999'
- '4005044'
ApplSeqNums:
properties:
ApplSeqNums:
type: array
items:
type: integer
example:
- 6745122
- 5468432
Messages:
properties:
Messages:
type: array
items:
type: object
example:
- MessageHeader:
BodyLen: 32
TemplateID: 13301
MsgSeqNum: 27
ApplSeqNum: 6745122
SecurityID: 4233128
SecurityStatus: 1
SecurityTradingStatus: 204
MarketCondition: 0
FastMarketIndicator: 0
SecurityTradingEvent: null
SoldOutIndicator: null
TransactTime: '1589180100007258166'
Dates:
properties:
Dates:
type: array
items:
type: integer
example:
- 20200102
- 20200103
- 20200106
MarketSegmentIDs:
properties:
MarketSegmentIDs:
type: array
items:
type: integer
example:
- 589
- 675
- 1210
TransactTimes:
properties:
TransactTimes:
type: array
items:
type: string
format: UTCTimestamp
example:
- '1589175000156121100'
- '1589180100007332308'
- '1589180400061095876'
- '1589211910025122757'
MarketIDs:
properties:
MarketIDs:
type: array
items:
type: string
example:
- XETR
- XEUR
parameters:
date:
name: date
in: path
description: Trading day in the format YYYYMMDD
example: 20200106
required: true
schema:
type: integer
applSeqNumFilter:
name: ApplSeqNum
in: query
description: 'Filter by application sequence number.<br/> (Multiple values must be separated by comma)
'
example: 6745122
required: false
schema:
type: integer
marketSegmentId:
name: marketSegmentId
in: path
description: Unique product identifier or product pool identifier on T7
example: 1210
required: true
schema:
type: integer
mode:
in: query
name: mode
description: "Define the output format for the response.<br/> Mode options:\n * `reference` (default) - Shows a list of the referencing IDs\n * `detailed` - Shows a list of messages including their details\n"
required: false
schema:
type: string
enum:
- reference
- detailed
msgSeqNum:
name: msgSeqNum
in: path
description: Message sequence number.
example: '4294967295'
required: true
schema:
type: integer
limit:
name: limit
in: query
description: Max number of elements in the response.
required: false
schema:
type: integer
example: 100
default: No restriction
transactTime:
name: transactTime
in: path
description: Transaction time as nanoseconds since 1970
example: '1589175000156121100'
required: true
schema:
type: string
format: UTCTimestamp
applSeqNum:
name: applSeqNum
in: path
description: Application sequence number
example: '6745122'
required: true
schema:
type: integer
to:
name: to
in: query
description: 'Ending time for the time interval filter.<br/> Format: Nanoseconds since 1970 (EOBI TransactTime)
'
example: '1589175000156121100'
required: false
schema:
type: string
msgSeqNumFilter:
name: MsgSeqNum
in: query
description: 'Filter by message sequence number.<br/> (Multiple values must be separated by comma)
'
example: 4294967295
required: false
schema:
type: integer
templateIdFilter:
name: TemplateId
in: query
description: 'Filter by template identifier.<br/> (Multiple values must be separated by comma)
'
example: 13101
required: false
schema:
type: integer
marketId:
name: marketId
in: path
description: Market identifier code as specified in ISO 10383.
example: XEUR
required: true
schema:
type: string
from:
name: from
in: query
description: 'Starting time for the time interval filter.<br/> Format: Nanoseconds since 1970 (EOBI TransactTime)
'
example: '1589175000156121100'
required: false
schema:
type: string
securityId:
name: securityId
in: path
description: Unique security identifier on T7
example: 27299
required: true
schema:
type: integer
securitySchemes:
bearerAuth:
type: http
scheme: bearer