Rebase Energy Describe API

What a timeseries measures, and the metadata of each provider that publishes it.

GitHub OpenAPI

Operations 1

GET /entities/{entity}/timeseries/{name} Timeseries metadata #

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/rebase-energy:rebase-energy-describe-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

rebase-energy-describe-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Rebase Grid Describe API
  version: '1'
  description: 'REST API for European power system data: production, consumption, prices, exchanges, capacities

    and balancing, collected from TSOs, exchanges and transparency platforms. Every value is stored

    as the provider published it, with the time it became known and every later version.


    The guides at grid.rebase.energy/docs/v1/ explain entities, timeseries names, providers and

    reading values; this document is the endpoint contract. Before scripting calls, read

    grid.rebase.energy/docs/v1/guides/efficient-calls/: one timeseries per values call, 240

    requests per minute per key, at most 100,000 points per values request, and the paging rules.


    No API key is needed: every endpoint but `/me` answers a request without one, at 10 requests

    per minute per IP address (grid.rebase.energy/docs/v1/guides/open-access/). A free key raises

    the limit to 240 per minute.'
servers:
- url: https://grid.rebase.energy/api/v1
security:
- apiKey: []
- {}
tags:
- name: Describe
  description: What a timeseries measures, and the metadata of each provider that publishes it.
paths:
  /entities/{entity}/timeseries/{name}:
    get:
      tags:
      - Describe
      summary: Timeseries metadata
      parameters:
      - $ref: '#/components/parameters/entity'
      - $ref: '#/components/parameters/name'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeseriesMetadata'
              example:
                entity:
                  id: IT-NO
                  kind: price_zone
                  parent: Italy
                  country: Italy
                  sync_area: sync:CESA
                name: consumption.realised_load.total_load
                definition:
                  path: consumption.realised_load.total_load
                  measures: net generation − exports + imports − absorbed (stored) energy
                  document: A65
                  baseline: true
                  ref: https://eepublicdownloads.entsoe.eu/clean-documents/Transparency/MoP_Ref2_DDD_v3r4.pdf
                component: null
                unit: MW
                providers:
                - provider: entsoe
                  resolution: PT15M
                  extent:
                    first: '2026-09-03T14:00:00Z'
                    last: '2026-10-12T10:45:00Z'
                  publication_time: measured
                  latency_minutes:
                    p05: 48
                    p50: 63
                    p95: 108
                  coverage: 1
                  annotations_seen:
                    a03_forward_fill: 2
                  values: /entities/IT-NO/timeseries/consumption.realised_load.total_load/values?provider=entsoe
                - provider: terna
                  resolution: PT15M
                  extent:
                    first: '2026-09-30T22:00:00Z'
                    last: '2026-10-11T21:45:00Z'
                  publication_time: measured
                  latency_minutes:
                    p05: 1760
                    p50: 6170
                    p95: 10715
                  coverage: 0.99
                  annotations_seen: {}
                  values: /entities/IT-NO/timeseries/consumption.realised_load.total_load/values?provider=terna
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          $ref: '#/components/responses/Unavailable'
      operationId: getEntitiesByEntityTimeseriesByName
      x-operation-id-source: derived
components:
  schemas:
    Licence:
      type: object
      description: The terms the publisher releases the data under (src/gridapi/licences.yaml). The data stays under these terms; follow them and show `attribution` when you republish it.
      required:
      - name
      - url
      - attribution
      properties:
        name:
          type: string
          description: The licence, e.g. `CC BY 4.0`; `unreviewed` when its terms are still being read.
        url:
          type:
          - string
          - 'null'
          description: The publisher's terms page.
        attribution:
          type:
          - string
          - 'null'
          description: The credit line the publisher asks for.
    TimeseriesMetadata:
      type: object
      required:
      - entity
      - name
      - definition
      - component
      - unit
      - data_type
      - columns
      - providers
      properties:
        entity:
          type: object
          properties:
            id:
              type: string
            kind:
              $ref: '#/components/schemas/Kind'
            parent:
              type:
              - string
              - 'null'
            country:
              type:
              - string
              - 'null'
            sync_area:
              type:
              - string
              - 'null'
        name:
          type: string
        definition:
          $ref: '#/components/schemas/Definition'
        component:
          oneOf:
          - $ref: '#/components/schemas/Component'
          - type: 'null'
        unit:
          type: string
        data_type:
          $ref: '#/components/schemas/DataType'
        columns:
          type: object
          description: 'Per provider, the columns of the series: `["value"]` for a plain series, `["p50", "p10", "p90"]` for a quantile family, one per fuel for a per-plant generation mix. A series with more than one column answers values as `points[].values` keyed by column.'
          additionalProperties:
            type: array
            items:
              type: string
            minItems: 1
        providers:
          type: array
          items:
            $ref: '#/components/schemas/ProviderMetadata'
          minItems: 1
    Kind:
      type: string
      enum:
      - sync_area
      - country
      - price_zone
      - area
      - aggregate
      - boundary
      - substation
      - plant
      - unit
      - portfolio
      - border
      - interconnector
    Definition:
      type: object
      required:
      - path
      - measures
      properties:
        path:
          type: string
        measures:
          type: string
        vs_baseline:
          type: string
        document:
          type:
          - string
          - 'null'
        baseline:
          type: boolean
        ref:
          type: string
    ProviderMetadata:
      type: object
      required:
      - provider
      - resolution
      - extent
      - publication_time
      - values
      properties:
        provider:
          type: string
        resolution:
          type:
          - string
          - 'null'
          description: ISO 8601 duration, null when the series has no fixed grid.
        resolution_history:
          type: array
          description: The grid changes over time, oldest first; from the platform series tag.
          items:
            type: object
            required:
            - valid_from
            - resolution
            properties:
              valid_from:
                type: string
                format: date-time
              resolution:
                type: string
        resolution_history_truncated:
          type: boolean
          description: True when the platform's 500-character tag cap dropped the oldest spans.
        extent:
          type:
          - object
          - 'null'
          description: Null when the platform reports no extent.
          properties:
            first:
              type: string
              format: date-time
            last:
              type: string
              format: date-time
        publication_time:
          type: string
          enum:
          - declared
          - measured
          description: declared = the provider states its publication time and we store it; measured = knowledge_time is when we observed the value appear.
        licence:
          oneOf:
          - $ref: '#/components/schemas/Licence'
          - type: 'null'
          description: The publisher's licence and the credit line to show when republishing; null when the licence register has no entry.
        latency_minutes:
          type:
          - object
          - 'null'
          properties:
            p05:
              type: integer
            p50:
              type: integer
            p95:
              type: integer
        coverage:
          type:
          - number
          - 'null'
          minimum: 0
          maximum: 1
        annotations_seen:
          type: object
          additionalProperties:
            type: integer
        component:
          $ref: '#/components/schemas/Component'
          description: Only when the component's meaning is provider-specific (per_provider in components.yaml).
        inputs:
          type: array
          items:
            type: string
          description: Only for provider rebase (clean series).
        method:
          type: string
          description: Only for provider rebase.
        values:
          type: string
          description: Path of the values call for this provider.
    Error:
      type: object
      required:
      - error
      - message
      properties:
        error:
          type: string
          enum:
          - not_found
          - bad_request
          - unauthorized
          - rate_limited
          - not_implemented
          - platform_unavailable
          - index_warming
        message:
          type: string
        param:
          type: string
          description: On bad_request, the offending parameter when there is one.
        anonymous:
          type: boolean
          description: On rate_limited, true when the request carried no API key.
        limit_rpm:
          type: integer
          description: On rate_limited without a key, the requests per minute an address may make.
        key_limit_rpm:
          type: integer
          description: On rate_limited without a key, the requests per minute a free key may make.
        retry_after_s:
          type: integer
          description: On rate_limited without a key, seconds to wait before repeating the request.
        sign_up:
          type: string
          description: Without a key, the form that requests a free one.
        docs:
          type: string
          description: Without a key, the documentation.
        info:
          type: string
          description: On rate_limited without a key, the Grid API product page.
        reason:
          type: string
          description: On not_found, `index_stale` when the series index may simply not have caught up with a new series.
        closest:
          type: array
          items:
            type: string
          description: On not_found, the three closest ids or names.
        providers:
          type: array
          items:
            type: string
          description: On bad_request for a missing/unknown provider, the providers available.
    Component:
      type: object
      required:
      - key
      - description
      properties:
        key:
          type: string
        description:
          type:
          - string
          - 'null'
        siblings:
          type: array
          items:
            type: string
          description: Other components of the same definition on this entity.
    DataType:
      type: string
      enum:
      - actual
      - forecast
      - capacity
      - price
      - schedule
      - other
      description: Derived from the category and sub-category of the name.
  responses:
    NotFound:
      description: Unknown entity, name or provider.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unavailable:
      description: The data platform did not answer (`platform_unavailable`) or the series index is still building (`index_warming`). Retry after the delay.
      headers:
        Retry-After:
          description: Seconds to wait.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: An API key that is not valid (`unauthorized`). A request with no key is served under the open limit; only `/me` answers it with this.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: 'The per-minute request limit is spent (`rate_limited`): 240 for a key, 5 for an address without one. Retry after the delay.'
      headers:
        Retry-After:
          description: Seconds to wait.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    name:
      name: name
      in: path
      required: true
      description: The quantity, `category.sub_category.definition[.component]`, never with the provider suffix.
      schema:
        type: string
        pattern: ^[a-z0-9_]+(\.[a-z0-9_]+){2,}$
    entity:
      name: entity
      in: path
      required: true
      description: 'The entity id, e.g. `SE-SE3`, `Sweden`, `sync:NSA`, `ca:DE-Amprion`, `bnd:GB-B1`, `sub:Blyth`, `border:FI~SE-SE3`, `icx:BritNed`, or a plant, unit or portfolio: `plant:11WD4SAEK2HS---S`, `unit:…`, `portfolio:…` — the key, or the name after the kind prefix (`plant:Säckingen hydroelectric plant`). A name shared by several records is 404 listing their ids. See the Entities guide for every kind.'
      schema:
        type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'Optional. The Grid API key, also accepted as `?api_key=`; without it a request is answered at 10 per minute per IP address. How to get a key: grid.rebase.energy/docs/v1/guides/authentication/. The key is in the API tab of the grid map.'