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

# Submit rolled-out load profiles

> Mirror of the network operator's rolled-out day profiles per
metering grid area and profile code - profiled market locations are
forecast from these, scaled to their annual consumption. `values_kwh`
carries kWh per quarter-hour; `normalization_kwh_per_year` says what
annual consumption the roll-out is normalized to (1000 for classic
SLP, 1000000 for TLP procedures).



## OpenAPI

````yaml /api-reference/openapi.json post /v1/profiles
openapi: 3.1.0
info:
  title: n:lead Scheduling Bridge — Data Delivery API
  version: 0.4.0
  description: >-
    API for delivering portfolio data to the n:lead scheduling bridge. Send a
    portfolio forecast per delivery day, or — if no forecast is available — the
    market-location master data, metered data and rolled-out profiles the bridge
    needs to build the consumption forecast for you. Everything downstream
    (positions, trader handoff, schedule submission to the TSOs) is operated by
    n:lead. A read-only status endpoint reports the BRP activation state per
    DSO/MGA.
servers:
  - url: https://{host}
    description: Deployed service
    variables:
      host:
        default: >-
          nleadbridge-app.lemonisland-7d6503d3.germanywestcentral.azurecontainerapps.io
        description: >-
          The service hostname - n:lead provides it (see the Base URL on the API
          introduction page)
  - url: http://localhost:8000
    description: Local development
security: []
paths:
  /v1/profiles:
    post:
      summary: Submit rolled-out load profiles
      description: |-
        Mirror of the network operator's rolled-out day profiles per
        metering grid area and profile code - profiled market locations are
        forecast from these, scaled to their annual consumption. `values_kwh`
        carries kWh per quarter-hour; `normalization_kwh_per_year` says what
        annual consumption the roll-out is normalized to (1000 for classic
        SLP, 1000000 for TLP procedures).
      operationId: post_profiles_v1_profiles_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfileDataRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileDataResponse'
        '401':
          description: Missing, wrong or expired credential.
        '413':
          description: Body larger than the request-size limit.
        '422':
          description: >-
            Validation failure. `detail` names the offending series/entry and
            the rule it broke - see the troubleshooting page for every message
            and its fix.
        '429':
          description: >-
            Rate limit exceeded - retry after the number of seconds in the
            `Retry-After` header.
        '503':
          description: >-
            Service restarting (deploy/scale) - transient. Wait the seconds in
            the `Retry-After` header and retry the identical request; retries
            are idempotent.
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |-
            curl --request POST "$NLEAD_BASE_URL/v1/profiles" \
              --header "X-API-Key: $NLEAD_API_KEY" --header "Content-Type: application/json" \
              --data '{
                "entries": [
                  {"mga": "11YN10000955-01S", "profile_code": "H0", "day": "2026-09-02",
                   "values_kwh": [0.25, "...96 quarter-hour values"],
                   "normalization_kwh_per_year": 1000.0}
                ]
              }'
components:
  schemas:
    ProfileDataRequest:
      properties:
        entries:
          items:
            $ref: '#/components/schemas/ProfileDayIn'
          type: array
          minItems: 1
          title: Entries
      type: object
      required:
        - entries
      title: ProfileDataRequest
      example:
        entries:
          - day: '2026-09-01'
            mga: 11YR00000002092Q
            normalization_kwh_per_year: 1000
            profile_code: H0
            values_kwh:
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.2
              - 1.23
              - 1.26
              - 1.29
              - 1.32
              - 1.35
              - 1.38
              - 1.41
              - 1.44
              - 1.47
              - 1.5
              - 1.53
              - 1.56
              - 1.59
              - 1.62
              - 1.65
              - 1.68
              - 1.71
              - 1.74
              - 1.77
              - 1.8
              - 1.77
              - 1.74
              - 1.71
              - 1.68
              - 1.65
              - 1.62
              - 1.59
              - 1.56
              - 1.53
              - 1.5
              - 1.47
              - 1.44
              - 1.41
              - 1.38
              - 1.35
              - 1.32
              - 1.29
              - 1.26
              - 1.23
              - 1.2
              - 1.2
              - 1.2
              - 1.2
    ProfileDataResponse:
      properties:
        stored:
          type: integer
          title: Stored
        status:
          type: string
          enum:
            - stored
            - validated
          title: Status
          description: >-
            "validated" when the call ran under a sandbox key - everything
            checked, nothing stored
          default: stored
      type: object
      required:
        - stored
      title: ProfileDataResponse
    ProfileDayIn:
      properties:
        mga:
          type: string
          minLength: 1
          title: Mga
        profile_code:
          type: string
          minLength: 1
          title: Profile Code
        day:
          type: string
          format: date
          title: Day
        values_kwh:
          items:
            type: number
          type: array
          title: Values Kwh
          description: kWh per quarter-hour, rolled out
        normalization_kwh_per_year:
          type: number
          exclusiveMinimum: 0
          title: Normalization Kwh Per Year
          description: >-
            Annual consumption the profile is normalized to (1000 for classic
            SLP, 1000000 for TLP procedures)
          default: 1000
      type: object
      required:
        - mga
        - profile_code
        - day
        - values_kwh
      title: ProfileDayIn
      description: One rolled-out profile day for one MGA (NB/MGA mirror).
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    HTTPBearer:
      type: http
      description: OIDC access token (Auth0 M2M)
      scheme: bearer

````