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

# Read back stored forecast

> Return exactly the series the last accepted submission for the delivery day carried, plus the derived totals, the `input_hash` from the acknowledgment, and the processing state. What you read back is what a re-submission would replace.

Submissions with `validate_only` set store nothing, so they never appear here.



## OpenAPI

````yaml /portfolio-forecasts-openapi.json get /portfolio-forecasts/v1alpha1/submissions/{delivery_day}
openapi: 3.1.0
info:
  title: Engrate Portfolio Forecasts API
  version: v1alpha1
  description: >-
    Submit portfolio forecasts for a delivery day and read back what is stored.
    This alpha API may change or be removed without notice.
servers:
  - url: https://api.engrate.io
security:
  - apiKeyAuth: []
paths:
  /portfolio-forecasts/v1alpha1/submissions/{delivery_day}:
    get:
      summary: Read back stored forecast
      description: >-
        Return exactly the series the last accepted submission for the delivery
        day carried, plus the derived totals, the `input_hash` from the
        acknowledgment, and the processing state. What you read back is what a
        re-submission would replace.


        Submissions with `validate_only` set store nothing, so they never appear
        here.
      operationId: getPortfolioForecast
      parameters:
        - name: delivery_day
          in: path
          required: true
          schema:
            type: string
            format: date
          description: The delivery day, as a Europe/Berlin calendar day.
          example: '2026-09-01'
      responses:
        '200':
          description: The stored forecast.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastReadback'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: No stored forecast for this delivery day.
        '422':
          description: '`delivery_day` is not a calendar date.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          $ref: '#/components/responses/Throttled'
        '502':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/ServiceTimedOut'
components:
  schemas:
    ForecastReadback:
      type: object
      description: >-
        One stored delivery day: exactly the series the last accepted submission
        carried, plus the derived totals and processing state.
      properties:
        delivery_day:
          type: string
          format: date
        unit:
          type: string
          enum:
            - MW
            - MWH
          description: >-
            `MW`: average power per quarter-hour. `MWH`: energy per
            quarter-hour.
        interval_count:
          type: integer
          description: >-
            Quarter-hours in the delivery day: 96 on a normal day, 92 on the
            spring-forward day, 100 on the fall-back day.
        series:
          type: array
          items:
            $ref: '#/components/schemas/ForecastSeries'
          description: The series as submitted.
        malo_mapping:
          anyOf:
            - type: object
              patternProperties:
                ^\d{11}$:
                  $ref: '#/components/schemas/ControlArea'
            - type: 'null'
          description: MaLo-to-control-area mapping as submitted.
        total_production_mwh:
          type: number
          description: Total production energy for the delivery day, in MWh.
        total_consumption_mwh:
          type: number
          description: Total consumption energy for the delivery day, in MWh.
        input_hash:
          type: string
          description: >-
            Content hash of the stored submission. Equals the `input_hash` of
            the acknowledgment that accepted it.
        source:
          type: string
          enum:
            - customer
            - generated
          description: >-
            `customer`: a submitted forecast. `generated`: the forecast service
            built the day from mirrored data.
        processed:
          type: boolean
          description: >-
            True once the schedules for exactly this input were submitted
            downstream and accepted.
      required:
        - delivery_day
        - unit
        - interval_count
        - series
        - total_production_mwh
        - total_consumption_mwh
        - input_hash
        - source
        - processed
    HTTPValidationError:
      type: object
      properties:
        detail:
          type: array
          items:
            type: object
            properties:
              loc:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: integer
              msg:
                type: string
              type:
                type: string
              input: {}
              ctx:
                type: object
            required:
              - loc
              - msg
              - type
    ForecastSeries:
      type: object
      description: >-
        A production or consumption series for the delivery day. Set exactly one
        of control_area or malo.
      properties:
        kind:
          type: string
          enum:
            - production
            - consumption
          description: >-
            What the series describes. Production and consumption are separate
            series, both sent as positive values.
        control_area:
          anyOf:
            - $ref: '#/components/schemas/ControlArea'
            - type: 'null'
          description: Control area the series is pre-aggregated for. Case-sensitive.
        malo:
          anyOf:
            - type: string
              pattern: ^\d{11}$
            - type: 'null'
          description: >-
            Eleven-digit market location ID. Requires a matching `malo_mapping`
            entry on the request.
        values:
          type: array
          items:
            type: number
          description: >-
            One value per quarter-hour, from local (Europe/Berlin) midnight to
            midnight: 96 values on a normal day, 92 on the spring-forward day,
            100 on the fall-back day.
      required:
        - kind
        - values
    ControlArea:
      type: string
      enum:
        - 50Hertz
        - Amprion
        - TenneT
        - TransnetBW
      description: One of the four German TSO control areas.
  responses:
    Forbidden:
      description: >-
        The authenticated organization is not authorized to use the Portfolio
        Forecasts API.
    Throttled:
      description: The request is throttled.
      headers:
        Retry-After:
          schema:
            type: string
          description: Time to wait before retrying.
    ServiceUnavailable:
      description: Forecast service unavailable.
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                const: Forecast service unavailable
            required:
              - detail
    ServiceTimedOut:
      description: Forecast service timed out.
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                const: Forecast service timed out
            required:
              - detail
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````