Aedifion Time Series API

The Time Series API from Aedifion — 2 operation(s) for time series.

Operations 2

GET /v2/datapoint/timeseries Get the time series data of a data point #
GET /v2/project/{project_id}/timeseries Get the time series data of a list of data points #

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/aedifion-time-series-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

aedifion-time-series-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Welcome to the interactive user interface (UI) for the aedifion REST API.


    This UI allows you to


    - browse documentation of all endpoints

    - explore schemas and examples of request parameters and responses

    - call endpoints and view responses


    Further documentation as well as extensive guides and tutorials are available in the official documentation.'
  title: Docs Timeseries API
  version: ''
servers:
- url: ''
tags:
- name: Time Series
paths:
  /v2/datapoint/timeseries:
    get:
      description: 'Returns the measured time series data for the specified data point

        referenced by its name/dataPointID for the time interval specified by **start**

        and **end**.

        Returns the last (or respectively next) **max** observations, if either **start** nor **end** are provided.'
      operationId: get_datapoint_timeseries
      parameters:
      - description: The id of the project from which to query observations for a data point
        in: query
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: Name/ID of the data point, e.g., *bacnet100-4120-CO2*
        in: query
        name: dataPointID
        required: true
        schema:
          type: string
      - description: 'Return only observations *after* this date-time"


          If **start** is provided without **end**, the first **max** elements *after* **start** are returned.

          '
        in: query
        name: start
        required: false
        schema:
          format: date-time
          type: string
      - description: 'Return only observations *before* this date-time".


          If **end** is provided without **start**, the last **max** elements *before* **end** are returned.

          '
        in: query
        name: end
        required: false
        schema:
          format: date-time
          type: string
      - description: 'Maximum number of observations to return.

          - This option is ignored when both **start** and **end** are provided.

          - Setting **max** = 0 returns *all* available data points.

          '
        in: query
        name: max
        required: false
        schema:
          default: 1
          format: int64
          type: integer
      - description: "Desired sampling rate.\nThe returned observations are sampled down to the specified interval. The down sampling will be done by calculating the arithmetic average on all observations made within an interval. The timestamp will represent the beginning of the interval the resampling average is estimated for.\nAllowed intervals are integers combined with durations, like seconds (s), minutes (m), hours (h), and days (d), e.g.\n - \"10s\" specifies a sampling rate of \"once every 10 seconds\",\n - \"1h\" specifies a sampling rate of \"once every (1) hour\",\n - \"0s\", \"0m\", \"0h\", ... specify highest sampling rate available\n - \"auto\" specifies an automatic sampling rate\n"
        in: query
        name: samplerate
        schema:
          type: string
      - description: "Desired interpolation method.\nThis option is to be used while resampling. While resampling, the specified method will be used to interpolate missing data.\nDefault method: \"previous\"\nAvailable options:\n - \"previous\" Reports the value from the previous time interval for time intervals with no data.\n - \"linear\" Reports the results of linear interpolation for time intervals with no data.\n - \"null\" Reports null for time intervals with no data but returns a timestamp. This is the same as the default behavior.\n - \"none\"  Reports no timestamp and no value for time intervals with no data.\n"
        in: query
        name: interpolation
        schema:
          default: previous
          enum:
          - previous
          - linear
          - 'null'
          - none
          type: string
      - description: "Desired aggregation method to be used while interpolating over a timeframe.\nDefault method: \"mean\"\nAvailable options:\n - \"mean\"\n - \"min\"\n - \"max\"\n - \"mode\"\n - \"median\"\n - \"distinct\"\n - \"count\"\n"
        in: query
        name: aggregation
        required: false
        schema:
          default: mean
          enum:
          - mean
          - min
          - max
          - mode
          - median
          - distinct
          - count
          type: string
      - description: "Return only list of timeseries data format, i.e.\n - without tags\n - compressed timeseries format, i.e. [(time1, val1), ..., (timen, valn)]\n"
        in: query
        name: short
        schema:
          default: false
          type: boolean
      - description: 'Returns the last recorded value on the requested start and end timestamp if there does not exist an observation at this precise time.

          '
        in: query
        name: closed_interval
        schema:
          default: false
          type: boolean
      - description: 'The optional system of units in which the timeseries data should be returned (Example: **metric**).

          Request the **GET /v2/labels/systems** endpoint to fetch available units systems.

          '
        in: query
        name: units_system
        schema:
          type: string
      - description: 'The optional currency system in which the timeseries data should be returned (Example: **EUR**).

          Request the **GET /v2/labels/systems** endpoint to fetch available currency systems.

          '
        in: query
        name: currency_system
        schema:
          type: string
      - description: 'The optional units in which the timeseries data should be returned.

          This overrides the **units_system** and **currency_system** parameters.

          '
        in: query
        name: units
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeseriesWithContext'
          description: Successful operation. A list of observations for the specified data point is returned.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''get''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'At least one datapoint could not be converted, e.g., due to the missing `units` tag or the requested unit conversion is not supported.

            '
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Get the time series data of a data point
      tags:
      - Time Series
      x-openapi-router-controller: app.controllers.datapoint_controller
  /v2/project/{project_id}/timeseries:
    get:
      description: 'Returns the measured time series data for the specified data points

        referenced by its name/dataPointID for the time interval specified by **start**

        and **end**.

        Returns the last (or respectively next) **max** observations, if either **start** nor **end** are provided.


        The unauthorized data points are ignored in the request.'
      operationId: get_project_timeseries
      parameters:
      - description: The id of the project
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: Name/ID of the data point, each dataPointID is separated by a new line.
        in: query
        name: dataPointIDs
        required: true
        schema:
          items:
            type: string
          type: array
      - description: 'Return only observations *after* this date-time"


          If **start** is provided without **end**, the first **max** elements *after* **start** are returned.

          '
        in: query
        name: start
        required: false
        schema:
          format: date-time
          type: string
      - description: 'Return only observations *before* this date-time".


          If **end** is provided without **start**, the last **max** elements *before* **end** are returned.

          '
        in: query
        name: end
        required: false
        schema:
          format: date-time
          type: string
      - description: 'Maximum number of observations to return.

          - This option is ignored when both **start** and **end** are provided.

          - Setting **max** = 0 returns *all* available data points

          '
        in: query
        name: max
        required: false
        schema:
          default: 1
          format: int64
          type: integer
      - description: "Desired sampling rate.\nThe returned observations are sampled down to the specified interval. The down sampling will be done by calculating the arithmetic average on all observations made within an interval. The timestamp will represent the beginning of the interval the resampling average is estimated for.\nAllowed intervals are integers combined with durations, like seconds (s), minutes (m), hours (h), and days (d), e.g.\n - \"10s\" specifies a sampling rate of \"once every 10 seconds\",\n - \"1h\" specifies a sampling rate of \"once every (1) hour\",\n - \"0s\", \"0m\", \"0h\", ... specify highest sampling rate available\n - \"auto\" specifies an automatic sampling rate\n"
        in: query
        name: samplerate
        schema:
          type: string
      - description: "Desired interpolation method.\nThis option is to be used while resampling. While resampling, the specified method will be used to interpolate missing data.\nDefault method: \"previous\"\nAvailable options:\n - \"previous\" Reports the value from the previous time interval for time intervals with no data.\n - \"linear\" Reports the results of linear interpolation for time intervals with no data.\n - \"null\" Reports null for time intervals with no data but returns a timestamp. This is the same as the default behavior.\n - \"none\"  Reports no timestamp and no value for time intervals with no data.\n"
        in: query
        name: interpolation
        schema:
          default: previous
          enum:
          - previous
          - linear
          - 'null'
          - none
          type: string
      - description: "Desired aggregation method to be used while interpolating over a timeframe.\nDefault method: \"mean\"\nAvailable options:\n - \"mean\"\n - \"min\"\n - \"max\"\n - \"mode\"\n - \"median\"\n - \"distinct\"\n - \"count\"\n"
        in: query
        name: aggregation
        required: false
        schema:
          default: mean
          enum:
          - mean
          - min
          - max
          - mode
          - median
          - distinct
          - count
          type: string
      - description: "Return only list of timeseries data format, i.e.\n - without tags\n - compressed timeseries format, i.e. [(time1, val1), ..., (timen, valn)]\n"
        in: query
        name: short
        schema:
          default: false
          type: boolean
      - description: 'Returns the last recorded value on the requested start and end timestamp if there does not exist an observation at this precise time.

          '
        in: query
        name: closed_interval
        schema:
          default: false
          type: boolean
      - description: 'The optional system of units in which the timeseries data should be returned (Example: **metric**).

          Request the **GET /v2/labels/systems** endpoint to fetch available units systems.

          '
        in: query
        name: units_system
        schema:
          type: string
      - description: 'The optional currency system in which the timeseries data should be returned (Example: **EUR**).

          Request the **GET /v2/labels/systems** endpoint to fetch available currency systems.

          '
        in: query
        name: currency_system
        schema:
          type: string
      - description: 'The optional units for datapoints in which their timeseries data should be returned.

          The order of the units must correspond to the **dataPointIDs**'' order.

          '
        in: query
        name: units
        schema:
          items:
            type: string
          type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/TimeseriesWithContext'
                type: array
          description: 'Successful operation.

            A list of observations for the specified data point is returned, along with any datapoints that encountered unit conversion errors and their corresponding error messages.

            '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''get''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'At least one datapoint could not be converted, e.g., due to the missing `units` tag or the requested unit conversion is not supported.

            '
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Get the time series data of a list of data points
      tags:
      - Time Series
      x-openapi-router-controller: app.controllers.project_controller
components:
  schemas:
    Timeseries:
      items:
        $ref: '#/components/schemas/Observation'
      type: array
    Tag:
      properties:
        id:
          format: int64
          type: integer
        key:
          type: string
        value:
          type: string
      required:
      - id
      - key
      type: object
    Observation:
      properties:
        time:
          type: string
        value:
          format: float
          type: number
      required:
      - time
      - value
    Error:
      properties:
        details:
          properties: {}
          type: object
        error:
          type: string
        operation:
          enum:
          - ''
          - get
          - create
          - delete
          - update
          type: string
        success:
          default: false
          type: boolean
      required:
      - error
      type: object
    TimeseriesWithContext:
      properties:
        data:
          $ref: '#/components/schemas/Timeseries'
        dataPointID:
          type: string
        datapoint_hash_id:
          type: string
        error:
          description: 'Optional error message describing why the data could not be loaded or processed, for example due to a unit conversion failure or missing units tag.

            '
          type: string
        tags:
          items:
            $ref: '#/components/schemas/TagAssociation'
          type: array
        units:
          type: string
    TagAssociation:
      allOf:
      - $ref: '#/components/schemas/Tag'
      - properties:
          confirmed:
            type: boolean
          probability:
            type: number
          protected:
            type: boolean
          source:
            type: string
        type: object
  securitySchemes:
    basicAuth:
      scheme: basic
      type: http
      x-basicInfoFunc: app.controllers.auth.connexion_basic_auth
    openIDConnect:
      flows:
        implicit:
          authorizationUrl: https://auth.aedifion.io/realms/aedifion/protocol/openid-connect/auth
          scopes:
            openid: Use OpenID Connect (required)
      type: oauth2
      x-tokenInfoFunc: app.controllers.auth.connexion_token_info