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-seasonal-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: 3.2.0
info:
title: Transmission Ratings and Operating Limits Information Exchange (TROLIE) Seasonal 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: Seasonal
description: 'Seasonal ratings are static ratings associated with extended durations,
typically months. These are typically used in both planning and
operations.
Power system resources that are exempt from providing AARs generally
operate at a seasonal rating. Even for resources using dynamic ratings, a
seasonal rating is still necessary. This acts as a recourse when a dynamic
rating is unavailable. For example, a dynamic rating
might be unavailable during communication outages or for forecasts beyond
the ten-day period required by FERC Order 881.
'
paths:
/seasonal-ratings/snapshot:
get:
operationId: getSeasonalRatingsSnapshot
description: Retrieve the nominal and seasonal ratings.
summary: Get Seasonal Ratings
tags:
- Seasonal
parameters:
- $ref: '#/components/parameters/query-filter'
- $ref: '#/components/parameters/resource-id-filter'
responses:
'200':
description: OK
content:
application/vnd.trolie.seasonal-rating-snapshot.v1+json:
schema:
$ref: '#/components/schemas/seasonal-ratings-snapshot'
example:
snapshot-header:
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
ratings:
- resource-id: segmentX
periods:
- period-start: '2024-04-01T01:00:00Z'
period-end: '2024-07-01T01:00:00Z'
season-name: spring
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
application/vnd.trolie.seasonal-rating-snapshot-detailed.v1+json:
schema:
$ref: '#/components/schemas/seasonal-ratings-snapshot-detailed'
example:
snapshot-header:
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
ratings:
- resource-id: LINE1
periods:
- period-start: '2024-04-01T01:00:00Z'
period-end: '2024-07-01T01:00:00Z'
season-name: spring
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
proposals-considered:
- resource-id: 8badf00d
period-start: '2024-04-01T01:00:00Z'
period-end: '2024-07-01T01:00:00Z'
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
season-name: spring
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
application/vnd.trolie.seasonal-rating-snapshot-detailed.v1+json; include-psr-header=false:
schema:
$ref: '#/components/schemas/seasonal-ratings-snapshot-detailed-elide-psr'
example:
snapshot-header:
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
ratings:
- resource-id: LINE1
periods:
- period-start: '2024-04-01T01:00:00Z'
period-end: '2024-07-01T01:00:00Z'
season-name: spring
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
proposals-considered:
- resource-id: 8badf00d
period-start: '2024-04-01T01:00:00Z'
period-end: '2024-07-01T01:00:00Z'
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
season-name: spring
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
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'
'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
/rating-proposals/seasonal:
get:
operationId: getSeasonalRatingProposalStatus
summary: Obtain seasonal rating proposal status
description: '
Used to obtain the status of the Seasonal Ratings proposal. The response is
implicitly restricted to the requesting Ratings Provider''s obligation.
Accordingly, the caller can use this endpoint to check the state of their
proposal submission.
Note that the same status object is returned for each
`patchSeasonalRatingsProposal`, so this endpoint may seem redundant.
However, an anticipated use case for this `GET` endpoint is to support
supervisor processes that are setup by the client to independently ensure
the provider''s process for rating submission if functioning properly. For
example, the Rating Provider might have one program responsible for
producing and submitting Seasonal Ratings via
`patchSeasonalRatingsProposal`, while having a separate monitoring job that
checks this endpoint regularly.
Clients SHOULD perform Conditional `GET` using the `If-None-Match` header
and the `ETag` of a previous `GET` response to poll this endpoint. Rate
limiting is done on a per Ratings Provider basis, so requests from
independent clients used by the same provider count against the same quota.
'
tags:
- Seasonal
responses:
'200':
description: OK
content:
application/vnd.trolie.seasonal-ratings-proposal-status.v1+json:
schema:
$ref: '#/components/schemas/seasonal-ratings-proposal-status'
examples:
complete:
summary: Status reflects no errors or outstanding obligations
value:
source:
provider: UTILITY-A
last-updated: '2023-07-12T15:05:43.044267100-07:00'
origin-id: 5aeacb25-9b65-4738-8a00-ac10afa63640
incomplete-obligation-count: 0
incomplete-obligations: []
invalid-proposal-count: 0
proposal-validation-errors: []
incomplete:
summary: Status reflects outstanding obligations
value:
source:
provider: UTILITY-A
last-updated: '2023-07-12T15:05:43.044267100-07:00'
origin-id: 5aeacb25-9b65-4738-8a00-ac10afa63640
incomplete-obligation-count: 1
incomplete-obligations:
- resource-id: 8badf00d
obligation-period-begins: '2024-01-01T00:00:00-05:00'
obligation-period-ends: '2024-01-01T00:00:00-05:00'
periods:
- season-name: WINTER
begins: '2024-01-01T00:00:00-05:00'
invalid-proposal-count: 0
proposal-validation-errors: []
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'
'406':
$ref: '#/components/responses/406-problem'
'429':
$ref: '#/components/responses/429-empty'
'500':
$ref: '#/components/responses/500-empty'
default:
$ref: '#/components/responses/500-empty'
security:
- oauth2-primary-flow:
- read:seasonal-proposals
patch:
operationId: patchSeasonalRatingsProposal
summary: Submit a Seasonal Ratings proposal
description: '
This operation allows the Ratings Provider to provide a partial or complete
updates of their Seasonal Ratings that will be used by the Clearinghouse
Provider to determine the Seasonal Ratings Schedule.
'
tags:
- Seasonal
responses:
'202':
description: 'The update was accepted for later processing. Updates to ratings may
need to undergo additional validation and propagation to other systems.
'
content:
application/vnd.trolie.seasonal-ratings-proposal-status.v1+json:
schema:
$ref: '#/components/schemas/seasonal-ratings-proposal-status'
examples:
complete:
summary: Status reflects no errors or outstanding obligations
value:
source:
provider: UTILITY-A
last-updated: '2023-07-12T15:05:43.044267100-07:00'
origin-id: 5aeacb25-9b65-4738-8a00-ac10afa63640
incomplete-obligation-count: 0
incomplete-obligations: []
invalid-proposal-count: 0
proposal-validation-errors: []
incomplete:
summary: Status reflects outstanding obligations
value:
source:
provider: UTILITY-A
last-updated: '2023-07-12T15:05:43.044267100-07:00'
origin-id: 5aeacb25-9b65-4738-8a00-ac10afa63640
incomplete-obligation-count: 1
incomplete-obligations:
- resource-id: 8badf00d
obligation-period-begins: '2024-01-01T00:00:00-05:00'
obligation-period-ends: '2024-01-01T00:00:00-05:00'
periods:
- season-name: WINTER
begins: '2024-01-01T00:00:00-05:00'
invalid-proposal-count: 0
proposal-validation-errors: []
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'
'400':
$ref: '#/components/responses/400-problem'
'401':
$ref: '#/components/responses/401-empty'
'403':
$ref: '#/components/responses/403-empty'
'406':
$ref: '#/components/responses/406-problem'
'409':
description: Conflict with Seasonal Ratings Schedule
content:
application/problem+json:
schema:
$ref: '#/components/schemas/problem'
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'
'413':
$ref: '#/components/responses/413-empty'
'415':
$ref: '#/components/responses/415-problem'
'422':
$ref: '#/components/responses/422-problem'
'429':
$ref: '#/components/responses/429-empty'
'500':
$ref: '#/components/responses/500-empty'
default:
$ref: '#/components/responses/500-empty'
security:
- oauth2-primary-flow:
- write:seasonal-proposals
requestBody:
description: "\nThere are two supported media types for a Seasonal Ratings proposals.\n\n`application/vnd.trolie.seasonal-ratings-proposal.v1+json` allows the \nRatings Provider to combine different limit types, such as\n`apparent-power` (MVA) and `current` (MW), in a single proposal.\n\n`application/vnd.trolie.seasonal-ratings-proposal-slim.v1+json` for\nproposals that only require a single limit type, e.g., `apparent-power`.\nClients *MUST* specify that [limit-type](#tag/limit-type) as a media type\nparameter. For example,\n```http\nPATCH /rating-proposals/seasonal HTTP/1.1\nContent-Type: application/vnd.trolie.seasonal-ratings-proposal-slim.v1+json; limit-type=apparent-power\n```\nNote that this format is much more concise but requires significant care\nin serialization/deserialization. For details, see the schema description\nfor the [seasonal ratings proposal of an individual\nresource](#schema/seasonal-proposals-slim) which is the description for\neach element of the `ratings` array.\n"
required: true
content:
application/vnd.trolie.seasonal-ratings-proposal.v1+json:
schema:
$ref: '#/components/schemas/seasonal-ratings-proposal'
example:
proposal-header:
source:
last-updated: '2025-10-31T15:05:43.044267100-07:00'
provider: UTILITY-A
origin-id: 5aeacb25-9b65-4738-8a00-ac10afa63640
default-emergency-durations:
- name: emergency
duration-minutes: 240
power-system-resources:
- resource-id: 8badf00d
alternate-identifiers:
- name: segmentX
authority: TO-NERC-ID
ratings:
- resource-id: 8badf00d
periods:
- season-name: WINTER
period-start: '2024-11-15T00:00:00-05:00'
period-end: '2025-03-01T00:00:00-05:00'
continuous-operating-limit:
mva: 160
emergency-operating-limits:
- duration-name: LTE
limit:
mva: 165
- season-name: SPRING
period-start: '2025-03-01T00:00:00-05:00'
period-end: '2025-06-15T00:00:00-05:00'
continuous-operating-limit:
mva: 160
emergency-operating-limits:
- duration-name: LTE
limit:
mva: 165
- season-name: SUMMER
period-start: '2025-06-15T00:00:00-05:00'
period-end: '2025-09-01T00:00:00-05:00'
continuous-operating-limit:
mva: 160
emergency-operating-limits:
- duration-name: LTE
limit:
mva: 165
- season-name: FALL
period-start: '2025-09-01T00:00:00-05:00'
period-end: '2025-11-15T00:00:00-05:00'
continuous-operating-limit:
mva: 160
emergency-operating-limits:
- duration-name: LTE
limit:
mva: 165
application/vnd.trolie.seasonal-ratings-proposal-slim.v1+json; limit-type=apparent-power:
schema:
$ref: '#/components/schemas/seasonal-ratings-proposal-slim'
example:
proposal-header:
source:
last-updated: '2024-11-20T15:05:43.044267100-07:00'
provider: UTILITY-A
origin-id: 5aeacb25-9b65-4738-8a00-ac10afa63640
default-emergency-durations:
- name: emergency
duration-minutes: 240
power-system-resources:
- resource-id: 8badf00d
alternate-identifiers:
- name: segmentX
authority: TO-NERC-ID
- resource-id: f34d3d
alternate-identifiers:
- name: segmentY
authority: TO-NERC-ID
default-seasonal-schedule:
schedule:
- season-name: WINTER
begins: '2024-11-15T00:00:00-05:00'
- season-name: SPRING
begins: '2025-03-01T00:00:00-05:00'
- season-name: SUMMER
begins: '2025-06-15T00:00:00-05:00'
- season-name: FALL
begins: '2025-09-01T00:00:00-05:00'
ends: '2025-11-15T00:00:00-05:00'
ratings:
- - - 160
- 170
- - 155
- 160
- - 145
- 150
- - 155
- 160
- - - 161
- 171
- - 156
- 161
- - 146
- 151
- - 156
- 161
components:
schemas:
missing-seasonal-obligation:
type: object
additionalProperties: false
properties:
resource-id:
$ref: '#/components/schemas/resource-id'
obligation-period-begins:
$ref: '#/components/schemas/period-start'
obligation-period-ends:
$ref: '#/components/schemas/period-start'
periods:
description: "\nDefines the seasonal ratings schedule adopted in this proposal. Each season\nis given a `season-name` with the beginning of the season starting on\n`begins` and ending on the `begins` of the next season chronologically. \n\nIt is required that the seasons are listed chronologically.\n"
type: array
minItems: 1
maxItems: 240
items:
$ref: '#/components/schemas/season'
base-header:
type: object
properties:
source:
$ref: '#/components/schemas/data-provenance'
default-emergency-durations:
$ref: '#/components/schemas/emergency-durations'
default-limiting-analysis:
$ref: '#/components/schemas/limiting-analysis'
additionalProperties: false
required:
- source
- default-emergency-durations
seasonal-rating-snapshot-item-detailed:
type: object
additionalProperties: false
properties:
resource-id:
$ref: '#/components/schemas/resource-id'
periods:
description: "\nDefines the seasonal ratings schedule adopted in this proposal. Each season\nis given a `season-name` with the beginning of the season starting on\n`begins` and ending on the `begins` of the next season chronologically. \n\nIt is required that the seasons are listed chronologically.\n"
type: array
minItems: 1
maxItems: 240
items:
$ref: '#/components/schemas/seasonal-snapshot-detailed'
undervoltage-threshold:
type: object
title: Undervoltage Threshold
description: A lower limit to voltage for a transmission facility in kilovolts.
additionalProperties: false
properties:
kV-min:
description: The voltage in kilovolts.
type: number
format: int32
minimum: 0
maximum: 1100
required:
- kV-min
input:
type: object
properties:
name:
type: string
format: free-text
maxLength: 50
value:
description: 'The value of the input used in the ratings determination.
The type of this value is not specified, but implementors
are encouraged to use CIM types where appropriate.
'
unit:
type: string
description: 'If the `value` is dimensionless, this property should not be
provided. Since we are not specifying which inputs shall be
provided, we cannot specify a definitive list of units, but
implementors are encouraged to use UnitSymbol from CIM when
appropriate: The CIM may not include appropriate units for
all inputs, e.g., wind speed, degrees Fahrenheit, etc.
'
format: unit
maxLength: 50
required:
- name
- value
named-power-system-resources:
type: array
minItems: 1
maxItems: 50000
description: Collection of power system resource names
items:
$ref: '#/components/schemas/names'
active-power-with-power-factor:
type: object
title: Active Power and Power Factor
additionalProperties: false
properties:
mw:
type: number
description: Active Power in megawatts
format: float
minimum: 1
maximum: 10000
kV:
description: The voltage in kilovolts.
type: number
format: int32
minimum: 0
maximum: 1100
pf:
type: number
description: Assumed power factor.
format: float
minimum: 0
maximum: 1
required:
- mw
- pf
seasonal-proposal-slim:
type: array
title: Seasonal Period Proposal slim
maxItems: 20
minItems: 1
items:
type: number
title: Continuous and Emergency Ratings values
description: '
Each number in this array corresponds to a value of the continuous and
emergency ratings for a particular period. The first values correspond to
the continuous (normal) rating and the subsequent values correspond to the
emergency ratings in order of decreasing duration. The durations are
defined in the `proposal-header.default-emergency-durations` field.
The exact number of values in this array is further determined by the
`limit-type` parameter of the media type.
```http
Content-Type: application/vnd.trolie.seasonal-ratings-proposal-slim.v1+json; limit-type=apparent-power
```
If the [limit-type](#tag/limit-type) is single valued, like
`apparent-power`, then the array will have a single value for each rating.
For example, if there was only one emergency duration defined, then the
array would have two values, e.g. `[50, 55]`, corresponding to a 50MVA
continuous rating and 55MVA emergency rating, respectively. A
single-valued limit type is anticipated to be the most common case in
practice.
However, if the [limit-type](#tag/limit-type) is `active-power` and the
Clearinghouse Provider has required both MW and power factor, e.g.,
`{"mw":1, "pf":1}`, then the array will have two values for each rating.
If we continue with the example of having only one emergency duration
defined, then the array would have four values. Thus, instead of
`[normal_MVA, emergency_MVA]`, we would have `[normal_MW, normal_pf,
emergency_MW, emergency_pf]`, e.g., `[300, 1.0, 350, 1.0]`.
'
seasonal-rating-snapshot-item:
type: object
additionalProperties: false
properties:
resource-id:
$ref: '#/components/schemas/resource-id'
periods:
description: "\nDefines the seasonal ratings schedule adopted in this proposal. Each season\nis given a `season-name` with the beginning of the season starting on\n`begins` and ending on the `begins` of the next season chronologically. \n\nIt is required that the seasons are listed chronologically.\n"
type: array
minItems: 1
maxItems: 240
items:
$ref: '#/components/schemas/seasonal-snapshot'
problem:
description: See [RFC9457](https://www.rfc-editor.org/rfc/rfc9457#appendix-A).
type: object
properties:
type:
type: string
format: uri-reference
maxLength: 2048
description: 'A URI reference that identifies the problem type.
See [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457#name-type)
'
example: https://iana.org/assignments/http-problem-types#date
title:
type: string
format: free-text
maxLength: 500
description: 'A short, human-readable summary of the problem type.
See [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457#name-title)
'
status:
type: number
minimum: 100
maximum: 599
description: 'The HTTP status code generated by the ori
# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spp/refs/heads/main/openapi/spp-seasonal-api-openapi.yml