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.
openapi: 3.2.0
info:
title: Rebase Grid Account 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: Account
description: The owner of an API key, and the deployed build.
paths:
/version:
get:
tags:
- Account
summary: Version
security: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Version'
'503':
$ref: '#/components/responses/Unavailable'
operationId: getVersion
x-operation-id-source: derived
/me:
get:
tags:
- Account
summary: Account
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Me'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
'503':
$ref: '#/components/responses/Unavailable'
operationId: getMe
x-operation-id-source: derived
components:
schemas:
Version:
type: object
required:
- sha
- built_at
- index_built_at
- series
properties:
sha:
type: string
built_at:
type: string
index_built_at:
type:
- string
- 'null'
description: Null until the series index has been built.
series:
type: integer
description: Series in the index, 0 while it warms.
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.
Me:
type: object
required:
- email
- name
properties:
email:
type: string
name:
type: string
responses:
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'
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.'