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.

The A7 data can be accessed either via the user interface or via RESTful API.

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.

Security measures:
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.

A token can be generated at the A7 user interface. After login the user has to click on the user icon in the upper right corner, click on API token generation and finally click on Request API key. The generated token will be displayed directly in the user interface.

' 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.
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.
Multiple fields have to be separated by comma.
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.
Multiple fields have to be separated by comma.
`*` can be used to select all fields availale in the dataset.
example: MarketSegmentID,Currency schema: type: string default: '*' mode: name: mode in: query description: "Defines the level of detail for the output.
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.
The following rules apply:\n - `Parameter=value` filters for data which contains a specific value for the given parameter
\n Example: MarketSegmentID=1210

\n - `Parameter!=value` filters for data which does NOT contain the specified value for the given parameter
\n Example: marketSegmentId!=1210

\n - `Parameter\n Example: price<1000

\n - `Parameter<=value` filters for data which contains values smaller than or equal to the specified value for the given parameter
\n Example: price<=1000

\n - `Parameter>value` filters for data which contains values larger than the specified value for the given parameter
\n Example: price>1000

\n - `Parameter>=value` filters for data which contains values larger than or equal to the specified value for the given parameter
\n Example: price>=1000

\n - `Parameter in(value1,value2,...)` filters for data which contains at least one of the specified values for the given parameter
\n Example: marketSegmentId in(1210,1211,1213)

\n - `&&` combines multiple filter criteria with a logical AND
\n Example: marketSegmentId=1210&&securityId=6565671

\n - `||` combines multiple filter criteria with a logical OR
\n Example: marketSegmentId=1210||securityId=6565671

\n - `()` manipulates the order in which parameters combined with AND/OR are evaluated
\n Example: (marketSegmentId=1210&&securityId!=6565671)||(marketsegmentId in(1210,589)&&cuerrency!=EUR)
\n \nDepending 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.\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