EDF Energy V1 API

The v1 API from EDF Energy — 23 operation(s) for v1.

Operations 23

POST /v1/accounts/ #
POST /v1/accounts/{account_number}/tariff-renewal/ #
GET /v1/electricity-meter-points/{mpan}/ #
GET /v1/electricity-meter-points/{mpan}/meters/{serial_number}/consumption/ #
GET /v1/gas-meter-points/{mprn}/meters/{serial_number}/consumption/ #
GET /v1/industry/grid-supply-points/ #
POST /v1/payment-intents/confirm/ #
POST /v1/payment-intents/create/ #
POST /v1/payment-intents/fail/ #
GET /v1/products/ #
GET /v1/products/{product_code}/ #
GET /v1/products/{product_code}/electricity-tariffs/{tariff_code}/day-unit-rates/ #
GET /v1/products/{product_code}/electricity-tariffs/{tariff_code}/ev-device-off-peak-unit-rates/ #
GET /v1/products/{product_code}/electricity-tariffs/{tariff_code}/ev-device-peak-unit-rates/ #
GET /v1/products/{product_code}/electricity-tariffs/{tariff_code}/night-unit-rates/ #
GET /v1/products/{product_code}/electricity-tariffs/{tariff_code}/standard-unit-rates/ #
GET /v1/products/{product_code}/electricity-tariffs/{tariff_code}/standing-charges/ #
GET /v1/products/{product_code}/gas-tariffs/{tariff_code}/standard-unit-rates/ #
GET /v1/products/{product_code}/gas-tariffs/{tariff_code}/standing-charges/ #
POST /v1/quotes/ #
POST /v1/quotes/{code}/products/{product_id}/ #
POST /v1/voice/twilio/enqueue-audio/ #
GET /v1/voice/twilio/voice-announcement/ #

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/edf-energy-v1-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 email required.

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

OpenAPI Specification

edf-energy-v1-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kraken V1 API
  version: v1
servers:
- url: https://api.edfgb-kraken.energy/v1/
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: v1
paths:
  /v1/accounts/:
    post:
      operationId: Create an account
      description: 'WARNING: This endpoint is only available to partner organisations.'
      tags:
      - v1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Create'
            examples:
              CreateAccountPayload:
                value:
                  reference: 12067-056785
                  sold_at: '2017-07-28T14:30:00+01:00'
                  account_type: DOMESTIC
                  source: INTERNET
                  is_change_of_tenancy: false
                  referral_code: some-referral-123
                  quote_code: 1981fd3936cc4cfda70b2e697347b885
                  affiliate: {}
                  payment:
                    method: MONTHLY_DIRECT_DEBIT
                    account_name: Chris Johnson
                    account_number: '12345678'
                    account_sort_code: '111111'
                    payment_day: 1
                  billing_address:
                    address_line_1: 87 Doveys Close
                    address_line_2: ''
                    address_line_3: ''
                    town: Ringwood
                    county: ''
                    postcode: BH24 4BP
                  users:
                  - title: Dr
                    given_name: Chris
                    family_name: Johnson
                    date_of_birth: '1966-01-01'
                    email: chris@example.com
                    mobile: 07742628216
                    landline: 02084459876
                    opted_in_for_marketing: false
                    opted_in_to_third_parties: false
                    psr:
                      requires_signup: false
                  electricity_meter_points:
                  - tariff_code: E-1R-VAR-17-01-11-A
                    quote:
                      annual_payment: 46576
                    consumption_standard: 3100
                    mpan: '2000024512368'
                    address:
                      address_line_1: 87 Doveys Close
                      address_line_2: ''
                      address_line_3: ''
                      town: Ringwood
                      county: ''
                      postcode: BH24 4BP
                    meter_type: CREDIT
                    has_smart_meter: false
                    current_supplier_name: SUP
                    current_supplier_tariff: SUP-123
                  gas_meter_points:
                  - tariff_code: G-1R-VAR-17-01-11-A
                    mprn: '3016362107'
                    consumption_standard: 12500
                    quote:
                      annual_payment: 44961
                  metadata:
                  - key: metadata_key
                    value:
                      melo: 10284
                      some_data: some_value
                summary: Create account payload
              CreateBusinessAccountPayload:
                value:
                  account_type: BUSINESS
                  business:
                    name: Acme Corporation Limited
                    number: 09263424
                    business_type: LIMITED
                    is_ccl_exempt: false
                    is_vat_exempt: false
                    head_count: 25
                    annual_turnover: 575000
                  electricity_meter_points:
                  - unit_rate_uplift: '0.5'
                    bespoke_tariff_rates:
                      standing_charge: '13.25'
                      unit_rates:
                      - unit_rate: '12.6'
                        rate_type: STANDARD
                  gas_meter_points:
                  - unit_rate_uplift: '0.5'
                    bespoke_tariff_rates:
                      standing_charge: '13.25'
                      unit_rate: '3.25'
                summary: Create business account payload
        required: true
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                AccountCreated:
                  value:
                    number: A-12341234
                  summary: Account created
                AccountAndUserAreCreated.:
                  value:
                    number: A-12341234
                    password_reset:
                      user_id: user_pk_b64_encoded
                      token: cmlx6w-1232911237f5d13422c154c07
                  summary: Account and user are created.
          description: Account successfully created
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                ErrorDuringAccountCreation,InvestigationNeeded:
                  value:
                    detail: We are unable to create an account, however the error will be investigated internally.
                  summary: Error during account creation, investigation needed
          description: The submission has incurred an error, but requires further investigation from a member of our team in order to complete the request.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                ValidationErrors:
                  value:
                    detail: References already exist
                  summary: Validation errors
          description: The submissions incurred validation errors that cannot be fixed by a member of our team. This may occur if the provided reference is a duplicate and the existing enrolment has not previously been rejected.
  /v1/accounts/{account_number}/tariff-renewal/:
    post:
      operationId: Renew a business tariff
      description: 'This end-point allows a new agreement to be created for an existing account. It is restricted to business accounts. WARNING: This endpoint is only available to partner organisations.'
      parameters:
      - in: path
        name: account_number
        schema:
          type: string
        description: Number of the account
        required: true
      tags:
      - v1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessTariffRenewal'
            examples:
              RenewBusinessTariffPayload:
                value:
                  agreements:
                  - mpxn: '1013004420117'
                    tariff_code: E-1R-SOME-PRODUCT-J
                    valid_from_date: '2019-12-01'
                    valid_to_date: '2020-12-01'
                    bespoke_tariff_rates:
                    - meter_serial_number: Z16N389556
                      standing_charge: 3.25
                      registers:
                      - register_identifier: '1'
                        unit_rate: 15.6
                    commission:
                      affiliate_organisation_name: Some Partner
                      unit_rate_uplift: '1.00'
                  - mpxn: '9113681703'
                    tariff_code: G-1R-SOME-PRODUCT-J
                    valid_from_date: '2019-12-01'
                    valid_to_date: '2020-12-01'
                    bespoke_tariff_rates:
                    - meter_serial_number: GA1244364577
                      standing_charge: 3.25
                      unit_rate: 15.6
                    commission:
                      affiliate_organisation_name: Some Partner
                      unit_rate_uplift: '1.00'
                summary: Renew business tariff payload
        required: true
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementsCreated'
              examples:
                BusinessTariffRenewalCreated:
                  value:
                    account_number: A-12AB34CD
                    agreements:
                    - mpxn: '1013004420117'
                      tariff_code: E-1R-SOME-PRODUCT-J
                      valid_from_date: '2019-12-01'
                      valid_to_date: '2020-12-01'
                  summary: Business tariff renewal created
          description: Agreement(s) successfully created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationOrDomainError'
              examples:
                ValidationErrors:
                  value:
                    errors:
                    - Account is not a business account.
                  summary: Validation errors
          description: Could not create agreement due to domain or validation errors.
        '404':
          description: The account does not exist.
        '401':
          description: Incorrect authentication.
        '403':
          description: The user does not have sufficient permissions for this action.
        '500':
          description: Intermittent internal error. If it persists, please get in touch with the support team.
  /v1/electricity-meter-points/{mpan}/:
    get:
      operationId: Get Electricity Meter Point
      description: Retrieve the details of a meter-point. This endpoint can be used to get the GSP of a given meter-point.
      parameters:
      - in: path
        name: mpan
        schema:
          type: string
        required: true
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ElectricityMeterPoint'
              examples:
                DetailsOfAnElectricityMeter-point:
                  value:
                    gsp: _H
                    mpan: '2000024512368'
                    profile_class: 1
                  summary: Details of an electricity meter-point
          description: ''
  /v1/electricity-meter-points/{mpan}/meters/{serial_number}/consumption/:
    get:
      operationId: List consumption for an electricity meter
      description: 'Return a list of consumption values (in kWh) for half-hour periods for a given meter-point and meter. WARNING: Half-hourly consumption data is only available for smart meters. Requests for consumption data for non-smart meters will return an empty response payload.'
      parameters:
      - name: group_by
        required: false
        in: query
        description: 'Aggregates consumption over a specified time period. A day is considered to start and end at midnight in the server’s timezone. The default is that consumption is returned in half-hour periods. Accepted values are: * ‘hour’ * ‘day’ * ‘week’ * ‘month’ * ‘quarter’.'
        schema:
          type: string
      - in: path
        name: mpan
        schema:
          type: string
        required: true
      - name: order_by
        required: false
        in: query
        description: 'Ordering of results returned. Default is that results are returned in reverse order from latest available figure. Valid values: * ‘period’, to give results ordered forward. * ‘-period’, (default), to give results ordered from most recent backwards.'
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Page size of returned results. Default is 100, maximum is 25000 to give a full year of half-hourly consumption details.
        schema:
          type: integer
      - name: period_from
        required: false
        in: query
        description: Show results from the given datetime (inclusive). This parameter can be provided on its own.
        schema:
          type: datetime
      - name: period_to
        required: false
        in: query
        description: Show results up to the given datetime (exclusive). You must also provide the period_from parameter in order to create a range.
        schema:
          type: datetime
      - in: path
        name: serial_number
        schema:
          type: string
        required: true
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedConsumptionList'
              examples:
                ListOfConsumptionValues:
                  value:
                    count: 123
                    next: https://api.edfgb-kraken.energy/v1/electricity-meter-points/S1212345678901/meters/Z16N389556/consumption/?page=4
                    previous: https://api.edfgb-kraken.energy/v1/electricity-meter-points/S1212345678901/meters/Z16N389556/consumption/?page=2
                    results:
                    - - consumption: 0.063
                        interval_start: 2018-05-19T00:30:00+0100
                        interval_end: 2018-05-19T01:00:00+0100
                      - consumption: 0.071
                        interval_start: 2018-05-19T00:00:00+0100
                        interval_end: 2018-05-19T00:30:00+0100
                      - consumption: 0.073
                        interval_start: 2018-05-18T23:30:00+0100
                        interval_end: 2018-05-18T00:00:00+0100
                  summary: List of consumption values
          description: ''
  /v1/gas-meter-points/{mprn}/meters/{serial_number}/consumption/:
    get:
      operationId: List consumption for a gas meter
      description: 'Return a list of consumption values (in kWh for SMETS1 and in m^3 for SMETS2) for half-hour periods for a given gas meter-point and meter. WARNING: Half-hourly consumption data is only available for smart meters. Requests for consumption data for non-smart meters will return an empty response payload.'
      parameters:
      - name: group_by
        required: false
        in: query
        description: 'Aggregates consumption over a specified time period. A day is considered to start and end at midnight in the server’s timezone. The default is that consumption is returned in half-hour periods. Accepted values are: * ‘hour’ * ‘day’ * ‘week’ * ‘month’ * ‘quarter’.'
        schema:
          type: string
      - in: path
        name: mprn
        schema:
          type: string
        required: true
      - name: order_by
        required: false
        in: query
        description: 'Ordering of results returned. Default is that results are returned in reverse order from latest available figure. Valid values: * ‘period’, to give results ordered forward. * ‘-period’, (default), to give results ordered from most recent backwards.'
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Page size of returned results. Default is 100, maximum is 25000 to give a full year of half-hourly consumption details.
        schema:
          type: integer
      - name: period_from
        required: false
        in: query
        description: Show results from the given datetime (inclusive). This parameter can be provided on its own.
        schema:
          type: datetime
      - name: period_to
        required: false
        in: query
        description: Show results up to the given datetime (exclusive). You must also provide the period_from parameter in order to create a range.
        schema:
          type: datetime
      - in: path
        name: serial_number
        schema:
          type: string
        required: true
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedConsumptionList'
              examples:
                ListOfConsumptionValues:
                  value:
                    count: 123
                    next: https://api.edfgb-kraken.energy/v1/gas-meter-points/1234987426/meters/Z16N389556/consumption/?page=4
                    previous: https://api.edfgb-kraken.energy/v1/gas-meter-points/1234987426/meters/Z16N389556/consumption/?page=2
                    results:
                    - - consumption: 0.063
                        interval_start: 2018-05-19T00:30:00+0100
                        interval_end: 2018-05-19T01:00:00+0100
                      - consumption: 0.071
                        interval_start: 2018-05-19T00:00:00+0100
                        interval_end: 2018-05-19T00:30:00+0100
                      - consumption: 0.073
                        interval_start: 2018-05-18T23:30:00+0100
                        interval_end: 2018-05-18T00:00:00+0100
                  summary: List of consumption values
          description: ''
  /v1/industry/grid-supply-points/:
    get:
      operationId: List Industry Grid Supply Points
      description: Return a list of GSP objects, optionally filtered by postcode. If we’re unable to map the passed postcode to a GSP, an empty list will be returned
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - in: query
        name: postcode
        schema:
          type: string
        description: A postcode to filter GSPs by.
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGridSupplyPointList'
              examples:
                ListGridSupplyPoints:
                  value:
                    count: 123
                    next: https://api.edfgb-kraken.energy/v1/industry/grid-supply-points/?page=4
                    previous: https://api.edfgb-kraken.energy/v1/industry/grid-supply-points/?page=2
                    results:
                    - - group_id: _A
                      - group_id: _B
                  summary: List grid supply points
          description: ''
  /v1/payment-intents/confirm/:
    post:
      operationId: Confirm a Stripe payment intent
      description: 'Create Stripe charge using Stripe''s PaymentIntent model and Elements (js) which automatically

        applies for authentication exemptions and performs authentication. The intent will be confirm

        using the Stripe API, which then creates a charge.


        Docs: https://stripe.com/docs/payments/payment-intents/quickstart#manual-confirmation-flow'
      tags:
      - v1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmStripePaymentIntent'
            examples:
              ConfirmPaymentIntent:
                value:
                  account: A-12341234
                  amount: '12.99'
                  payment_intent_id: xxx_123123
                  description: Manual payment
                summary: Confirm payment intent
        required: true
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentIntentConfirmed'
              examples:
                PaymentIntentConfirmed:
                  value:
                    success: true
                  summary: Payment intent confirmed
          description: Payment intent successfully confirmed
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentErrorResponse'
              examples:
                CardDeclined:
                  value:
                    error: The card was declined
                  summary: Card declined
          description: Could not confirm payment intent
  /v1/payment-intents/create/:
    post:
      operationId: Create a Stripe payment intent
      description: 'Create a Stripe payment using Stripe''s PaymentIntent and Elements (js) which automatically

        applies for authentication exemptions and performs authentication. Handles both immediate and

        scheduled Stripe card payments.


        Docs: https://stripe.com/docs/payments/payment-intents/quickstart#manual-confirmation-flow'
      tags:
      - v1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateStripePaymentIntent'
            examples:
              CreatePaymentIntent:
                value:
                  account: A-12341234
                  amount: '12.99'
                  payment_method_id: card_1234abcd
                  description: Manual payment
                summary: Create payment intent
        required: true
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentIntentCreated'
              examples:
                PaymentIntentCreated:
                  value:
                    requires_action: true
                    payment_intent_id: pi_3MtwBwLkdIwHu7ix28a3tqPa
                    payment_intent_client_secret: pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH
                  summary: Payment intent created
          description: Payment intent successfully created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentErrorResponse'
              examples:
                CardDeclined:
                  value:
                    error: The card was declined
                  summary: Card declined
          description: Could not create payment intent
  /v1/payment-intents/fail/:
    post:
      operationId: Mark a Stripe payment intent as failed
      description: 'Handle a failure when creating a Stripe charge using Stripe''s PaymentIntent model and

        Elements (js) which automatically applies for authentication exemptions and performs

        authentication.


        Docs: https://stripe.com/docs/payments/payment-intents/quickstart#manual-confirmation-flow'
      tags:
      - v1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FailedStripePaymentIntent'
            examples:
              MarkPaymentIntentAsFailed:
                value:
                  account: A-12345
                  payment_intent_id: xxx_123123
                  error: Something went wrong
                summary: Mark payment intent as failed
        required: true
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      - {}
      responses:
        '200':
          description: No response body
  /v1/products/:
    get:
      operationId: List Products
      description: Return a list of energy products. By default, results will be public energy products but if the authenticated organisations will also see products available to their organisation.
      parameters:
      - in: query
        name: available_at
        schema:
          type: string
        description: Show products available for new agreements on the given datetime. Defaults to current datetime, effectively showing products that are currently available.
      - in: query
        name: brand
        schema:
          type: string
      - in: query
        name: is_business
        schema:
          type: boolean
        description: Show only business products
      - in: query
        name: is_green
        schema:
          type: boolean
        description: Show only green products
      - in: query
        name: is_historical
        schema:
          type: string
      - in: query
        name: is_prepay
        schema:
          type: boolean
        description: Show only pre-pay products
      - in: query
        name: is_tracker
        schema:
          type: boolean
        description: Show only tracker products
      - in: query
        name: is_variable
        schema:
          type: boolean
        description: Show only variable products
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProductsList'
              examples:
                ListOfProducts:
                  value:
                    count: 123
                    next: https://api.edfgb-kraken.energy/v1/products/?page=4
                    previous: https://api.edfgb-kraken.energy/v1/products/?page=2
                    results:
                    - direction: IMPORT
                      code: VAR-17-01-11
                      full_name: Flexible Tentacle Offer January 2017 v1
                      display_name: Flexible Tentacle
                      description: This great value 12 month fixed tariff guarantees…
                      is_variable: true
                      is_green: false
                      is_tracker: false
                      is_prepay: false
                      is_business: false
                      is_restricted: false
                      term: 12
                      available_from: '2017-05-05T05:37:27Z'
                      available_to: null
                      brand: TENTACLE_ENERGY
                      links:
                      - href: https://api.edfgb-kraken.energy/v1/products/VAR-17-01-11/
                        method: GET
                        rel: self
                  summary: List of products
          description: ''
  /v1/products/{product_code}/:
    get:
      operationId: Product
      parameters:
      - in: path
        name: product_code
        schema:
          type: string
        required: true
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
          description: ''
  /v1/products/{product_code}/electricity-tariffs/{tariff_code}/day-unit-rates/:
    get:
      operationId: Electricity Tariff Day Unit Rates
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Page size of returned results. Default is 100, maximum is 1500 to give up to a month of half-hourly prices.
        schema:
          type: integer
      - name: period_from
        required: false
        in: query
        description: Show results from the given datetime (inclusive). This parameter can be provided on its own.
        schema:
          type: datetime
      - name: period_to
        required: false
        in: query
        description: Show results up to the given datetime (exclusive). You must also provide the period_from parameter in order to create a range.
        schema:
          type: datetime
      - in: path
        name: product_code
        schema:
          type: string
        required: true
      - in: path
        name: tariff_code
        schema:
          type: string
        required: true
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHistoricalChargeList'
          description: ''
  /v1/products/{product_code}/electricity-tariffs/{tariff_code}/ev-device-off-peak-unit-rates/:
    get:
      operationId: Electricity Tariff Ev Device Off Peak Unit Rates
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Page size of returned results. Default is 100, maximum is 1500 to give up to a month of half-hourly prices.
        schema:
          type: integer
      - name: period_from
        required: false
        in: query
        description: Show results from the given datetime (inclusive). This parameter can be provided on its own.
        schema:
          type: datetime
      - name: period_to
        required: false
        in: query
        description: Show results up to the given datetime (exclusive). You must also provide the period_from parameter in order to create a range.
        schema:
          type: datetime
      - in: path
        name: product_code
        schema:
          type: string
        required: true
      - in: path
        name: tariff_code
        schema:
          type: string
        required: true
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHistoricalChargeList'
          description: ''
  /v1/products/{product_code}/electricity-tariffs/{tariff_code}/ev-device-peak-unit-rates/:
    get:
      operationId: Electricity Tariff Ev Device Peak Unit Rates
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Page size of returned results. Default is 100, maximum is 1500 to give up to a month of half-hourly prices.
        schema:
          type: integer
      - name: period_from
        required: false
        in: query
        description: Show results from the given datetime (inclusive). This parameter can be provided on its own.
        schema:
          type: datetime
      - name: period_to
        required: false
        in: query
        description: Show results up to the given datetime (exclusive). You must also provide the period_from parameter in order to create a range.
        schema:
          type: datetime
      - in: path
        name: product_code
        schema:
          type: string
        required: true
      - in: path
        name: tariff_code
        schema:
          type: string
        required: true
      tags:
      - v1
      security:
      - KeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHistoricalChargeList'
          description: ''
  /v1/products/{product_code}/electricity-tariffs/{tariff_code}/night-unit-rates/:
    get:
      operationId: Electricity Tariff Night Unit Rates
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated r

# --- truncated at 32 KB (114 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/edf-energy/refs/heads/main/openapi/edf-energy-v1-api-openapi.yml