> ## Documentation Index
> Fetch the complete documentation index at: https://docs.auth.energy/llms.txt
> Use this file to discover all available pages before exploring further.

# List tariffs

> Returns a summary of all tariffs offered by the specified supplier — tariff ID,
display name, and when pricing data was last updated.

Use this to discover available tariff IDs before fetching full pricing detail.
No authentication required.




## OpenAPI

````yaml /tariff-interop/api/openapi-tariff.yaml get /v1/tariff/{mpid}
openapi: 3.1.0
info:
  title: Tariff Interoperability API
  version: 0.1.1.AE
  description: >
    The Tariff Interoperability (TI) API lets Energy Smart Appliances,
    optimisers, and

    third-party services access standardised electricity tariff pricing data
    directly from

    GB energy suppliers. It is defined under the Retail Energy Code (REC) and
    mandated by

    the Smart Secure Electricity Systems (SSES) Programme.


    ## Two tiers of access


    | Tier | Who can use it | Auth required |

    |------|---------------|---------------|

    | **Public Tariff Pricing Data** | Any TI User | None |

    | **Consumer Specific Tariff Information** | Registered TI Users (RTI Users)
    with active consumer consent | OAuth 2.0 |
  contact:
    name: Auth Energy
    email: contact@auth.energy
  license:
    name: |
      © 2025 Retail Energy Code Company Ltd v0.1.0.
      All modifications and improves published © 2026 Auth Energy Ltd
    url: https://auth.energy/
servers:
  - url: https://register.tariff.interop
    description: >
      Central TI Register hosted by RECCo. Serves the `/v1/suppliers` and
      `/v1/users`

      endpoints only. The `v1` path prefix identifies the API version.
  - url: https://example-supplier.co.uk
    description: >
      Placeholder for a TI Energy Supplier's own hosted API. Each supplier runs
      their

      own instance at a URL they register with RECCo — discover it from `GET
      /suppliers`.

      Serves all `/v1/tariff`, `/v1/consent`, `/v1/webhook`, `/v1/report`, and
      outbound webhook endpoints.
security: []
tags:
  - name: Registry
    description: >-
      Discover active suppliers and registered third-party users. Served by the
      central RECCo register. No authentication required for public data.
  - name: Tariffs
    description: >-
      Retrieve tariff listings and full pricing detail from a specific supplier.
      No authentication required.
  - name: Consumer Tariffs
    description: >-
      Retrieve tariff data tied to a specific consumer metering point. Requires
      OAuth 2.0 and active consumer consent.
  - name: Consent
    description: >-
      Register and revoke consumer consent linking a metering point to an RTI
      User via the OAuth 2.0 Authorisation Code flow.
  - name: Webhooks
    description: >-
      Manage webhook endpoints and receive push notifications when tariff data
      or consent state changes.
  - name: Reporting
    description: >-
      Submit periodic performance assurance metrics to RECCo (supplier
      obligation).
paths:
  /v1/tariff/{mpid}:
    get:
      tags:
        - Tariffs
      summary: List tariffs
      description: >
        Returns a summary of all tariffs offered by the specified supplier —
        tariff ID,

        display name, and when pricing data was last updated.


        Use this to discover available tariff IDs before fetching full pricing
        detail.

        No authentication required.
      operationId: listTariffs
      parameters:
        - $ref: '#/components/parameters/mpidPath'
        - $ref: '#/components/parameters/limitParam'
        - $ref: '#/components/parameters/offsetParam'
        - name: tariff_type
          in: query
          required: false
          description: Filter by tariff type.
          schema:
            $ref: '#/components/schemas/TariffType'
        - name: fuel_type
          in: query
          required: false
          description: Filter by fuel type.
          schema:
            $ref: '#/components/schemas/FuelType'
        - name: energy_flow
          in: query
          required: false
          description: Filter by energy flow direction — `import` or `export`.
          schema:
            $ref: '#/components/schemas/EnergyFlow'
        - name: payment_method
          in: query
          required: false
          description: Filter by payment method.
          schema:
            $ref: '#/components/schemas/PaymentMethod'
        - name: ldz_region
          in: query
          required: false
          description: Filter by LDZ region code. Returns tariffs that include this region.
          schema:
            $ref: '#/components/schemas/LdzRegion'
        - name: meter_type
          in: query
          required: false
          description: Filter by meter type.
          schema:
            $ref: '#/components/schemas/MeterType'
        - name: customer_type
          in: query
          required: false
          description: Filter by customer type — `residential` or `business`.
          schema:
            $ref: '#/components/schemas/CustomerType'
        - name: valid_from
          in: query
          required: false
          description: |
            Return tariffs effective on or after this datetime (ISO 8601).
            Filters on `TariffDetail.valid_from`.
          schema:
            $ref: '#/components/schemas/Timestamp'
        - name: valid_to
          in: query
          required: false
          description: >
            Return tariffs effective up to and including this datetime (ISO
            8601).

            Filters on `TariffDetail.valid_to`.
          schema:
            $ref: '#/components/schemas/Timestamp'
      responses:
        '200':
          description: A list of tariff summaries.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - meta
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TariffSummary'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
              example:
                data:
                  - tariff_id: trf_a1b2c3d4e5f67890abcdef1234567890
                    name: Fixed October 2026
                    last_modified: '2026-09-01T00:00:00.000Z'
                meta:
                  total: 12
                  limit: 20
                  offset: 0
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security: []
      servers:
        - url: https://example-supplier.co.uk
          description: TI Energy Supplier API
components:
  parameters:
    mpidPath:
      name: mpid
      in: path
      required: true
      description: Four-character Market Participant Identifier (MPID) of the supplier.
      schema:
        type: string
        minLength: 4
        maxLength: 4
        example: SEBD
    limitParam:
      name: limit
      in: query
      required: false
      description: Maximum number of records to return. Defaults to 20, maximum 100.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
        example: 20
    offsetParam:
      name: offset
      in: query
      required: false
      description: Number of records to skip for pagination. Defaults to 0.
      schema:
        type: integer
        minimum: 0
        default: 0
        example: 0
  schemas:
    TariffType:
      type: string
      description: >
        Whether the tariff is static or dynamic.


        - **static** — rates in the schedule are fixed until the supplier pushes
        a
          `tariff.update` webhook event.
        - **dynamic** — rates change over time. RTI Users must re-fetch the
        schedule
          proactively using `valid_from` / `valid_to` on the tariff to know when to refresh.
          No `tariff.update` webhook events are sent for dynamic tariff rate changes.
      enum:
        - static
        - dynamic
    FuelType:
      type: string
      description: Whether the tariff applies to `electricity` or `gas`.
      enum:
        - electricity
        - gas
      example: electricity
    EnergyFlow:
      type: string
      description: >-
        Direction of energy flow — `import` into the property or `export` out of
        it.
      enum:
        - import
        - export
      example: import
    PaymentMethod:
      type: string
      description: Payment method this tariff variant applies to.
      enum:
        - direct_debit
        - non_direct_debit
        - prepayment
    LdzRegion:
      type: string
      description: >
        Local Distribution Zone (LDZ) or Network Operator region code.
        Identifies the

        geographic pricing zone for this tariff.
      enum:
        - SC
        - 'NO'
        - NE
        - NWT
        - WMD
        - EM
        - EA
        - NT
        - SO
        - SE
        - WN
        - WW
        - SW
      example: SE
    MeterType:
      type: string
      description: >
        Meter configuration this tariff applies to.


        - **single_rate** — one unit rate applies at all times (standard credit
        meter).

        - **multi_rate** — two or more unit rates apply at different times (e.g.
        Economy 7).

        - **smart** — half-hourly read smart meter, required for dynamic
        tariffs.

        - **prepayment** — prepayment meter.
      enum:
        - single_rate
        - multi_rate
        - smart
        - prepayment
      example: smart
    CustomerType:
      type: string
      description: Whether this tariff is available to residential or business consumers.
      enum:
        - residential
        - business
      example: residential
    Timestamp:
      type: string
      format: date-time
      description: ISO 8601 datetime with millisecond precision.
      example: '2026-11-01T10:00:00.000Z'
    TariffSummary:
      type: object
      description: >-
        Lightweight tariff record for listing. Fetch the full detail using
        `tariff_id`.
      required:
        - tariff_id
        - name
        - last_modified
      properties:
        tariff_id:
          $ref: '#/components/schemas/TariffId'
        name:
          type: string
          maxLength: 200
          description: Consumer-facing display name. One name may span multiple tariff IDs.
          example: Comfy Cucumber October 2026
        tariff_type:
          $ref: '#/components/schemas/TariffType'
        fuel_type:
          $ref: '#/components/schemas/FuelType'
        meter_type:
          $ref: '#/components/schemas/MeterType'
        customer_type:
          $ref: '#/components/schemas/CustomerType'
        last_modified:
          $ref: '#/components/schemas/Timestamp'
    PaginationMeta:
      type: object
      description: Pagination metadata included in list responses.
      required:
        - total
        - limit
        - offset
      properties:
        total:
          type: integer
          description: Total number of records matching the query.
          example: 47
        limit:
          type: integer
          description: Maximum number of records returned in this response.
          example: 20
        offset:
          type: integer
          description: Number of records skipped before this page.
          example: 0
        next_offset:
          type: integer
          description: Offset to use to fetch the next page. Absent when on the last page.
          example: 20
    TariffId:
      type: string
      format: uuid
      pattern: ^trf_[0-9a-f]{32}$
      description: >
        Compact UUID generated by the supplier uniquely identifying a set of
        tariff pricing data prefixed with `trf_`.

        A single display name may map to multiple tariff IDs where a supplier
        prices

        differently by payment method or region.
      example: trf_a1b2c3d4e5f67890abcdef1234567890
    ErrorResponse:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Machine-readable error code.
          example: tariff_not_found
        message:
          type: string
          description: Human-readable error description.
          example: No tariff found for the given tariff_id and supplier MPID.
        details:
          type: string
          description: Additional context to help diagnose the issue.
          example: >-
            tariff_id a1b2c3d4-e5f6-7890-abcd-ef1234567890 does not exist for
            supplier SEBD.
  responses:
    NotFound:
      description: >-
        404 — The supplier MPID, tariff ID, or metering point does not exist or
        is not in scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: 500 — Unexpected server error. Retry within the 72-hour buffer window.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'

````