A7 Analytics Platform - Precalc API

Management of precalculated analytics runs on the A7 Analytics Platform.

Operations 11

GET /precalc Retrieve list of precalc owners #
GET /precalc/{owner} Retrieve list of precalc jobs #
GET /precalc/{owner}/{precalc} Retrieve precalc job definition #
PUT /precalc/{owner}/{precalc} Create precalc job #
DELETE /precalc/{owner}/{precalc} Delete precalc job #
PATCH /precalc/{owner}/{precalc}/activate Activate precalc job #
PATCH /precalc/{owner}/{precalc}/deactivate Deactivate precalc job #
GET /precalc/{owner}/{precalc}/ Retrieve dates for precalc job #
GET /precalc/{owner}/{precalc}/{date} Retrieve tasks for precalc job #
GET /precalc/{owner}/{precalc}/{date}/{task} Retrieve result-sets for task #
GET /precalc/{owner}/{precalc}/{date}/{task}/{result} Retrieve data for result table #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/a7-precalc-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

deutsche-boerse-precalc-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: A7 Analytics Platform - Precalc Precalc API
  description: A7 Analytics Platform for the main T7 trading venues of Deutsche Börse Group.
  contact:
    name: Deutsche Börse Data & Analytics
    url: https://www.mds.deutsche-boerse.com
    email: analytics@deutsche-boerse.com
  version: 1.0.1
servers:
- url: /api/v1
  description: A7 production environment
security:
- bearerAuth: []
tags:
- name: Precalc API
paths:
  /precalc:
    get:
      tags:
      - Precalc API
      summary: Retrieve list of precalc owners
      description: The request delivers a list of owners the user has permission to access.
      operationId: getOwners
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Owners'
            application/gzip:
              schema:
                $ref: '#/components/schemas/Owners'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /precalc/{owner}:
    get:
      tags:
      - Precalc API
      summary: Retrieve list of precalc jobs
      description: The request delivers all available precalcs jobs for the given owner.
      operationId: getPrecalcJobs
      parameters:
      - $ref: '#/components/parameters/owner'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Jobs'
                - $ref: '#/components/schemas/InternalError'
            application/gzip:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Jobs'
                - $ref: '#/components/schemas/InternalError'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /precalc/{owner}/{precalc}:
    get:
      tags:
      - Precalc API
      summary: Retrieve precalc job definition
      description: The request delivers the definition for the given precalc job of the given owner.
      operationId: getPrecalcDef
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/JobDefinition'
                - $ref: '#/components/schemas/InternalError'
            application/gzip:
              schema:
                oneOf:
                - $ref: '#/components/schemas/JobDefinition'
                - $ref: '#/components/schemas/InternalError'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    put:
      tags:
      - Precalc API
      summary: Create precalc job
      description: 'The request creates a new precalc job with the specified parameters.

        Please be aware that updating existing precalc jobs is not possible. To update a job please delete the existing one first and then create it again.'
      operationId: addPrecalcData
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      requestBody:
        $ref: '#/components/requestBodies/putJobBody'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/SuccessMessage'
                - $ref: '#/components/schemas/InternalError'
            application/gzip:
              schema:
                oneOf:
                - $ref: '#/components/schemas/SuccessMessage'
                - $ref: '#/components/schemas/InternalError'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    delete:
      tags:
      - Precalc API
      summary: Delete precalc job
      description: 'The request deletes the specified precalc job.

        Please be aware that associated datasets are not delete automatically. The dataset API can be used to delete these datasets as well.'
      operationId: delPrecalcData
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
            application/gzip:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /precalc/{owner}/{precalc}/activate:
    patch:
      tags:
      - Precalc API
      summary: Activate precalc job
      description: The request activates the specified precalc job
      operationId: activatePrecalc
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
            application/gzip:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /precalc/{owner}/{precalc}/deactivate:
    patch:
      tags:
      - Precalc API
      summary: Deactivate precalc job
      description: The request deactivates the specified precalc job
      operationId: deactivatePrecalc
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
            application/gzip:
              schema:
                $ref: '#/components/schemas/SuccessMessage'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /precalc/{owner}/{precalc}/:
    get:
      tags:
      - Precalc API
      summary: Retrieve dates for precalc job
      description: The request delivers the available dates where tasks are available for the selected owner and precalc job
      operationId: getPrecalcData
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Dates'
                - $ref: '#/components/schemas/InternalError'
            application/gzip:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Dates'
                - $ref: '#/components/schemas/InternalError'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /precalc/{owner}/{precalc}/{date}:
    get:
      tags:
      - Precalc API
      summary: Retrieve tasks for precalc job
      description: The request delivers the available tasks for the selected owner, precalc job and date
      operationId: getTasks
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      - $ref: '#/components/parameters/date'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Tasks'
                - $ref: '#/components/schemas/InternalError'
            application/gzip:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Tasks'
                - $ref: '#/components/schemas/InternalError'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /precalc/{owner}/{precalc}/{date}/{task}:
    get:
      tags:
      - Precalc API
      summary: Retrieve result-sets for task
      description: The request delivers the available result-sets for the selected owner, precalc job, date and task
      operationId: getResultSets
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      - $ref: '#/components/parameters/date'
      - $ref: '#/components/parameters/task'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Results'
                - $ref: '#/components/schemas/InternalError'
            application/gzip:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Results'
                - $ref: '#/components/schemas/InternalError'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /precalc/{owner}/{precalc}/{date}/{task}/{result}:
    get:
      tags:
      - Precalc API
      summary: Retrieve data for result table
      description: The request delivers the generated data for the selected owner, precalc job, date, task and result-set
      operationId: getData
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/precalc'
      - $ref: '#/components/parameters/date'
      - $ref: '#/components/parameters/task'
      - $ref: '#/components/parameters/result'
      - $ref: '#/components/parameters/mode'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/DataJson'
                - $ref: '#/components/schemas/DataRaw'
                - $ref: '#/components/schemas/InternalError'
            application/gzip:
              schema:
                oneOf:
                - $ref: '#/components/schemas/DataJson'
                - $ref: '#/components/schemas/DataRaw'
                - $ref: '#/components/schemas/InternalError'
                format: binary
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
components:
  parameters:
    date:
      name: date
      in: path
      description: Date in format YYYYMMDD
      example: 20200102
      required: true
      schema:
        type: integer
    mode:
      name: mode
      in: query
      description: "Defines the output format for the result data.<br/> Mode options:\n  * `json` (default) - Returns the result data in json format\n  * `raw` - Returns the data as comma seperated list\n"
      schema:
        type: string
        enum:
        - json
        - raw
    precalc:
      name: precalc
      in: path
      description: Name of the precalc job
      example: EUR_TRADES
      required: true
      schema:
        type: string
    result:
      name: result
      in: path
      description: Name of the result table
      example: EurexTrades
      required: true
      schema:
        type: string
    owner:
      name: owner
      in: path
      description: User identifier code
      example: Owner1
      required: true
      schema:
        type: string
    task:
      name: task
      in: path
      description: Task number
      example: 1
      required: true
      schema:
        type: integer
  schemas:
    Owners:
      properties:
        Owners:
          type: array
          items:
            type: string
      example:
        Owners:
        - DBAG
        - Owner1
        - Owner2
    Dates:
      properties:
        Dates:
          type: array
          items:
            type: integer
      example:
        Dates:
        - 20200104
        - 20200103
        - 20200102
    InternalError:
      properties:
        success:
          type: boolean
        message:
          type: string
      required:
      - success
      - message
      example:
        success: false
        message: Specific error message
    SuccessMessage:
      properties:
        success:
          type: boolean
        message:
          type: string
      required:
      - success
      - name
      - message
      example:
        success: true
        message: Success message
    Results:
      properties:
        Results:
          type: array
          items:
            type: string
      example:
        Jobs:
        - EurexTrades
        - EurexBids
        - EurexAsks
    NewPrecalc:
      properties:
        name:
          type: string
        user:
          type: string
        dateFrom:
          type: integer
        dateTo:
          type: integer
        grouping:
          type: string
        data:
          type: array
          items:
            type: string
        algos:
          type: array
          items:
            type: object
            properties:
              algo:
                type: string
              assignments:
                type: array
                items:
                  type: object
                  properties:
                    resultset:
                      type: string
                    tables:
                      type: array
                      items:
                        type: string
              owner:
                type: string
              parameters:
                type: array
                items:
                  type: object
              schemas:
                type: array
                items:
                  type: object
                  properties:
                    columns:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          nullable:
                            type: boolean
                          type:
                            type: string
                    partitioning:
                      type: array
                      items:
                        type: string
                    table_name:
                      type: string
      example:
        name: XEUR_TOP-LEVEL
        user: user01
        dateFrom: 20210127
        dateTo: 20210127
        grouping: None
        data:
        - market: XEUR
          marketSegment: '589'
        algos:
        - algo: top_level
          assignments:
          - resultset: bid
            tables:
            - bid
          - resultset: ask
            tables:
            - ask
          - resultset: count
            tables:
            - count
          owner: dbag
          parameters: []
          schemas:
          - columns:
            - name: day
              type: INT
            - name: market
              type: STRING
            - name: marketsegmentid
              type: INT
            - name: ts
              type: Timestamp
            - name: price
              type: Int64
            partitioning_columns:
            - day
            - market
            - marketsegmentid
            table_name: bid
          - columns:
            - name: day
              type: INT
            - name: market
              type: STRING
            - name: marketsegmentid
              type: INT
            - name: ts
              type: Timestamp
            - name: price
              type: Int64
            partitioning_columns:
            - day
            - market
            - marketsegmentid
            table_name: ask
          - columns:
            - name: day
              type: INT
            - name: market
              type: STRING
            - name: marketsegmentid
              type: INT
            - name: bid
              type: Int64
            - name: ask
              type: Int64
            partitioning_columns:
            - day
            - market
            - marketsegmentid
            table_name: count
    Tasks:
      properties:
        Tasks:
          type: array
          items:
            type: integer
      example:
        Tasks:
        - 1
        - 2
        - 3
        - 4
    JobDefinition:
      properties:
        success:
          type: string
        name:
          type: string
        config:
          type: array
          items:
            type: object
            properties:
              user:
                type: string
              name:
                type: string
              desc:
                type: string
              dateFrom:
                type: integer
              DateTo:
                type: integer
              data:
                type: array
                items:
                  type: string
              grouping:
                type: array
                items:
                  type: string
              algos:
                type: array
                items:
                  type: object
                  properties:
                    algo:
                      type: string
                    owner:
                      type: string
                    parameters:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          value:
                            type: string
                    schemas:
                      type: array
                      items:
                        type: object
                        properties:
                          table_name:
                            type: string
                          partitioning_columns:
                            type: array
                            items:
                              type: string
                          columns:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                type:
                                  type: string
                                nullable:
                                  type: boolean
                    assignments:
                      type: array
                      items:
                        type: object
                        properties:
                          resultset:
                            type: string
                          tables:
                            type: array
                            items:
                              type: string
        state:
          type: object
      example:
        success: true
        name: traded_volume
        config:
          user: precalc
          name: traded_volume
          desc: Traded volume for XEUR, 515, 1168, 20201208
          dateFrom: 20201208
          dateTo: 20201208
          data:
          - market: XEUR
            marketSegment: '515'
          - market: XEUR
            marketSegment: '1168'
          grouping: None
          algos:
          - algo: traded_volume
            owner: dbag
            parameters:
            - name: TimeBin
              value: '2'
            schemas:
            - table_name: message
              partitioning_columns:
              - day
              - market
              - marketSegmentID
              columns:
              - name: day
                type: INT
              - name: market
                type: STRING
              - name: marketSegmentID
                type: INT
              - name: text
                type: String
            - table_name: ct
              partitioning_columns:
              - day
              - market
              - marketSegmentID
              columns:
              - name: day
                type: INT
              - name: market
                type: STRING
              - name: marketSegmentID
                type: INT
              - name: time
                type: Timestamp
              - name: volume
                type: Int64
            - table_name: a
              partitioning_columns:
              - day
              - market
              - marketSegmentID
              columns:
              - name: day
                type: INT
              - name: market
                type: STRING
              - name: marketSegmentID
                type: INT
              - name: time
                type: Timestamp
              - name: volume
                type: Int64
            - table_name: total
              partitioning_columns:
              - day
              - market
              - marketSegmentID
              columns:
              - name: day
                type: INT
              - name: market
                type: STRING
              - name: marketSegmentID
                type: INT
              - name: volume
                type: Int64
            assignments:
            - resultset: message
              tables:
              - message
            - resultset: ct
              tables:
              - ct
            - resultset: a
              tables:
              - a
            - resultset: total
              tables:
              - total
        state: {}
    DataJson:
      properties:
        Meta:
          type: object
          properties:
            table_name:
              type: string
            partitioning_columns:
              type: array
              items:
                type: string
            columns:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  type:
                    type: string
                  nullable:
                    type: boolean
        Data:
          type: array
          items:
            type: object
      example:
        meta:
          table_name: price
          partitioning_columns:
          - day
          - market
          - marketsegmentid
          columns:
          - name: day
            type: INT
          - name: market
            type: STRING
          - name: marketsegmentid
            type: INT
          - name: open
            type: DOUBLE
          - name: high
            type: DOUBLE
          - name: low
            type: DOUBLE
          - name: close
            type: DOUBLE
        data:
        - - 20201203
          - XEUR
          - 821
          - 20.75
          - 21.15
          - 20.325
          - 20.85
        - - 20201203
          - XEUR
          - 821
          - 20.75
          - 21.725
          - 20.325
          - 21.6
        - - 20201203
          - XEUR
          - 821
          - 20.75
          - 22.35
          - 20.325
          - 22.275
    DataRaw:
      type: string
    Jobs:
      properties:
        Jobs:
          type: array
          items:
            type: string
      example:
        Jobs:
        - EUR_TRADES
        - EUR_TRADES_GBX
        - ETR_BIDS
        - ETR_ASKS
  requestBodies:
    putJobBody:
      description: Precalc job definition
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NewPrecalc'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer