Prewave Disruptions API

Endpoints for retrieving alerts from the disruption map. Supports filtering by geographic region, collections, countries, and other criteria.

Operations 1

GET /public/v1/disruptions/alerts Find alerts on disruption map #

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/prewave-disruptions-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

prewave-disruptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Public Prewave Actions Disruptions API
  description: 'Documentation of the Public Prewave API.


    ## What''s New


    ### Q1 2026 — Supplier Management, User Management, Actions and Feed


    This quarter introduces major v2 upgrades, expanded administrative capabilities, and the new Actions API.


    - **Core Releases:** Deployed Supplier Management API v2 and Feed API v2, alongside the all-new Actions API.

    - **Enhanced Functionality:** Added robust identifier management, granular user and role configuration, and endpoints for managing supplier connection contacts.

    - ⚠️ **Required Migration:** Legacy v1 endpoints for Suppliers and Sites Upsert have been deprecated. Developers must migrate existing integrations to v2 by **May 31, 2027** (original deadline was December 31, 2026).


    📖 **[Read the Q1 2026 changelog](https://docs.prewave.com/en/articles/699847-q1-2026-public-api-updates)**


    ### Q2 2026 — Supplier Screening and External Scores


    We have expanded our v2 documentation to include comprehensive integration guidance for supplier screening and validation workflows and identifier-based external score ingestion.


    - **New Capabilities:** Added support for optional post-onboarding screening and validation during the create event.

    - **External Scores:** Batch POST for multiple supplier sites, per-site history GET, and event-type discovery GET (`/public/v1/scores/externals` and `/public/v1/scores/externals/event-types`). Documented in OpenAPI when enabled for your organization.

    - **Developer Resources:** Published new integration examples and detailed identifier validation rules to streamline your implementation process.


    📖 **[Read the Q2 2026 changelog](https://docs.prewave.com/en/articles/699849-q2-2026-public-api-updates)**


    ### Q3 2026 — Scores Webhooks


    To support event-driven architectures and eliminate the need for continuous API polling, we are introducing webhooks for score state changes later this year.


    - **Event-Driven Architecture:** Register webhook URLs to receive real-time HTTP payloads whenever a supplier''s score updates, so you can drive immediate mitigation responses without polling the API.

    - **Availability:** Comprehensive OpenAPI specifications and payload schemas will be published closer to the release date.

    - **Note:** Schemas and behaviors are subject to refinement prior to general availability.


    Documentation updates will be provided prior to release.


    ### Q4 2026 — Feed V2


    We are enhancing Feed API v2 with additional capabilities on top of the existing `GET /public/v2/feed` contract (see Q1 changelog and OpenAPI for the current Feed v2 integration).


    - **Availability:** Details will be announced before release.

    - **Note:** Schemas and behaviors are subject to refinement prior to the official release.


    Documentation updates will be provided prior to release.


    ---


    ## Authentication

    Prewave’s public api uses *API tokens* to authenticate against our RESTful service. We’ll provide you an *API-token* that each

    endpoint needs present as a http header.


    To pass the token in a request, simply add it as a header-parameter with

    * key = X-Auth-Token

    * value = api-token


    See an example in curl below where the api-token would be 12345678-90ab-cdef-1234-567890abcdef

    ```

    curl --request GET \

    --url https://REPLACE_WITH_SERVER/public/v1/target/prewave/3975230/alerts \

    --header ''X-Auth-Token: 12345678-90ab-cdef-1234-567890abcdef''

    ```


    ---


    ## Manage API Tokens


    Before you can obtain your API token, you''ll need the credentials for your API user. These credentials will be

    sent to you as part of the company-onboarding. If you haven''t got your credentials yet, please reach out to

    your sales-contact at Prewave or contact us via info@prewave.ai


    To generate an API Token, navigate to https://www.prewave.com/management/api and log in with the

    credentials of your API user. Then click at the button "Create New" and use your new api-token authentication as a header parameter.


    You can create multiple API tokens and also remove existing API tokens on https://www.prewave.com/management/api.

    API tokens do not expire, therefore you have to maintain the list of API tokens you are using manually.


    ---


    ## Default Rate Limits


    We have two types of default rate limits. For increased access, please contact customer success.


    | Type                              | Requests per 10 seconds | Requests per Minute |

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

    | GET requests                      | 100                     | 500                 |

    | POST, PUT, PATCH, DELETE requests | 20                      | 100                 |


    '
  version: '1.0'
servers:
- url: https://api.prewave.com
  description: Production Environment
security:
- Token authentication: []
tags:
- name: Disruptions
  description: Endpoints for retrieving alerts from the disruption map. Supports filtering by geographic region, collections, countries, and other criteria.
paths:
  /public/v1/disruptions/alerts:
    get:
      tags:
      - Disruptions
      summary: Find alerts on disruption map
      description: "\n### Overview\nRetrieve alerts displayed on the disruption map filtered by geographic region, collections, and other criteria.\n\nThis endpoint returns alerts that are visible on the disruption map interface, allowing you to query\nalerts by geographic bounding boxes, collections, countries, and various filter criteria.\n\n### Response\nReturns an array of alert objects. Each alert includes basic information (id, uuid, title, timestamps),\nevent grouping, priority and classification details, location/geographic data, source links and media,\ninfotags, primary target information, and collection paths. Unlike paginated endpoints, this endpoint\nreturns all matching alerts in a single array without pagination metadata.\n\n**Note**: Fields with null values are omitted from the JSON response. Geographic information (`geo`)\nis only available if `includeGeo` query parameter is set to `true`.\n\n### Use Cases\n- **Regional monitoring**: Monitor alerts in specific geographic regions.\n- **Pattern analysis**: Analyze disruption patterns by location.\n- **Collection filtering**: Filter alerts by collections and countries.\n- **Integration**: Integrate disruption map data into external systems.\n\n### Geographic Filtering\n- **bound**: Bounding box defining the geographic area to search (format: `bound=xmin,ymin,xmax,ymax`).\n- **previousBound**: Previous bounding box for incremental updates (optional).\n- **countryId**: Filter by country (obtain country IDs from `GET /public/v1/infotags` filtered by location type).\n\n### Collection Filtering\n- **collectionIds**: Filter alerts by specific collections (obtain collection IDs from `GET /public/v1/collections`).\n- **showAllAlerts**: If true, ignore collectionIds and show all accessible alerts.\n\n### Filter Objects\n- **poiFilter**: Filter by Point of Interest (POI) criteria.\n- **alertFilter**: Filter by alert-specific criteria (perspectiveId is required; eventTypeId, industryIds optional).\n\n### Required Permissions\n`access_public_disruption_alerts`, `access_featured_collection`\n\n### Performance Impact\nMedium\n    "
      operationId: findAlerts
      parameters:
      - name: collectionIds
        in: query
        description: Collection IDs to show alerts for. Obtain collection IDs from GET /public/v1/collections. If empty and showAllAlerts is false, no alerts will be returned.
        required: false
        schema:
          type: array
          items:
            type: integer
            format: int32
        example: 123,456
      - name: showAllAlerts
        in: query
        description: If true, show all accessible alerts and ignore the collectionIds parameter. If false, only alerts for the specified collections are returned.
        required: false
        schema:
          type: boolean
        example: false
      - name: countryId
        in: query
        description: 'Country ID to filter alerts by. Obtain country IDs from the infotags endpoint (GET /public/v1/infotags) filtered by location type. Note: Country codes are not currently supported; use country ID instead.'
        required: false
        schema:
          type: integer
          format: int32
        example: 1
      - name: includeGeo
        in: query
        description: If set to true, the response will include the geo information.
        required: false
        schema:
          type: boolean
        example: true
      - name: bound
        in: query
        description: 'Bounding box defining the geographic area to search. Format: bound=xmin,ymin,xmax,ymax. Example: bound=16.0,48.0,16.5,48.5'
        required: false
        schema:
          type: array
          items:
            type: integer
            format: int32
      - name: previousBound
        in: query
        description: Previous bounding box for incremental updates. Used to optimize queries when updating a map view.
        required: false
        schema:
          type: array
          items:
            type: integer
            format: int32
      - name: industryIds
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            format: int32
      - name: tokens
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
      - name: poiCTypeId
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: companyId
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: disruptionStatusId
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: tiers
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            format: int32
      - name: scopes
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - Private
            - Shared
            - Public
      - name: source
        in: query
        required: false
        schema:
          type: string
          description: Source of the supplier relationship edge
          enum:
          - Customer
          - Media
          - Customs
          - PrewavePrediction
      - name: perspectiveId
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: eventTypeId
        in: query
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Successfully retrieved alerts.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicAlertDTO'
              examples:
                Regional alerts example:
                  summary: Sample alerts response for a geographic region
                  description: Regional alerts example
                  value: '[{"id":12345,"uuid":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","title":"Flood happens in Sample City, Sample Region, US (and 10 others)","createdAt":1704067200000,"predictedAtStart":1703980800000,"predictedAtEnd":1704067199000,"description":"Flood occurred in Sample Region affecting multiple locations.","event":{"uuid":"b2c3d4e5-f6a7-8901-bcde-f23456789012"},"statusId":null,"locations":[],"links":[{"id":null,"url":"https://example.com/news/flood-sample-region","title":"Flood affects Sample Region","description":"Flood occurred in Sample Region affecting multiple locations.","pictureUrl":null,"originalLang":null,"originalTitle":null,"originalDescription":null}],"media":[],"infotags":[{"id":1001,"type":{"type":"alert_type","active":false,"displayName":"Alert Status","icon":"far fa-bell","ordering":1,"display":true},"value":"happens / occurs","svalue":"happens","icon":null,"numValue":null,"priority":null,"impactScore":null},{"id":2001,"type":{"type":"event_type","active":false,"displayName":"Event Type","icon":null,"ordering":10001,"display":true},"value":"Flood","svalue":"flood","icon":"fas fa-water","numValue":null,"priority":"High","impactScore":null}],"primaryTargets":[],"priority":"High","priorityDetails":{"massDisruption":true,"brandMention":false,"rumour":false,"lowPeerRisk":false,"terminates":false},"collectionPath":[],"geo":{"geometry":null,"properties":{"name":null,"countryCode":null,"alertCount":null,"boundingBox":null},"type":"Feature"}}]'
        '400':
          description: Bad Request - Invalid parameters (e.g., invalid bounding box coordinates, invalid filter format).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                Invalid bounding box:
                  summary: Error when bounding box coordinates are invalid
                  description: Invalid bounding box
                  value: '{"code":"invalid_request","message":"Invalid bounding box: north must be greater than south","solution":"Ensure bounding box coordinates are valid (north > south, east > west)"}'
        '404':
          description: Collection not found or not accessible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                Collection not found:
                  summary: Error when collection ID is invalid
                  description: Collection not found
                  value: '{"code":"resource_not_found","message":"Collection [999] not found","solution":"Verify collection IDs using GET /public/v1/collections"}'
        '403':
          description: '403 Forbidden - Authentication or authorization failure. This status code is returned when: (1) the request lacks valid authentication credentials (missing or invalid X-Auth-Token header), or (2) the authenticated user does not have the required permission to access this resource.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedErrorDTO'
              examples:
                Access denied example:
                  summary: User lacks necessary permissions or authentication
                  value: "{\n        \"loggedIn\": true,\n        \"code\": \"access_denied\",\n        \"message\": \"Access denied: you don't have necessary permissions to access this resource\",\n        \"solution\": \"Contact support for appropriate permissions\"\n    }"
        '500':
          description: 500 Internal Server Error - An unexpected error occurred on the server. The request may or may not have been processed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                Error - Server Error:
                  summary: Unexpected server error
                  value: "{\n        \"code\": \"internal_error\",\n        \"message\": \"An unexpected error occurred\",\n        \"solution\": \"Please try again later or contact support\"\n    }"
        '429':
          description: '429 Too Many Requests - API rate limit exceeded. The request has been rejected because the rate limit for this endpoint has been exceeded. Default rate limits: GET requests - 100 per 10 seconds, 500 per minute; POST/PUT/PATCH/DELETE requests - 20 per 10 seconds, 100 per minute. For increased access, please contact customer success.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRateLimitResponse'
              examples:
                Rate limit exceeded example:
                  summary: API rate limit exceeded
                  value: "{\n        \"error\": \"API rate limit exceeded\",\n        \"message\": \"You have reached the maximum allowed requests. Please try again later or upgrade your plan for increased access\",\n        \"requestLimit\": 100,\n        \"requestCount\": 100,\n        \"limits\": [\n            {\n                \"requestLimit\": 100,\n                \"timeInSeconds\": 10\n            },\n            {\n                \"requestLimit\": 500,\n                \"timeInSeconds\": 60\n            }\n        ],\n        \"currentTime\": \"2026-01-15T10:30:00\",\n        \"nextResetAt\": \"2026-01-15T10:30:10\"\n    }"
components:
  schemas:
    PublicHSCode:
      required:
      - code
      type: object
      properties:
        code:
          type: string
          example: null
        nShipments:
          type:
          - integer
          - 'null'
          format: int32
          writeOnly: true
          example: null
        nshipments:
          type: integer
          format: int32
          example: null
      description: List of HS Codes of the target
      example: null
    PublicAlertDTO:
      required:
      - collectionPath
      - createdAt
      - event
      - id
      - infotags
      - links
      - locations
      - media
      - primaryTargets
      - uuid
      type: object
      properties:
        id:
          type: integer
          description: Prewave-internal alert id
          format: int32
          example: null
        uuid:
          type: string
          description: Prewave-internal alert uuid
          format: uuid
          example: null
        title:
          type:
          - string
          - 'null'
          description: Alert title
          example: Hurricane happens at Norsk Hydro in Høyanger, NO
        createdAt:
          type: string
          description: When the alert was generated/created at prewave
          format: date-time
          example: null
        predictedAtStart:
          type:
          - string
          - 'null'
          description: When the event - that this alert is describing - started
          format: date-time
          example: null
        predictedAtEnd:
          type:
          - string
          - 'null'
          description: When the event - that this alert is describing - ended
          format: date-time
          example: null
        description:
          type:
          - string
          - 'null'
          description: Detailed description of alert. Usually an excerpt taken from one of the links
          example: It's windy in Høyanger
        event:
          $ref: '#/components/schemas/PublicEventDTO'
        statusId:
          type:
          - integer
          - 'null'
          description: Replaced with alert-relevancy
          format: int32
          deprecated: true
          example: null
        locations:
          type: array
          description: Locations where the alert happened
          items:
            $ref: '#/components/schemas/PublicTargetDTO'
          example: null
        links:
          type: array
          description: Source links the alert is based on
          items:
            $ref: '#/components/schemas/PublicLinkDTO'
          example: null
        media:
          type: array
          description: Media files attached to the alert
          items:
            $ref: '#/components/schemas/PublicMediaDTO'
          example: null
        infotags:
          type: array
          items:
            $ref: '#/components/schemas/PublicInfotagDTO'
          example: null
        primaryTargets:
          type: array
          description: The targets affected by this alert.
          items:
            $ref: '#/components/schemas/PublicAlertTargetDTO'
          example: null
        priority:
          type:
          - string
          - 'null'
          description: Priority of alert
          enum:
          - Low
          - Mid
          - High
          - Critical
          example: null
        priorityDetails:
          allOf:
          - $ref: '#/components/schemas/PublicPriorityDetailsDTO'
          example: null
        collectionPath:
          type: array
          description: The collections and their hierarchy for the target
          items:
            $ref: '#/components/schemas/PublicCollectionPathRef'
          example: null
        geo:
          $ref: '#/components/schemas/Geo'
      example: null
    Connection:
      required:
      - createdAt
      - customer1Id
      - customer2Id
      - initiatorCustomerId
      - pending
      - state
      - targetCustomerId
      type: object
      properties:
        customer1Id:
          type: integer
          format: int32
          example: null
        customer2Id:
          type: integer
          format: int32
          example: null
        initiatorCustomerId:
          type: integer
          format: int32
          example: null
        state:
          type: string
          enum:
          - Confirmed
          - Rejected
          - Failed
          example: null
        pending:
          type: boolean
          example: null
        initiatorId:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        comment:
          type:
          - string
          - 'null'
          example: null
        email:
          type:
          - string
          - 'null'
          example: null
        text:
          type:
          - string
          - 'null'
          example: null
        createdAt:
          type: string
          format: date-time
          example: null
        targetCustomerId:
          type: integer
          format: int32
          example: null
      example: null
    RiskAnalysisType:
      required:
      - availablePerspectives
      - hideDetails
      - products
      - recommended
      - scoping
      - tierNAnalysisEnabled
      - type
      type: object
      properties:
        type:
          type: string
          enum:
          - Default
          - LkSG
          - Norwegian Transparancy Act
          - CSDDD (Beta)
          - EU Battery Regulation
          example: null
        hideDetails:
          type: boolean
          example: null
        recommended:
          type: boolean
          example: null
        tierNAnalysisEnabled:
          type: boolean
          example: null
        scoping:
          type: boolean
          example: null
        products:
          type: boolean
          example: null
        component:
          type:
          - string
          - 'null'
          enum:
          - PeerScore
          - AlertScore
          - SSAScore
          - ExternalScore
          - TierNScore
          example: null
        perspectiveId:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        availablePerspectives:
          type: array
          items:
            $ref: '#/components/schemas/PerspectiveDTO'
          example: null
        countryScoreThreshold:
          type:
          - number
          - 'null'
          format: double
          example: null
        industryScoreThreshold:
          type:
          - number
          - 'null'
          format: double
          example: null
        purchaseVolumeThreshold:
          type:
          - number
          - 'null'
          format: double
          example: null
      example: null
    CollectionDTO:
      required:
      - children
      - collectionTreeFilter
      - commodityFilter
      - deliverySettingTypes
      - id
      - isMonitored
      - isParentMonitored
      - lanes
      - level
      - name
      - own
      - path
      - scope
      - tiersEnabled
      - type
      - uuid
      type: object
      properties:
        id:
          type: integer
          format: int32
          example: null
        uuid:
          type: string
          format: uuid
          example: null
        scope:
          type: string
          enum:
          - User
          - Customer
          - Featured
          example: null
        type:
          type: string
          enum:
          - Default
          - Commodity
          - Ariba
          example: null
        collection:
          type:
          - string
          - 'null'
          example: null
        name:
          type: string
          example: null
        user:
          $ref: '#/components/schemas/UserDTO'
        deliverySettingTypes:
          type: array
          items:
            $ref: '#/components/schemas/DeliverySettingTypeDTO'
          example: null
        logo:
          type:
          - string
          - 'null'
          example: null
        count:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        isMonitored:
          type: boolean
          example: null
        isParentMonitored:
          type: boolean
          example: null
        own:
          type: boolean
          example: null
        lanes:
          type: boolean
          example: null
        tiersEnabled:
          type: boolean
          example: null
        tierSettings:
          allOf:
          - $ref: '#/components/schemas/TierSettingsDTO'
          example: null
        collectionTreeFilter:
          type: array
          items:
            type: integer
            format: int32
            example: null
          example: null
        userId:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        customerId:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        organizationId:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        viewedWithRole:
          type:
          - string
          - 'null'
          enum:
          - Manager
          - Editor
          example: null
        parentId:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        children:
          type: array
          items:
            $ref: '#/components/schemas/CollectionDTO'
          example: null
        level:
          type: integer
          format: int32
          example: null
        path:
          type: array
          items:
            $ref: '#/components/schemas/CollectionRef'
          example: null
        commodityFilter:
          type: array
          items:
            $ref: '#/components/schemas/CommodityFilterId'
          example: null
        updatedAt:
          type:
          - string
          - 'null'
          format: date-time
          example: null
        monitored:
          type: boolean
          writeOnly: true
          example: null
        parentMonitored:
          type: boolean
          writeOnly: true
          example: null
      example: null
    TierSettingsDTO:
      required:
      - logisticsProvider
      - maxTier
      - scopePrivate
      - scopePublic
      - scopeShared
      - sourceCustomer
      - sourceCustoms
      - sourceMedia
      - sourcePrewavePrediction
      - suspectedSuppliers
      - tier2MinPrio
      - tier2TargetPrio
      - tier3PlusMinPrio
      - tier3PlusTargetPrio
      type: object
      properties:
        maxTier:
          type: integer
          format: int32
          example: null
        tier2TargetPrio:
          type: string
          enum:
          - Low
          - Mid
          - High
          - Critical
          example: null
        tier3PlusTargetPrio:
          type: string
          enum:
          - Low
          - Mid
          - High
          - Critical
          example: null
        tier2MinPrio:
          type: string
          enum:
          - Low
          - Mid
          - High
          - Critical
          example: null
        tier3PlusMinPrio:
          type: string
          enum:
          - Low
          - Mid
          - High
          - Critical
          example: null
        scopePrivate:
          type: boolean
          example: null
        scopeShared:
          type: boolean
          example: null
        scopePublic:
          type: boolean
          example: null
        sourceCustoms:
          type: boolean
          example: null
        sourcePrewavePrediction:
          type: boolean
          example: null
        sourceMedia:
          type: boolean
          example: null
        sourceCustomer:
          type: boolean
          example: null
        minShipments:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        probability:
          type:
          - integer
          - 'null'
          format: int32
          example: null
        lastShipmentsPeriodFrom:
          type:
          - string
          - 'null'
          format: date
          example: null
        lastShipmentsPeriodTo:
          type:
          - string
          - 'null'
          format: date
          example: null
        suspectedSuppliers:
          type: boolean
          example: null
        logisticsProvider:
          type: boolean
          example: null
      example: null
    RiskAnalysisLock:
      required:
      - locked
      - type
      type: object
      properties:
        type:
          type: string
          enum:
          - Form
          - Suppliers
          - Matrix
          - Actions
          - Scoping
          - Products
          example: null
        locked:
          type: boolean
          example: null
        user:
          $ref: '#/components/schemas/UserDTO'
        lockedAt:
          type:
          - string
          - 'null'
          format: date-time
          example: null
      example: null
    EdgeImpactData:
      required:
      - causalContribution
      - coc
      - daysOnHand
      - deviation
      - edgeId
      - stockAtSupplier
      - stockOnPremise
      - validFrom
      - validTo
      type: object
      properties:
        edgeId:
          type: integer
          format: int32
          example: null
        validFrom:
          type: string
          format: date-time
          example: null
        validTo:
          type: string
          format: date-time
          example: null
        purchase:
          type:
          - number
          - 'null'
          example: null
        actualPurchase:
          type:
          - number
          - 'null'
          example: null
        diForced:
          type:
          - string
          - 'null'
          enum:
          - NA
          - 'No'
          - Low
          - Mid
          - High
          - Critical
          example: null
        di:
          type:
          - number
          - 'null'
          format: double
          example: null
        causalContribution:
          type: boolean
          example: null
        bi12:
          type:
          - number
          - 'null'
          example: null
        coc:
          type: boolean
          example: null
        mttrGrossE:
          type:
          - number
          - 'null'
          format: double
          example: null
        mttrNetE:
          type:
          - number
          - 'null'
          format: double
          example: null
        mttrGrossI:
          type:
          - number
          - 'null'
          format: double
          example: null
        mttrNetI:
          type:
          - number
          - 'null'
          format: double
          example: null
        stockOnPremise:
          type: number
          format: double
          example: null
        stockAtSupplier:
          type: number
          format: double
          example: null
        daysOnHand:
          type: number
          format: double
          example: null
        deviation:
          type: string
          enum:
          - NotApplicable
          - OnTarget
          - Below
          - Above
          example: null
        location:
          type:
          - string
          - 'null'
          enum:
          - SameBuilding
          - DifferentFireSection
          - DifferentBuilding
          - NotApplicable
          example: null
        lastConfirmationDate:
          type:
          - string
          - 'null'
          format: date
          exampl

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