A7 Analytics Platform - Dataset API
Manage customer datasets on the A7 Analytics Platform (versions 1 and 2 of the Dataset API).
Manage customer datasets on the A7 Analytics Platform (versions 1 and 2 of the Dataset API).
openapi: 3.0.0
info:
title: A7 Analytics Platform - Algo management Algo management API Dataset API 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: Dataset API
paths:
/dataset:
get:
tags:
- Dataset API
summary: Retrieve list of dataset owners
description: 'The request delivers the list of owners the user has permission to access.<br/> If the mode parameter is set to `detailed`, the request also returns a list of the datasets assigned to each owner.
'
operationId: getOwners
parameters:
- $ref: '#/components/parameters/mode'
responses:
'200':
description: successful operation
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/OwnerList'
- $ref: '#/components/schemas/OwnerTablesList'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'422':
$ref: '#/components/responses/422'
/dataset/{owner}:
get:
tags:
- Dataset API
summary: Retrieve list of available datasets
description: The request delivers all available datasets assigned to the given owner.
operationId: getAvailableDatasets
parameters:
- $ref: '#/components/parameters/owner'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Datasets'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'422':
$ref: '#/components/responses/422'
/dataset/{owner}/{dataset}:
get:
tags:
- Dataset API
summary: Retrieve specification (schema) of given dataset
description: The request delivers the specification of the given dataset.
operationId: getDatasetSpecs
parameters:
- $ref: '#/components/parameters/owner'
- $ref: '#/components/parameters/dataset'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DatasetSpecs'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
delete:
tags:
- Dataset API
summary: Delete dataset
description: The request deletes the given dataset.
operationId: deleteDataset
parameters:
- $ref: '#/components/parameters/owner'
- $ref: '#/components/parameters/dataset'
responses:
'200':
description: successful operation
content:
application/json:
schema:
properties:
success:
type: string
message:
type: string
required:
- success
- message
example:
success: 'true'
message: Success message
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
/dataset/{owner}/{dataset}/data:
get:
tags:
- Dataset API
summary: Query result of given dataset
description: The request delivers the results of the given dataset.
operationId: getDatasetResults
parameters:
- $ref: '#/components/parameters/owner'
- $ref: '#/components/parameters/dataset'
- $ref: '#/components/parameters/select'
- $ref: '#/components/parameters/where'
- $ref: '#/components/parameters/orderBy'
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DatasetResultsWithMeta'
text/csv:
schema:
$ref: '#/components/schemas/DatasetResults'
application/gzip:
schema:
$ref: '#/components/schemas/DatasetResultsWithMeta'
format: binary
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
/dataset/{provider}:
get:
tags:
- Dataset API
summary: Retrieve list of available datasets of a single provider
description: The request delivers all available datasets assigned to the given provider.
operationId: getAvailableDatasets
parameters:
- $ref: '#/components/parameters/provider'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Datasets_2'
application/gzip:
schema:
$ref: '#/components/schemas/Datasets_2'
format: binary
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/dataset/{provider}/{dataset}:
get:
tags:
- Dataset API
summary: Retrieve specification (schema) of given dataset
description: The request delivers the specification of the given dataset.
operationId: getDatasetSpecs
parameters:
- $ref: '#/components/parameters/provider'
- $ref: '#/components/parameters/dataset_2'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DatasetSpecs_2'
application/gzip:
schema:
$ref: '#/components/schemas/DatasetSpecs_2'
format: binary
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/dataset/{provider}/{dataset}/{date}:
get:
tags:
- Dataset API
summary: Retrieve results of given dataset for the selected date
description: The request delivers the results of the given dataset.
operationId: getDatasetResultsForDate
parameters:
- $ref: '#/components/parameters/provider'
- $ref: '#/components/parameters/dataset_2'
- $ref: '#/components/parameters/date'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit_2'
- $ref: '#/components/parameters/queryParams'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: string
text/csv:
schema:
type: string
application/gzip:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/dataset/{provider}/{dataset}/data:
get:
tags:
- Dataset API
summary: Retrieve result of given dataset
description: The request delivers the results of the given dataset.
operationId: getDatasetResults
parameters:
- $ref: '#/components/parameters/provider'
- $ref: '#/components/parameters/dataset_2'
- $ref: '#/components/parameters/dates'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit_2'
- $ref: '#/components/parameters/params'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: string
text/csv:
schema:
type: string
application/gzip:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/dataset/{provider}/{dataset}/query:
post:
tags:
- Dataset API
summary: Retrieve result of given dataset query
description: The request queries the dataset and returns the matching results.
operationId: queryDatasetResults
parameters:
- $ref: '#/components/parameters/provider'
- $ref: '#/components/parameters/dataset_2'
- $ref: '#/components/parameters/dates'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit_2'
requestBody:
description: Query string as SQL 'where' clause
required: true
content:
text/plain:
schema:
type: string
examples:
one:
summary: Select dataset content by ISIN pattern
value: ISIN like 'DE%'
two:
summary: Select dataset content by multiple ISINs
value: ISIN IN ('DE0005810055', 'DE0008469594', 'DE0008469495')
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: string
text/csv:
schema:
type: string
application/gzip:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
components:
parameters:
dataset:
name: dataset
in: path
description: Name of the dataset
example: TRADES
required: true
schema:
type: string
format:
name: format
in: query
description: Defines the format of the response.
schema:
type: string
enum:
- csv
- json
default: json
params:
name: params
in: query
description: any additional query parameters
schema:
type: object
additionalProperties:
type: string
style: form
explode: true
example: Isin=DE0005810055,Price=162.0
owner:
name: owner
in: path
description: User identifier code
example: Owner1
required: true
schema:
type: string
date:
name: date
in: path
description: Date (fact date) of the data to be retrieved (as YYYYMMDD)
example: 20220121
required: true
schema:
type: string
pattern: ^20\d{2}[01]\d[0-3]\d$
orderBy:
name: orderBy
in: query
required: false
description: 'Defines the fields and the order the result will be sorted by. <br/> Multiple fields have to be separated by comma. <br/> ASC/DESC must be added to define the sort order.
'
example: MarketSegmentID,SecurityID ASC
schema:
type: string
dates:
name: dates
in: query
description: 'Data filter by date (default value - when omitted - refers to the latest available date); possible values: YYYYMMDD (single date), YYYYMMDD-YYYYMMDD (days between start - end date), YYYYMMDD,YYYYMMDD (comma separated list of dates). There can be some restrictions for individual datasets, thus only single date value will be accepted. Please read the dataset documentation for further details.'
example: '20211224'
required: false
schema:
type: string
fields:
name: fields
in: query
description: The list of fields to be returned. (by default - wihout fields parameter - all fields will be returned)
example: ISIN,PRICE
required: false
schema:
type: string
default: '*'
select:
name: select
in: query
description: Defines the fields which will be included in the result data.<br/> Multiple fields have to be separated by comma.<br/> `*` can be used to select all fields availale in the dataset.<br/>
example: MarketSegmentID,Currency
schema:
type: string
default: '*'
mode:
name: mode
in: query
description: "Defines the level of detail for the output.<br/> Mode options:\n * `compact` (default) - Returns a list of owners\n * `detailed` - Returns a list of owners and their respective datasets\n"
schema:
type: string
enum:
- compact
- detailed
default: compact
limit:
name: limit
in: query
description: Limit the number of elements in the response (null = 1000). Max value is 10000.
example: '100'
schema:
type: string
default: null
limit_2:
name: limit
in: query
description: Limit the number of elements in the response (default is 10000 if omitted). Max value is 1000000.
example: '100'
schema:
type: string
default: null
dataset_2:
name: dataset
in: path
description: Name of the dataset
example: trades
required: true
schema:
type: string
queryParams:
name: params
in: query
description: any additional query parameters. The mandatory fields must be set here
schema:
type: object
additionalProperties:
type: string
style: form
explode: true
example: Isin=DE0005810055,Price=162.0
where:
name: where
in: query
description: "Defines criteria to filter the result data.<br> The following rules apply:\n - `Parameter=value` filters for data which contains a specific value for the given parameter<br>\n <b>Example:</b> MarketSegmentID=1210<br><br>\n - `Parameter!=value` filters for data which does NOT contain the specified value for the given parameter<br>\n <b>Example:</b> marketSegmentId!=1210<br><br>\n - `Parameter<value` filters for data which contains values smaller than the specified value for the given parameter<br>\n <b>Example:</b> price<1000<br><br>\n - `Parameter<=value` filters for data which contains values smaller than or equal to the specified value for the given parameter<br>\n <b>Example:</b> price<=1000<br><br> \n - `Parameter>value` filters for data which contains values larger than the specified value for the given parameter<br>\n <b>Example:</b> price>1000<br><br>\n - `Parameter>=value` filters for data which contains values larger than or equal to the specified value for the given parameter<br>\n <b>Example:</b> price>=1000<br><br> \n - `Parameter in(value1,value2,...)` filters for data which contains at least one of the specified values for the given parameter<br>\n <b>Example:</b> marketSegmentId in(1210,1211,1213)<br><br>\n - `&&` combines multiple filter criteria with a logical AND<br>\n <b>Example:</b> marketSegmentId=1210&&securityId=6565671 <br><br>\n - `||` combines multiple filter criteria with a logical OR<br>\n <b>Example:</b> marketSegmentId=1210||securityId=6565671<br><br>\n - `()` manipulates the order in which parameters combined with AND/OR are evaluated<br>\n <b>Example:</b> (marketSegmentId=1210&&securityId!=6565671)||(marketsegmentId in(1210,589)&&cuerrency!=EUR)<br>\n \n<b>Depending on the implementation it may be necessary to use URL encoding for special characters. In this case please use the respective codes (e.g. %27) instead of the characters.</b>\n"
schema:
type: string
example: MarketSegmentID=1210
provider:
name: provider
in: path
description: Dataset provider identification
example: eurex
required: true
schema:
type: string
schemas:
FieldSpec:
properties:
name:
type: string
type:
type: string
example:
name: Market
type: String
DatasetSpecs:
properties:
name:
type: string
fields:
type: array
items:
$ref: '#/components/schemas/FieldSpec'
partitionFields:
type: array
items:
$ref: '#/components/schemas/FieldSpec'
statistics:
$ref: '#/components/schemas/StatisticSpec'
example:
name: TRADES
fields:
- name: Market
type: String
- name: MarketSegmentID
type: INTEGER
- name: SecurityID
type: Integer
partitionFields:
- name: Date
type: DATE
- name: Market
type: String
- name: MarketSegmentID
type: INTEGER
statistics:
numberOfRows: 9998726
allocatedDiscSpace: 20GB
OwnerList:
properties:
owners:
type: array
items:
type: string
example:
owners:
- DBAG
- ClientA
StatisticSpec:
properties:
numberOfRows:
type: integer
format: int64
allocatedDiscSpace:
type: string
example:
numberOfRows: 9998726
allocatedDiscSpace: 20GB
Datasets:
properties:
datasets:
type: array
items:
type: string
example:
datasets:
- TRADES
- DEPTH21
- QUOTE_MINBYMIN
FieldSpec_2:
properties:
name:
type: string
type:
type: string
info:
type: string
presence:
type: string
query:
type: string
example:
name: Market
type: String
info: Market information
presence: mandatory
query: mandatory
DatasetResultsWithMeta:
properties:
data:
type: array
items:
type: object
meta:
type: array
items:
$ref: '#/components/schemas/FieldSpec'
example:
data:
- - 65851025
- 65851025
- 1.11895E12
- 10000.0
- 14
- 20200521
- XEUR
- 589
- - 65501498
- 65501498
- 1.1758E12
- 10000.0
- 14
- 20200528
- XEUR
- 589
- - 99422946
- 99422946
- 3.057E9
- 1.958E7
- 14
- 20200522
- XETR
- 52983
- - 84087632
- 84087632
- 1.0639E12
- 10000.0
- 14
- 20200506
- XEUR
- 589
meta:
- name: date
type: int
- name: time
type: int
- name: price
type: double
- name: quantity
type: double
- name: tradeid
type: int
- name: day
type: int
- name: market
type: string
- name: marketsegmentid
type: int
Datasets_2:
properties:
datasets:
type: array
items:
$ref: '#/components/schemas/Dataset'
example:
datasets:
- name: trades
description: trade events with price, size, ...
type: time series
- name: openinterest
description: daily adjusted open interest qty
type: daily
- name: settlement
description: daily settlement prices
type: daily
- name: ohlct
description: daily trade statistics open/high/log/close/totel_volume
type: daily
OwnerTablesList:
properties:
owners:
type: array
items:
$ref: '#/components/schemas/OwnerTable'
example:
- owner: DBAG
dataSets:
- name: dataSet1,
fields:
- name: time
type: bigint
- name: volume
type: bigint
partitionFields:
- name: day
type: int
- name: market
type: string
statistics: null
- name: dataSet2,
fields:
- name: time
type: bigint
- name: volume
type: bigint
partitionFields:
- name: day
type: int
- name: market
type: string
statistics: null
- owner: ClientA
dataSets:
- name: dataSet3,
fields:
- name: time
type: bigint
- name: volume
type: bigint
partitionFields:
- name: day
type: int
- name: market
type: string
statistics: null
OwnerTable:
properties:
owner:
type: string
dataSets:
type: array
items:
type: object
properties:
name:
type: string
fields:
type: array
items:
type: object
properties:
name:
type: string
type:
type: string
partitionFields:
type: array
items:
type: object
properties:
name:
type: string
type:
type: string
statistics:
type: array
items:
type: object
DatasetRate:
properties:
weight:
type: integer
limit:
type: integer
DatasetResults:
properties:
data:
type: string
example: 'market,price,marketsegmentid,day,ts
XETR,77400,52105,20210127,1611734640138020461
XETR,77550,52105,20210127,1611734640138484359
XETR,77500,52105,20210127,1611734645905770626
XETR,77450,52105,20210127,1611734647820975768
'
DatasetSpecs_2:
properties:
name:
type: string
schemas:
type: array
items:
$ref: '#/components/schemas/FieldSpecValid'
example:
name: trades
schemas:
- valid_from: '2020-01-01'
fields:
- name: Isin
type: String
query: mandatory
- name: Symbol
type: String
- name: Date
type: String
- name: SecurityType
type: String
- name: Currency
type: String
- name: ContractDate
type: Integer
- name: ContractType
type: Integer
- name: SettlementMethod
type: String
- name: StrikePrice
type: Number
- name: ExerciseStyle
type: String
- name: OptionType
type: String
- name: EntryTime
type: Timestamp
- name: Price
type: Number
- name: Size
type: Number
FieldSpecValid:
properties:
valid_from:
type: string
valid_to:
type: string
fields:
type: array
items:
$ref: '#/components/schemas/FieldSpec_2'
Dataset:
properties:
name:
type: string
info:
type: string
license:
type: string
type:
type: string
format:
type: string
firstDate:
type: integer
lastDate:
type: integer
rate:
$ref: '#/components/schemas/DatasetRate'
securitySchemes:
bearerAuth:
type: http
scheme: bearer