Southwest Power Pool Forecasting API

The Forecasting API operations define the exchange of forecasted ratings, including the 240-hour-ahead forecasted AAR data exchange required by FERC Order 881. The operations support submitting rating proposals, querying in-use limits, and monitoring the health and validity of submissions against the Rating Provider's obligations.

Operations 6

GET /limits/forecast-snapshot Limits Forecast Snapshot #
GET /limits/forecast-snapshot/{period} Historical Limits Forecast Snapshot #
GET /limits/regional/forecast-snapshot Regional Limits Forecast Snapshot #
POST /limits/regional/forecast-snapshot Update Regional Limits Forecast Snapshot #
GET /rating-proposals/forecast Obtain forecast proposal status #
PATCH /rating-proposals/forecast Submit a Forecast Proposal #

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/spp-forecasting-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 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

spp-forecasting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Transmission Ratings and Operating Limits Information Exchange (TROLIE) Forecasting API
  x-logo:
    altText: TROLIE logo
    url: images/TROLIE-horizontal-color.svg
  description: "\nThis specification defines a set of operations for the exchange of power\nsystem ratings and limits between entities that own and operate the electric\npower system in North America. In particular, it is designed to support the\nexchange of Ambient Adjusted Ratings (AARs), pursuant to FERC Order 881.  It\nis published as a community standard to facilitate interoperability\nin these exchanges.\n\nThe specification conceives of the exchange as being between two primary\nentities:\n\n* A [Ratings Provider](https://trolie.energy/concepts#ratings-provider) is\n an entity that is responsible for providing ratings on some set of power\n system resources, e.g., Transmission Facilities, typically a Transmission\n Owner or Transmission Operator.  The ratings are provided to a\n Clearinghouse Provider whose is responsible for determining the operating\n limits of the power system resources.\n\n* The [Clearinghouse Provider](https://trolie.energy/concepts#clearinghouse-provider) is\n  typically a Transmission Provider (FERC) and a Reliability Coordinator (NERC).\n\nAdjacent Clearinghouse Providers exchange ratings in order to establish\noperating limit values for the power system resources that are shared\nbetween them.\n\nA Ratings Provider is assumed by this specification to have pre-coordinated \nwith a Clearinghouse Provider to identify the former's Ratings Obligation,\ni.e., the set of power system resources for which they will provide ratings.\nAdditionally, the Ratings Provider will have similarly pre-coordinated the\ndefinition of their Monitoring Sets, i.e., their power system limits of\ninterest. The nature and method of pre-coordination is out-of-scope for this\nspecification.\n\nNote that this API makes a strict distinction between the terms rating and\nlimit.  Colloquially, these terms are often used interchangeably.  However,\nin the context of this specification, they have distinct meanings. At a\nhigh-level, the specification defines an exchange where ratings go in and\nlimits come out. A Clearinghouse is a function for determining the operating\nlimits from the ratings it has on-hand, including those that are proposed by\nRatings Providers and any applicable time-bound static ratings.\n\nThis interaction diagram highlights the primary requests and responses that\nare defined in this spec. Note that not all of the operations will be\nsupported by every implementation.\n\n<img src=\"images/interactions.excalidraw.png\" alt=\"Primary Interactions with Ratings Provider\" />\n"
  version: 1.1.0
  contact:
    name: TROLIE Maintainers
    email: maintainers@trolie.energy
    url: https://trolie.energy
  license:
    name: Community Specification License 1.0
    url: https://spdx.org/licenses/Community-Spec-1.0.html
servers:
- url: https://trolie.example.com
security:
- oauth2-primary-flow: []
tags:
- name: Forecasting
  description: 'The Forecasting API operations define the exchange of forecasted ratings,

    including the 240-hour-ahead forecasted AAR data exchange required by FERC

    Order 881.  The operations support submitting rating proposals, querying

    in-use limits, and monitoring the health and validity of submissions

    against the Rating Provider''s obligations.

    '
paths:
  /limits/forecast-snapshot:
    get:
      operationId: getLimitsForecastSnapshot
      summary: Limits Forecast Snapshot
      tags:
      - Forecasting
      parameters:
      - $ref: '#/components/parameters/offset-period-start'
      - $ref: '#/components/parameters/period-end'
      - $ref: '#/components/parameters/query-filter'
      - $ref: '#/components/parameters/resource-id-filter'
      - $ref: '#/components/parameters/static-only'
      - $ref: '#/components/parameters/temporal-resolution'
      description: "\nReturns the latest Limits Forecast the clearinghouse has produced.\n\nThis content of the response varies significantly based on the media type requested.\n\n* `application/vnd.trolie.forecast-limits-snapshot.v1+json` simply includes the limits.\n* For use cases that require understanding *how* the limits were determined,\n  the media type `application/vnd.trolie.forecast-limits-detailed-snapshot.v1+json`\n  is available; it contains the ratings proposals and other factors used to\n  generate the limits.\n\nBoth of these media types support the `include-psr-header` parameter. This\nis a boolean parameter that defaults to `true`. When set to `false`, the\n`power-system-resource` header is omitted.  This can result in smaller\npayloads when the client already knows the resource ids in use by the\nClearinghouse Provider.\n\n```http\nGET /limits/forecast-snapshot HTTP/1.1\nAccept: application/vnd.trolie.forecast-limits-detailed-snapshot.v1+json; include-psr-header=false\n```\n\n### Slim Format\n\nThe `application/vnd.trolie.forecast-limits-snapshot-slim.v1+json` media type\nmay be used to request a more concise representation of the data.  The\nmedia type parameter `limit-type` is required to specify the type of limit\nbeing requested, for example:\n\n```http\nGET /limits/forecast-snapshot HTTP/1.1\nAccept: application/vnd.trolie.forecast-limits-snapshot-slim.v1+json; limit-type=apparent-power\n```\nAdditionally, the `inputs-used` parameter may be set to `true` to include\nthe inputs used to generate the forecast.\n```http\nGET /limits/forecast-snapshot HTTP/1.1\nAccept: application/vnd.trolie.forecast-limits-snapshot-slim.v1+json; limit-type=apparent-power; inputs-used=true\n```\n\nNote this format is much more concise but requires significant care in\nprocessing.  See [Using Slim Media\nTypes](../example-narratives/using-slim-media-types) for more details.\n\nClients SHOULD perform Conditional `GET` using the `If-None-Match` header\nand the `ETag` of a previous `GET` response to poll this endpoint. Rate\nlimiting is done on a per Ratings Provider basis, so requests from\nindependent clients used by the same provider count against the same\nquota.\n"
      responses:
        '200':
          description: The requested operating forecast snapshot is returned.
          content:
            application/vnd.trolie.forecast-limits-snapshot.v1+json:
              schema:
                $ref: '#/components/schemas/forecast-limits-snapshot'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  source:
                    provider: X-AMPL
                    last-updated: '2023-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                  power-system-resources:
                  - resource-id: 8badf00d
                    alternate-identifiers:
                    - name: segmentX
                      authority: TO-NERC-ID
                    - name: LINE1 SEG-X
                      authority: RC-NERC-ID
                      mrid: 8badf00d
                limits:
                - resource-id: 8badf00d
                  periods:
                  - period-start: '2023-07-12T16:00:00-07:00'
                    period-end: '2023-07-12T17:00:00-07:00'
                    continuous-operating-limit:
                      mw: 160
                      pf: 1
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mw: 170
                        pf: 1
                    - duration-name: STE
                      limit:
                        mw: 180
                        pf: 1
                    - duration-name: DAL
                      limit:
                        mw: 190
                        pf: 1
            application/vnd.trolie.forecast-limits-snapshot.v1+json; include-psr-header=false:
              schema:
                $ref: '#/components/schemas/forecast-limits-snapshot-elide-psr'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  source:
                    provider: X-AMPL
                    last-updated: '2023-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                limits:
                - resource-id: 8badf00d
                  periods:
                  - period-start: '2023-07-12T16:00:00-07:00'
                    period-end: '2023-07-12T17:00:00-07:00'
                    continuous-operating-limit:
                      mw: 160
                      pf: 1
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mw: 170
                        pf: 1
                    - duration-name: STE
                      limit:
                        mw: 180
                        pf: 1
                    - duration-name: DAL
                      limit:
                        mw: 190
                        pf: 1
            application/vnd.trolie.forecast-limits-snapshot-slim.v1+json; limit-type=apparent-power:
              schema:
                $ref: '#/components/schemas/forecast-limits-snapshot-slim'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  ends: '2023-07-12T18:00:00-07:00'
                  source:
                    provider: X-AMPL
                    last-updated: '2023-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                  power-system-resources:
                  - resource-id: 8badf00d
                    alternate-identifiers:
                    - name: segmentX
                      authority: TO-NERC-ID
                    - name: LINE1 SEG-X
                      authority: RC-NERC-ID
                      mrid: 8badf00d
                  - resource-id: f34d3d
                    alternate-identifiers:
                    - name: segmentY
                      authority: TO-NERC-ID
                    - name: LINE2 SEG-Y
                      authority: RC-NERC-ID
                      mrid: 8badf00d
                limits:
                - - - 160
                    - 1
                    - 170
                    - 1
                    - 180
                    - 1
                    - 190
                    - 1
                  - - 161
                    - 1
                    - 171
                    - 1
                    - 181
                    - 1
                    - 191
                    - 1
                - - - 140
                    - 1
                    - 150
                    - 1
                    - 160
                    - 1
                    - 170
                    - 1
                  - - 141
                    - 1
                    - 151
                    - 1
                    - 161
                    - 1
                    - 171
                    - 1
            application/vnd.trolie.forecast-limits-snapshot-slim.v1+json; limit-type=apparent-power; inputs-used=true:
              schema:
                $ref: '#/components/schemas/forecast-limits-snapshot-slim-inputs-used'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  ends: '2023-07-12T18:00:00-07:00'
                  source:
                    provider: X-AMPL
                    last-updated: '2023-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                  power-system-resources:
                  - resource-id: 8badf00d
                    alternate-identifiers:
                    - name: segmentX
                      authority: TO-NERC-ID
                    - name: LINE1 SEG-X
                      authority: RC-NERC-ID
                      mrid: 8badf00d
                  - resource-id: f34d3d
                    alternate-identifiers:
                    - name: segmentY
                      authority: TO-NERC-ID
                    - name: LINE2 SEG-Y
                      authority: RC-NERC-ID
                      mrid: 8badf00d
                limits:
                - - - 160
                    - 1
                    - 170
                    - 1
                    - 180
                    - 1
                    - 190
                    - 1
                  - - 161
                    - 1
                    - 171
                    - 1
                    - 181
                    - 1
                    - 191
                    - 1
                - - - 140
                    - 1
                    - 150
                    - 1
                    - 160
                    - 1
                    - 170
                    - 1
                  - - 141
                    - 1
                    - 151
                    - 1
                    - 161
                    - 1
                    - 171
                    - 1
                inputs-used:
                - name: dry bulb temperature (Fahrenheit)
                  unit: degF
                  values:
                  - - 50
                    - 51
                    - 52
                    - 53
                  - - 46.1
                    - 46.5
                    - 47.1
                    - 48
            application/vnd.trolie.forecast-limits-detailed-snapshot.v1+json:
              schema:
                $ref: '#/components/schemas/forecast-limits-detailed-snapshot'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  source:
                    provider: X-AMPL-RC
                    last-updated: '2024-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                  power-system-resources:
                  - resource-id: 8badf00d
                    alternate-identifiers:
                    - name: segmentX
                      authority: TO-NERC-ID
                    - name: LINE1 SEG-X
                      authority: X-AMPL-RC
                      mrid: 8badf00d
                limits:
                - resource-id: 8badf00d
                  periods:
                  - period-start: '2023-07-12T16:00:00-07:00'
                    period-end: '2023-07-12T17:00:00-07:00'
                    additional-data:
                      vendor-specific-data: {}
                    continuous-operating-limit:
                      mva: 160
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mva: 165
                    - duration-name: STE
                      limit:
                        mva: 170
                    - duration-name: DAL
                      limit:
                        mva: 180
                provenance:
                - resource-id: 8badf00d
                  proposals-considered:
                  - resource-id: 8badf00d-UTILITY-A-SEG-id
                    source:
                      last-updated: '2023-07-12T16:00:00-07:00'
                      provider: UTILITY-A
                      origin-id: 8badf00d-UTILITY-A-correlation-id
                    period-start: '2023-07-12T16:00:00-07:00'
                    period-end: '2023-07-12T17:00:00-07:00'
                    continuous-operating-limit:
                      mva: 150
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mva: 160
                    - duration-name: STE
                      limit:
                        mva: 165
                    - duration-name: DAL
                      limit:
                        mva: 170
                    inputs-used:
                    - name: wind-speed
                      unit: mph
                      value: 5.2
                    - name: wind-direction
                      unit: degrees
                      value: 277.5
                    - name: temperature
                      unit: F
                      value: 72.1
                  temporary-aar-exceptions:
                  - id: https://trolie.example.com/temporary-aar-exceptions/1234
                    source:
                      origin-id: 2d8c80e8-f533-4be9-85bf-f7f81eb73d67
                      provider: UTILITY-A
                      last-updated: '2025-07-12T16:00:00-07:00'
                    resource:
                      resource-id: 8badf00d
                    start-time: '2025-07-12T16:00:00-07:00'
                    end-time: '2025-08-01T00:00:00-07:00'
                    continuous-operating-limit:
                      mva: 160
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mva: 165
                    - duration-name: STE
                      limit:
                        mva: 170
                    - duration-name: DAL
                      limit:
                        mva: 180
                  overrides:
                  - continuous-operating-limit:
                      mva: 160
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mva: 165
                    reason: TOI 20250701-01
                    start-time: '2025-07-01T00:00:00-07:00'
            application/vnd.trolie.forecast-limits-detailed-snapshot.v1+json; include-psr-header=false:
              schema:
                $ref: '#/components/schemas/forecast-limits-detailed-snapshot-elide-psr'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  source:
                    provider: X-AMPL-RC
                    last-updated: '2024-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                limits:
                - resource-id: 8badf00d
                  periods:
                  - period-start: '2023-07-12T16:00:00-07:00'
                    period-end: '2023-07-12T17:00:00-07:00'
                    additional-data:
                      vendor-specific-data: {}
                    continuous-operating-limit:
                      mva: 160
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mva: 165
                    - duration-name: STE
                      limit:
                        mva: 170
                    - duration-name: DAL
                      limit:
                        mva: 180
                provenance:
                - resource-id: 8badf00d
                  proposals-considered:
                  - resource-id: 8badf00d-UTILITY-A-SEG-id
                    source:
                      last-updated: '2023-07-12T16:00:00-07:00'
                      provider: UTILITY-A
                      origin-id: 8badf00d-UTILITY-A-correlation-id
                    period-start: '2023-07-12T16:00:00-07:00'
                    period-end: '2023-07-12T17:00:00-07:00'
                    continuous-operating-limit:
                      mva: 150
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mva: 160
                    - duration-name: STE
                      limit:
                        mva: 165
                    - duration-name: DAL
                      limit:
                        mva: 170
                  temporary-aar-exceptions:
                  - id: https://trolie.example.com/temporary-aar-exceptions/1234
                    source:
                      origin-id: 2d8c80e8-f533-4be9-85bf-f7f81eb73d67
                      provider: UTILITY-A
                      last-updated: '2025-07-12T16:00:00-07:00'
                    resource:
                      resource-id: 8badf00d
                    start-time: '2025-07-12T16:00:00-07:00'
                    end-time: '2025-08-01T00:00:00-07:00'
                    continuous-operating-limit:
                      mva: 160
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mva: 165
                    - duration-name: STE
                      limit:
                        mva: 170
                    - duration-name: DAL
                      limit:
                        mva: 180
                  overrides:
                  - continuous-operating-limit:
                      mva: 160
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mva: 165
                    reason: TOI 20250701-01
                    start-time: '2025-07-01T00:00:00-07:00'
          headers:
            X-Rate-Limit-Limit:
              $ref: '#/components/headers/X-Rate-Limit-Limit'
            X-Rate-Limit-Remaining:
              $ref: '#/components/headers/X-Rate-Limit-Remaining'
            X-Rate-Limit-Reset:
              $ref: '#/components/headers/X-Rate-Limit-Reset'
            ETag:
              $ref: '#/components/headers/ETag'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400-problem'
        '401':
          $ref: '#/components/responses/401-empty'
        '403':
          $ref: '#/components/responses/403-empty'
        '404':
          $ref: '#/components/responses/404-empty'
        '406':
          $ref: '#/components/responses/406'
        '422':
          description: Unprocessable Content. The requested `temporal_resolution` is not supported.
          headers:
            X-Rate-Limit-Limit:
              $ref: '#/components/headers/X-Rate-Limit-Limit'
            X-Rate-Limit-Remaining:
              $ref: '#/components/headers/X-Rate-Limit-Remaining'
            X-Rate-Limit-Reset:
              $ref: '#/components/headers/X-Rate-Limit-Reset'
          content:
            application/problem+json:
              schema:
                type: object
                allOf:
                - properties:
                    supported-values:
                      type: array
                      maxItems: 100
                      items:
                        $ref: '#/components/schemas/schema'
                - $ref: '#/components/schemas/problem'
                required:
                - supported-values
              example:
                type: //trolie.example.com/spec/client-errors/422/unsupported-temporal-resolution
                title: Unsupported Temporal Resolution
                status: 422
                detail: The requested `temporal-resolution` 'PT1M' is not supported. Please choose from the list of supported values.
                instance: /forecast?temporal-resolution=PT1M
                supported-values:
                - PT1H
                - P1D
                - P1W
                - P1M
        '429':
          $ref: '#/components/responses/429-empty'
        '500':
          $ref: '#/components/responses/500-empty'
        default:
          $ref: '#/components/responses/500-empty'
      security:
      - oauth2-primary-flow:
        - read:operating-snapshot
  /limits/forecast-snapshot/{period}:
    get:
      operationId: getHistoricalLimitsForecastSnapshot
      summary: Historical Limits Forecast Snapshot
      tags:
      - Forecasting
      parameters:
      - $ref: '#/components/parameters/offset-period-start'
      - $ref: '#/components/parameters/period-end'
      - $ref: '#/components/parameters/query-filter'
      - $ref: '#/components/parameters/resource-id-filter'
      - $ref: '#/components/parameters/static-only'
      - $ref: '#/components/parameters/temporal-resolution'
      - name: period
        description: 'Returns the Forecast Limits snapshot for the period requested rather

          than the current snapshot.

          '
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/period-start'
      description: '

        Obtain the Limits Forecast the Transmission Provider used or is currently

        using in Operations as of the period requested.


        See the [Limits Forecast Snapshot](#tag/Forecasting/operation/getLimitsForecastSnapshot)

        operation for more information.

        '
      responses:
        '200':
          description: The requested operating forecast snapshot is returned.
          content:
            application/vnd.trolie.forecast-limits-snapshot.v1+json:
              schema:
                $ref: '#/components/schemas/forecast-limits-snapshot'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  source:
                    provider: X-AMPL
                    last-updated: '2023-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                  power-system-resources:
                  - resource-id: 8badf00d
                    alternate-identifiers:
                    - name: segmentX
                      authority: TO-NERC-ID
                    - name: LINE1 SEG-X
                      authority: RC-NERC-ID
                      mrid: 8badf00d
                limits:
                - resource-id: 8badf00d
                  periods:
                  - period-start: '2023-07-12T16:00:00-07:00'
                    period-end: '2023-07-12T17:00:00-07:00'
                    continuous-operating-limit:
                      mw: 160
                      pf: 1
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mw: 170
                        pf: 1
                    - duration-name: STE
                      limit:
                        mw: 180
                        pf: 1
                    - duration-name: DAL
                      limit:
                        mw: 190
                        pf: 1
            application/vnd.trolie.forecast-limits-snapshot.v1+json; include-psr-header=false:
              schema:
                $ref: '#/components/schemas/forecast-limits-snapshot-elide-psr'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  source:
                    provider: X-AMPL
                    last-updated: '2023-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                limits:
                - resource-id: 8badf00d
                  periods:
                  - period-start: '2023-07-12T16:00:00-07:00'
                    period-end: '2023-07-12T17:00:00-07:00'
                    continuous-operating-limit:
                      mw: 160
                      pf: 1
                    emergency-operating-limits:
                    - duration-name: LTE
                      limit:
                        mw: 170
                        pf: 1
                    - duration-name: STE
                      limit:
                        mw: 180
                        pf: 1
                    - duration-name: DAL
                      limit:
                        mw: 190
                        pf: 1
            application/vnd.trolie.forecast-limits-snapshot-slim.v1+json; limit-type=apparent-power:
              schema:
                $ref: '#/components/schemas/forecast-limits-snapshot-slim'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  ends: '2023-07-12T18:00:00-07:00'
                  source:
                    provider: X-AMPL
                    last-updated: '2023-07-12T16:00:00-07:00'
                    origin-id: //trolie.example.com/snapshots/2024-08-05T11%3a00%3a00-07%3a00
                  default-emergency-durations:
                  - name: LTE
                    duration-minutes: 240
                  - name: STE
                    duration-minutes: 30
                  - name: DAL
                    duration-minutes: 15
                  power-system-resources:
                  - resource-id: 8badf00d
                    alternate-identifiers:
                    - name: segmentX
                      authority: TO-NERC-ID
                    - name: LINE1 SEG-X
                      authority: RC-NERC-ID
                      mrid: 8badf00d
                  - resource-id: f34d3d
                    alternate-identifiers:
                    - name: segmentY
                      authority: TO-NERC-ID
                    - name: LINE2 SEG-Y
                      authority: RC-NERC-ID
                      mrid: 8badf00d
                limits:
                - - - 160
                    - 1
                    - 170
                    - 1
                    - 180
                    - 1
                    - 190
                    - 1
                  - - 161
                    - 1
                    - 171
                    - 1
                    - 181
                    - 1
                    - 191
                    - 1
                - - - 140
                    - 1
                    - 150
                    - 1
                    - 160
                    - 1
                    - 170
                    - 1
                  - - 141
                    - 1
                    - 151
                    - 1
                    - 161
                    - 1
                    - 171
                    - 1
            application/vnd.trolie.forecast-limits-snapshot-slim.v1+json; limit-type=apparent-power; inputs-used=true:
              schema:
                $ref: '#/components/schemas/forecast-limits-snapshot-slim-inputs-used'
              example:
                snapshot-header:
                  begins: '2023-07-12T16:00:00-07:00'
                  ends: '2023-07-12T18:00:00-07:00'
                  source:
                    provider: X-AMPL
                    last-updated: '2023-07-12T16:00:00-07:00'
          

# --- truncated at 32 KB (149 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spp/refs/heads/main/openapi/spp-forecasting-api-openapi.yml