Engrate Core API

The Core API from Engrate — 5 operation(s) for core.

Operations 5

GET /core/v1/bidding-zones List Bidding Zones #
GET /core/v1/control-areas List Control Areas #
GET /core/v1/metering-grid-areas List Metering Grid Areas #
GET /core/v1/parties List Parties #
GET /core/v1/scheduling-areas List Scheduling Areas #

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/engrate:engrate-core-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

engrate-core-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Engrate Core API
  version: 1.0.0
servers:
- url: https://api.engrate.io
security:
- apiKeyAuth: []
tags:
- name: Core
paths:
  /core/v1/bidding-zones:
    get:
      description: 'List & filter bidding zones.


        If you specify multiple values for some filter parameter they are OR-ed. If you specify multiple separate filters they are "AND"-ed.'
      operationId: list_bidding_zones_core_v1_bidding_zones_get
      parameters:
      - description: Filter by EIC code(s)
        in: query
        name: id
        required: false
        schema:
          default: []
          description: Filter by EIC code(s)
          items:
            type: string
          title: Id
          type: array
      - description: Filter by name or short name using substring matching
        in: query
        name: name
        required: false
        schema:
          default: []
          description: Filter by name or short name using substring matching
          items:
            type: string
          title: Name
          type: array
      - description: Filter by ISO 3166-1 alpha-2 country codes
        in: query
        name: country
        required: false
        schema:
          default: []
          description: Filter by ISO 3166-1 alpha-2 country codes
          examples:
          - SE
          items:
            type: string
          title: Country
          type: array
      responses:
        '200':
          content:
            application/json:
              example:
                bidding_zones:
                - countries:
                  - SE
                  id: 10Y1001A1001A46L
                  name: Swedish Elspot Area 3
                  short_name: SE3
              schema:
                $ref: '#/components/schemas/GetBiddingZonesResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Bidding Zones
      tags:
      - Core
  /core/v1/control-areas:
    get:
      description: 'List & filter control areas.


        If you specify multiple values for some filter parameter they are OR-ed. If you specify multiple separate filters they are "AND"-ed.'
      operationId: list_control_areas_core_v1_control_areas_get
      parameters:
      - description: Filter by EIC code(s)
        in: query
        name: id
        required: false
        schema:
          default: []
          description: Filter by EIC code(s)
          items:
            type: string
          title: Id
          type: array
      - description: Filter by name or short name using substring matching
        in: query
        name: name
        required: false
        schema:
          default: []
          description: Filter by name or short name using substring matching
          items:
            type: string
          title: Name
          type: array
      - description: Filter by ISO 3166-1 alpha-2 country codes
        in: query
        name: country
        required: false
        schema:
          default: []
          description: Filter by ISO 3166-1 alpha-2 country codes
          examples:
          - DE
          items:
            type: string
          title: Country
          type: array
      responses:
        '200':
          content:
            application/json:
              example:
                control_areas:
                - countries:
                  - DE
                  id: 10YDE-VE-------2
                  name: Germany 50Hertz
                  short_name: DE-50HERTZ
              schema:
                $ref: '#/components/schemas/GetControlAreasResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Control Areas
      tags:
      - Core
  /core/v1/metering-grid-areas:
    get:
      description: 'List & filter Metering Grid Areas.


        If you specify multiple values for some filter parameter they are OR-ed. If you specify multiple separate filters they are "AND"-ed.


        For instance if you specify country=SE&country=DK, you''ll get MGAs in Denmark and Sweden. If you specify country=DK&city=Stockholm you''ll get no results as no MGAs cover both Stockholm and Denmark.


        See Metering Grid Area for details on MeteringGridArea.'
      operationId: list_metering_grid_areas_core_v1_metering_grid_areas_get
      parameters:
      - description: Filter by Engrate metering grid area id(s)
        in: query
        name: id
        required: false
        schema:
          default: []
          description: Filter by Engrate metering grid area id(s)
          items:
            format: uuid
            type: string
          title: Id
          type: array
      - description: Substring filter by name(s) of the metering grid area
        in: query
        name: name
        required: false
        schema:
          default: []
          description: Substring filter by name(s) of the metering grid area
          items:
            type: string
          title: Name
          type: array
      - description: Filter by [Extra Identifier](/api-reference/core/models/extra-identifier)(s)
        in: query
        name: extra_id
        required: false
        schema:
          default: []
          description: Filter by [Extra Identifier](/api-reference/core/models/extra-identifier)(s)
          items:
            type: string
          title: Extra Id
          type: array
      - description: Filter MGAs operated by the specified [Party](/api-reference/core/models/party)(s)
        in: query
        name: system_operator_id
        required: false
        schema:
          default: []
          description: Filter MGAs operated by the specified [Party](/api-reference/core/models/party)(s)
          items:
            format: uuid
            type: string
          title: System Operator Id
          type: array
      - description: Filter MGAs operated by the specified [Party](/api-reference/core/models/party)(s), convenience filter to search by extra ids
        in: query
        name: system_operator_extra_id
        required: false
        schema:
          default: []
          description: Filter MGAs operated by the specified [Party](/api-reference/core/models/party)(s), convenience filter to search by extra ids
          items:
            type: string
          title: System Operator Extra Id
          type: array
      - description: Filter by country(s)
        in: query
        name: country
        required: false
        schema:
          default: []
          description: Filter by country(s)
          items:
            type: string
          title: Country
          type: array
      - description: Filter by latitude, requires you to also specify lon; finds MGAs that cover the given location
        in: query
        name: lat
        required: false
        schema:
          anyOf:
          - type: number
          - type: 'null'
          description: Filter by latitude, requires you to also specify lon; finds MGAs that cover the given location
          title: Lat
      - description: Filter by longitude, requires you to also specify lat; finds MGAs that cover the given location
        in: query
        name: lon
        required: false
        schema:
          anyOf:
          - type: number
          - type: 'null'
          description: Filter by longitude, requires you to also specify lat; finds MGAs that cover the given location
          title: Lon
      - description: Filter by street address, requires that you also specify country and city
        in: query
        name: street
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by street address, requires that you also specify country and city
          title: Street
      - description: Filter by city, requires you also specify street and country
        in: query
        name: city
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by city, requires you also specify street and country
          title: City
      - description: Filter by zip/postal code, requires you also specify country
        in: query
        name: zipcode
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by zip/postal code, requires you also specify country
          title: Zipcode
      responses:
        '200':
          content:
            application/json:
              example:
                mgas:
                - extra_ids:
                  - kind: eic
                    value: 46Y000000000016G
                  - kind: se.mga_code
                    value: STO
                  id: 0199c317-25ec-7c00-b1a0-a1b2c3d4e5f6
                  name: Stockholm
                  scheduling_area_eic: 10Y1001A1001A47J
                  system_operator:
                    extra_ids:
                    - kind: eic
                      value: 46X000000000245K
                    id: 0199c317-25ec-7cf7-94cc-32a39f068433
              schema:
                $ref: '#/components/schemas/GetMeteringGridAreasResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Metering Grid Areas
      tags:
      - Core
  /core/v1/parties:
    get:
      description: 'List & filter market parties.


        If you specify multiple values for some filter parameter they are OR-ed. If you specify multiple separate filters they are "AND"-ed.


        See Party for details on Parties.'
      operationId: list_parties_core_v1_parties_get
      parameters:
      - description: Filter by Engrate party id(s)
        in: query
        name: id
        required: false
        schema:
          default: []
          description: Filter by Engrate party id(s)
          items:
            format: uuid
            type: string
          title: Id
          type: array
      - description: Filter by [Extra Identifiers](/api-reference/core/models/extra-identifier) - EIC, Ediel, VAT, and similar market-specific identifiers
        in: query
        name: extra_id
        required: false
        schema:
          default: []
          description: Filter by [Extra Identifiers](/api-reference/core/models/extra-identifier) - EIC, Ediel, VAT, and similar market-specific identifiers
          items:
            type: string
          title: Extra Id
          type: array
      - description: Filter by ISO 3166-1 alpha-2 country codes
        in: query
        name: country
        required: false
        schema:
          default: []
          description: Filter by ISO 3166-1 alpha-2 country codes
          examples:
          - SE
          items:
            type: string
          title: Country
          type: array
      - description: Filter by legal name using substring matching
        in: query
        name: name
        required: false
        schema:
          default: []
          description: Filter by legal name using substring matching
          items:
            type: string
          title: Name
          type: array
      - description: Filter by party role(s)
        in: query
        name: role
        required: false
        schema:
          default: []
          description: Filter by party role(s)
          examples:
          - system-operator
          items:
            type: string
          title: Role
          type: array
      responses:
        '200':
          content:
            application/json:
              example:
                parties:
                - countries:
                  - SE
                  extra_ids:
                  - kind: eic
                    value: 46X000000000245K
                  - kind: se.ediel
                    value: '24200'
                  id: 0199c317-25ec-7cf7-94cc-32a39f068433
                  name: Ellevio AB
              schema:
                $ref: '#/components/schemas/GetPartiesResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Parties
      tags:
      - Core
  /core/v1/scheduling-areas:
    get:
      description: 'List & filter scheduling areas.


        If you specify multiple values for some filter parameter they are OR-ed. If you specify multiple separate filters they are "AND"-ed.'
      operationId: list_scheduling_areas_core_v1_scheduling_areas_get
      parameters:
      - description: Filter by EIC code(s)
        in: query
        name: id
        required: false
        schema:
          default: []
          description: Filter by EIC code(s)
          items:
            type: string
          title: Id
          type: array
      - description: Filter by name or short name using substring matching
        in: query
        name: name
        required: false
        schema:
          default: []
          description: Filter by name or short name using substring matching
          items:
            type: string
          title: Name
          type: array
      - description: Filter by ISO 3166-1 alpha-2 country codes
        in: query
        name: country
        required: false
        schema:
          default: []
          description: Filter by ISO 3166-1 alpha-2 country codes
          examples:
          - SE
          items:
            type: string
          title: Country
          type: array
      responses:
        '200':
          content:
            application/json:
              example:
                scheduling_areas:
                - countries:
                  - SE
                  id: 10Y1001A1001A47J
                  name: Swedish Elspot Area 4
                  short_name: SE4
              schema:
                $ref: '#/components/schemas/GetSchedulingAreasResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Scheduling Areas
      tags:
      - Core
components:
  schemas:
    MeteringGridArea:
      description: 'A Metering Grid Area (MGA) is a core domain concept in the European energy market.


        The [ENTSO-E Harmonized Electricity Market Role Model](https://www.entsoe.eu/data/cim/role-models/) defines an MGA as:


        > A physical area where consumption, production and exchange can be measured. It is delimited by the placement of meters for continuous measurement for input to, and withdrawal from the area.


        In other words, an MGA is a collection of Metering Points operated by some System Operator, usually a DSO.'
      example:
        extra_ids:
        - kind: eic
          value: 46Y000000000016G
        - kind: se.mga_code
          value: STO
        id: 0199c317-25ec-7c00-b1a0-a1b2c3d4e5f6
        name: Stockholm
        scheduling_area_eic: 10Y1001A1001A47J
        system_operator:
          extra_ids:
          - kind: eic
            value: 46X000000000245K
          id: 0199c317-25ec-7cf7-94cc-32a39f068433
      properties:
        extra_ids:
          description: '[Extra Identifiers](/api-reference/core/models/extra-identifier) for this MGA'
          items:
            $ref: '#/components/schemas/ExtraIdentifier'
          title: Extra Ids
          type: array
        id:
          description: Unique identifier for the MGA
          format: uuid
          title: Id
          type: string
        name:
          description: Name of the metering grid area
          title: Name
          type: string
        scheduling_area_eic:
          description: EIC code for the Scheduling Area this Metering Grid Area belongs to
          title: Scheduling Area Eic
          type: string
        system_operator:
          $ref: '#/components/schemas/Identifier'
          description: The [Party](/api-reference/core/models/party) that operates this MGA
      required:
      - extra_ids
      - id
      - name
      - scheduling_area_eic
      - system_operator
      title: MeteringGridArea
      type: object
    ControlArea:
      description: 'A Control Area is a core domain concept in the European energy market.


        The [ENTSO-E Harmonized Electricity Market Role Model](https://www.entsoe.eu/data/cim/role-models/) defines a Control Area as:


        > A coherent part of the interconnected system, operated by a single System Operator and shall include connected physical loads and/or generation units if any.


        In other words, it is the grid a single TSO operates. It is distinct from the Scheduling Area, which is the area sharing one imbalance price. One good example is Germany, where a single Scheduling Area (DE/LU) is divided into four Control Areas — 50Hertz, Amprion, TenneT DE and TransnetBW.'
      example:
        countries:
        - DE
        id: 10YDE-VE-------2
        name: Germany 50Hertz
        short_name: DE-50HERTZ
      properties:
        countries:
          description: ISO 3166-1 alpha-2 country codes this control area covers
          items:
            type: string
          title: Countries
          type: array
        id:
          description: EIC code identifying this control area
          title: Id
          type: string
        name:
          description: Full official name of the control area
          title: Name
          type: string
        short_name:
          description: Short display name for the control area
          title: Short Name
          type: string
      required:
      - countries
      - id
      - name
      - short_name
      title: ControlArea
      type: object
    IdentifierKind:
      enum:
      - eic
      - vat
      - gln
      - se.ediel
      - se.mga_code
      - no.mga_code
      - esett.mga_type
      title: IdentifierKind
      type: string
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    BiddingZone:
      description: 'A Bidding Zone (also called a price area) is a core domain concept in the European energy market.


        The [ENTSO-E Harmonized Electricity Market Role Model](https://www.entsoe.eu/data/cim/role-models/) defines a Bidding Zone as:


        > The largest geographical area within which market participants are able to exchange energy without capacity allocation.


        In other words, it is an area within which electricity clears at a single day-ahead price; in the Nordics these are the Nord Pool price areas such as SE3 and NO1.'
      example:
        countries:
        - SE
        id: 10Y1001A1001A46L
        name: Swedish Elspot Area 3
        short_name: SE3
      properties:
        countries:
          description: ISO 3166-1 alpha-2 country codes this bidding zone covers
          items:
            type: string
          title: Countries
          type: array
        id:
          description: EIC code identifying this bidding zone
          title: Id
          type: string
        name:
          description: Full official name of the bidding zone
          title: Name
          type: string
        short_name:
          description: Short display name for the bidding zone
          title: Short Name
          type: string
      required:
      - countries
      - id
      - name
      - short_name
      title: BiddingZone
      type: object
    GetSchedulingAreasResponse:
      properties:
        scheduling_areas:
          items:
            $ref: '#/components/schemas/SchedulingArea'
          title: Scheduling Areas
          type: array
      required:
      - scheduling_areas
      title: GetSchedulingAreasResponse
      type: object
    SchedulingArea:
      description: 'A Scheduling Area is a core domain concept in the European energy market.


        The [ENTSO-E Harmonized Electricity Market Role Model](https://www.entsoe.eu/data/cim/role-models/) defines a Scheduling Area as:


        > An area within which the TSOs'' obligations regarding scheduling apply due to operational or organisational needs. This area consists of one or more Metering Grid Areas with common market rules for which the settlement responsible party carries out an imbalance settlement and which has the same price for imbalance.


        In other words, it is the area within which schedules are submitted and imbalance is settled at a single price. In the Nordics each Scheduling Area shares its EIC with the corresponding Bidding Zone (e.g. SE3, NO1).'
      example:
        countries:
        - SE
        id: 10Y1001A1001A47J
        name: Swedish Elspot Area 4
        short_name: SE4
      properties:
        countries:
          description: ISO 3166-1 alpha-2 country codes this scheduling area covers
          items:
            type: string
          title: Countries
          type: array
        id:
          description: EIC code identifying this scheduling area
          title: Id
          type: string
        name:
          description: Full official name of the scheduling area
          title: Name
          type: string
        short_name:
          description: Short display name for the scheduling area
          title: Short Name
          type: string
      required:
      - countries
      - id
      - name
      - short_name
      title: SchedulingArea
      type: object
    GetBiddingZonesResponse:
      properties:
        bidding_zones:
          items:
            $ref: '#/components/schemas/BiddingZone'
          title: Bidding Zones
          type: array
      required:
      - bidding_zones
      title: GetBiddingZonesResponse
      type: object
    ExtraIdentifier:
      description: 'Extra identifiers are used to attach things like EIC ids, VAT numbers, jurisdiction-specific identifiers, etc.


        For example, Metering Grid Area''s in parts of Europe are assigned an local jurisdiction EIC code; for those MGAs, the Engrate system will store the EIC as an extra identifier. However some jurisdictions have not yet switched to EIC codes, instead they rely on older local identification schemes. Swedish MGAs, as an example, use a local code assigned by the Swedish TSO.


        Because the local schemes are subject to collisions - two TSOs assigning the same numerical code to different things, as they do not coordinate id assignment - we also track an identifier "kind".'
      example:
        kind: eic
        value: 46X000000000245K
      properties:
        kind:
          $ref: '#/components/schemas/IdentifierKind'
          description: The kind of identifier
        value:
          description: The identifier value
          title: Value
          type: string
      required:
      - kind
      - value
      title: ExtraIdentifier
      type: object
    Identifier:
      example:
        extra_ids:
        - kind: eic
          value: 46X000000000245K
        id: 0199c317-25ec-7cf7-94cc-32a39f068433
      properties:
        extra_ids:
          description: '[Extra Identifiers](/api-reference/core/models/extra-identifier) used to reference this same entity'
          items:
            $ref: '#/components/schemas/ExtraIdentifier'
          title: Extra Ids
          type: array
        id:
          description: Unique identifier assigned by Engrate
          format: uuid
          title: Id
          type: string
      required:
      - extra_ids
      - id
      title: Identifier
      type: object
    GetControlAreasResponse:
      properties:
        control_areas:
          items:
            $ref: '#/components/schemas/ControlArea'
          title: Control Areas
          type: array
      required:
      - control_areas
      title: GetControlAreasResponse
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
      - loc
      - msg
      - type
      title: ValidationError
      type: object
    Party:
      description: 'Represents a "Market Party" of some kind. Normally this is some legal person - a corporation, government entity, NGO etc - that serves some role in the electrical system.


        Parties may be DSOs, TSOs, Energy Retailers and so on.'
      example:
        countries:
        - SE
        extra_ids:
        - kind: eic
          value: 46X000000000245K
        - kind: se.ediel
          value: '24200'
        id: 0199c317-25ec-7cf7-94cc-32a39f068433
        name: Ellevio AB
      properties:
        countries:
          description: ISO 3166-1 alpha-2 country codes, this indicates countries where this party is active in some way, not only their legal home country
          items:
            type: string
          title: Countries
          type: array
        description:
          anyOf:
          - type: string
          - type: 'null'
          description: Brief description of the party, if available
          title: Description
        extra_ids:
          description: '[Extra Identifiers](/api-reference/core/models/extra-identifier) for this Party, like EIC identifiers where those exist'
          items:
            $ref: '#/components/schemas/ExtraIdentifier'
          title: Extra Ids
          type: array
        id:
          description: Unique identifier for the party
          format: uuid
          title: Id
          type: string
        logo_url:
          anyOf:
          - type: string
          - type: 'null'
          description: URL to the logo of the party, if available
          title: Logo Url
        name:
          description: Legal name of the party
          title: Name
          type: string
        website_url:
          anyOf:
          - type: string
          - type: 'null'
          description: URL to the website of the party, if available
          title: Website Url
      required:
      - countries
      - description
      - extra_ids
      - id
      - logo_url
      - name
      - website_url
      title: Party
      type: object
    GetMeteringGridAreasResponse:
      properties:
        mgas:
          items:
            $ref: '#/components/schemas/MeteringGridArea'
          title: Mgas
          type: array
      required:
      - mgas
      title: GetMeteringGridAreasResponse
      type: object
    GetPartiesResponse:
      properties:
        parties:
          items:
            $ref: '#/components/schemas/Party'
          title: Parties
          type: array
      required:
      - parties
      title: GetPartiesResponse
      type: object
  securitySchemes:
    apiKeyAuth:
      in: header
      name: Authorization
      type: apiKey