Whitespace Platform API

The Whitespace Platform API is a REST/JSON API over the full London-market subscription placing lifecycle, publicly described by an OpenAPI 3.0.0 document covering 113 endpoints across Risks, Data, Attachments, Documents, Activities, Comments, Labels, Lookup, Endorsements, Lines, Questionnaire, Summary, User and MI Report. It genuinely exposes QUOTE (quoteOnRequest, saveQuoteDetails, getQuoteDetails, showQuoteToBroker, declineQuoteRequest, markAsIndicative, notTakeUpQuotation) and BIND (createBindableQuote, draftToFirmOrder, markAsFirmOrder, writeLine, recordLine, requestWrittenLineSets, acceptWrittenLine, signSets, reSignSets) and ISSUE of the contract document (getExtendedMRC, export/pdf/{riskID}, documents/{docID}), plus post-bind endorsement handling. It does NOT cover FNOL or claims — Whitespace is a placing platform, not a claims system. The embedded Defined Data API (/api/v22.04/data and /api/v23.09/data) returns and verifies structured contract values tagged against MRC headings and an alternative ACORDGPM tagset. Documented servers are the Sandbox, Tess, Beta and Staging environments; production access is arranged separately with Whitespace Support. Authentication is HTTP bearer JWT using a service token issued by Whitespace Support to a contracted organisation, restricted to allowlisted IP addresses and expiring within one year — there is no self-serve key.

OpenAPI Specification

whitespace-london-platform-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 0.1.0
  title: Whitespace Platform API
  description: <div>Last update 29th May 2025</div> <p/> <div>Our intention is to cover the API calls most of use to those wanting  to integrate external systems to the Whitespace Platform. We will give  some descriptions about usage, but put full detail in standalone documents at  <a href='https://apidocs.whitespace.co.uk/'>https://apidocs.whitespace.co.uk/</a>. We intend to have the published endpoints and schemas documented to the  level that the code generated can be used safely and without modification to call our APIs safely.</div>  <p/> <div>Calls exclusive to brokers or underwriters have a comment of Broker Only and Underwriter Only respectively. All other calls work for both, but functionality might depend on the stage the risk is at, or other contextual factors.</div> <div>Where certain properties refer to RootID or similar, they are actually referring to the ID of the entire slip, encompassing all stages and instances of the contract. This is a unique 38-character reference starting
    with the letters IC. If they mention riskID or docID or placingID, these are refering to the ID of a specific document or contract instance within the slip. This is always the RootID of the base slip followed by a double colon, ::, and further characters.</div> <div> Once your Integration is ready to go live, the URL for production is <b>https://www.whitespaceplatform.com</b></div>
paths:
  /api/activities/{riskID}:
    get:
      summary: A list of the activity documents that describe the history of one specific document instance
      description: This endpoint returns the activity associated with one specific version of a contract or another single document associated with a risk. In most cases, this will be less useful than GET /activities/{RootID}/full, which returns all the activities associated with a root risk.
      tags:
      - Activities
      parameters:
      - in: path
        name: riskID
        schema:
          type: string
        required: true
        description: The unique ID of the specific document/contract instance to retrieve the list of activity documents for
        example: IC213DA609-D6B5-4A05-86B8-3FD91E861F57::FO
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  description: The data associated with an individual activity document. Note that other, activity-specific objects may be present in some cases
                  properties:
                    _id:
                      type: string
                      description: 'The ID of the activity document that this object summarises '
                      example: IC70286F5F-9457-41D7-AE71-16222BECEF21::ACTI::CF3DD75F-AC80-4CEA-BD3E-3E307F17A8BD
                    activity:
                      type: string
                      description: The live description of the action that created this document (which sometimes extends the "hardcodedActivity" value to be more explicit). For a list of activities please refer to the /activities/filter/help endpoint
                      example: Created New Placement
                    channels:
                      type: array
                      description: A list of the user channels associated with the action that generated this activity document
                      items:
                        type: string
                        description: The name of each channel
                        example: carrier_MARINECASUALTY
                    _rev:
                      type: string
                      description: The system-generated version number of the activity document. The number before the - is generated sequentially, starting at 1
                      example: 1-a302cd4445e3d12c33fdabf467e2789b
                    userID:
                      type: string
                      description: The user ID of the user who took the action generating the activity document
                      example: MUD38EC011-780A-42D3-94DA-FD9063F5DAF9
                    hardcodedActivity:
                      type: string
                      description: The hardcoded description of the action that created this document (which is sometimes augmented by the "activity" value). For a full list of activities please refer to the /activities/filter/help endpoint
                      example: Created New Placement
                    provenance:
                      type: array
                      items:
                        $ref: '#/components/schemas/ExtendedMRC/properties/provenance'
                    parentDocID:
                      type: string
                      description: The ID of the risk or document that the activity document relates to
                      example: IC70286F5F-9457-41D7-AE71-16222BECEF21
                    type:
                      type: string
                      description: The internal system identifier for activity documents, which will always be RWActivity
                      example: RWActivity
                    createdAt:
                      type: string
                      description: The creation date of the activity document, in YYYY-MM-DD hh:mm:ss format
                      example: '2022-05-09 11:44:41'
                    apnsData:
                      $ref: '#/components/schemas/RWComment/properties/apnsData'
                    linkedArchiveID:
                      type: string
                      description: The archive copy of the risk or document that the action was applied to
                      example: IC70286F5F-9457-41D7-AE71-16222BECEF21::ARCH::96C8C81A-C8B6-44AA-BF4C-03FE2812AF56
        '401':
          $ref: '#/paths/~1api~1risks~1save/post/responses/401'
  /api/activities/{rootID}/full:
    get:
      summary: A list of the activity documents that describe the full history of a root risk
      description: This endpoint returns the activities that have been performed on all of the contract instances falling under a root risk and all of its associated attachments or other documents. The activity documents summarised by this endpoint record the complete history of that risk across its lifespan. To target one specific version of a contract, or one attachment, endorsement, or other document, use GET /activities/{RiskID}, or to target a specific activity type within a date range across all root risks visible to the user, use GET /activities/filter.
      tags:
      - Activities
      parameters:
      - in: path
        name: rootID
        schema:
          type: string
        required: true
        description: The unique ID of a root risk to retrieve the complete list of activity documents for
        example: IC213DA609-D6B5-4A05-86B8-3FD91E861F57
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/paths/~1api~1activities~1%7BriskID%7D/get/responses/200/content/application~1json/schema/items'
        '401':
          $ref: '#/paths/~1api~1risks~1save/post/responses/401'
  /api/activities/filter/help:
    get:
      tags:
      - Activities
      summary: A help file detailing use of the POST /activities/filter API
      description: This call returns instructions on using the POST /activities/filter API to return a list of activity documents visible to the user, filtered by activity type and, optionally, date and time. The instructions include a list of the most commonly filtered activities. For a complete and fully up-to-date list of activities, please email support@whitespace.co.uk
      responses:
        '200':
          description: OK
          content:
            application/json:
              example:
                messages:
                - These are the most useful activities.
                - The input to /activities/filter needs an exact match, including case, punctuation and whitespace.
                - For a complete list email support@whitespace.co.uk
                - The from input can be a date as 'YYYY-MM-DD' or 'YYYY-MM-DD hh:mm:ss', or 'N minutes / hours / days' to cover a timespan up to now
                Sample input 1:
                  from: '2019-11-29'
                  activity: Signed Lines
                  to: '2019-11-29 23:59:59'
                Sample input 2:
                  from: 2 hours
                  activity: Quoted
                Sample input 3:
                  activity: Signed Lines
                activities:
                - Accepted a Quote
                - Accepted a Quote Request
                - Accepted on behalf of Buyer
                - Added an Attachment
                - Added an Attachment from a Subjectivity Response
                - Changed or Added a Line item
                - Created New Placement
                - Declined Quote Request
                - Line Written
                - Offered Quote
                - Placing Updated
                - Quote Not Taken Up
                - Quote Requested
                - Quoted
                - Requested a Line
                - Sent to Broker
                - Showed to Following Market
                - Signed Lines
                - Subjectivities/Line Conditions Accepted
                - Subjectivities/Line Conditions Rejected
        '401':
          $ref: '#/paths/~1api~1risks~1save/post/responses/401'
  /api/activities/filter:
    post:
      tags:
      - Activities
      summary: Fetch a list of all activity visible to the user matching a specific activity type and optional date range
      description: A parameter matching a single activity is required for this call, but the 'from' and 'to' parameters are optional, and take a date/time block in yyyy-mm-dd hh:mm:ss format. If the date parameters are missing, all visible activity documents matching the activity will be returned. Note that the 'from' parameter can instead accept a duration. If a duration is used, it is calculated backwards from the present time, and the 'to' parameter should be omitted. See GET /activities/filter/help for example payloads and a list of commonly requested activities.
      requestBody:
        description: Array of filter criteria
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                activity:
                  type: string
                  description: Only activity documents containing an activity key-pair with a value identical to this parameter will be returned by the call.
                  example: Line Written
                from:
                  type: string
                  description: Match documents no older than (a) a date/time in yyyy-mm-dd hh:mm:ss format, or (b) a period of time in minutes, hours, or days, e.g. 5 minutes, 18 hours, 365 days. If omitted, all matching documents in the database up to the 'to' parameter will be returned.
                  example: '2019-11-29T23:59:59.000Z'
                to:
                  type: string
                  description: Match documents no more recent than a date/time in yyyy-mm-dd hh:mm:ss format. If omitted, all matching documents up to the present time will be returned.
                  example: '2022-07-31T23:59:59.000Z'
      responses:
        '200':
          description: A list of activity document summary arrays
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RWActivity'
        '401':
          $ref: '#/paths/~1api~1risks~1save/post/responses/401'
  /api/attachments/{corporate}/{logo}:
    get:
      tags:
      - Attachments
      summary: Get a logo for the corporate (broker or carrier) on the system
      parameters:
      - in: path
        name: corporate
        schema:
          type: string
        required: true
        description: The corporate company id, uppercase and prefixed by 'Corporate-
        example: Corporate-BLACKPOOL
      - in: path
        name: logo
        schema:
          type: string
        required: true
        description: Either logocolour for a coloured logo, or logobw for a black-and-white one
        example: logocolour
      responses:
        '200':
          description: a logo, not as JSON, usually in PNG format
        '401':
          $ref: '#/paths/~1api~1risks~1save/post/responses/401'
  /api/attachments/{rootID}:
    get:
      tags:
      - Attachments
      parameters:
      - in: path
        name: rootID
        schema:
          type: string
        required: true
        description: The unique ID of the risk
        example: IC213DA609-D6B5-4A05-86B8-3FD91E861F57
      summary: Gets meta data for all attachments available on a risk
      responses:
        '200':
          description: <p>The meta data for all attachments available on the risk. Note that the parentDocID and identifier are the values used in GET /api/attachments/$parentDocID/$identifier to retrieve the content of the attachment.</p>
          content:
            application/json:
              example:
              - attachedAt: '2022-10-10 16:26:09'
                attachedByUser: MU5F640CA3-FEEF-4E18-BAA0-EB9375824F68
                attachmentName: SiteMap.png
                channels:
                - blackpool_PROPERTY
                content_type: application/octet-stream
                digest: sha1-PQdi0wPAzykWJ+J4yjVIxrvsj30=
                identifier: A-6825C239-CDB3-429F-B53C-24058533F20A
                length: 767008
                parentDocID: IC8248761E-ABDF-4B52-B484-DF6174364694::ATCH::A-6825C239-CDB3-429F-B53C-24058533F20A
                version: 1
              schema:
                type: array
                items:
                  type: object
                  properties:
                    attachedAt:
                      type: string
                      example: '2022-10-10T16:26:09.000Z'
                    attachedByUser:
                      type: string
                      example: MU5F640CA3-FEEF-4E18-BAA0-EB9375824F68
                      description: the unique MU number for the user who uploaded the attachment
                    channels:
                      type: array
                      items:
                        type: string
                        example: blackpool_PROPERTY
                    content_type:
                      type: string
                      example: application/octet-stream
                    digest:
                      type: string
                      example: sha1-PQdi0wPAzykWJ+J4yjVIxrvsj30=
                    identifier:
                      type: string
                      example: A-6825C239-CDB3-429F-B53C-24058533F20A
                      description: use this value in a call to /api/attachments/$parentDocID/$identifier
                    length:
                      type: integer
                      example: 767008
                    parentDocID:
                      type: string
                      example: IC8248761E-ABDF-4B52-B484-DF6174364694::ATCH::A-6825C239-CDB3-429F-B53C-24058533F20A
                      description: use this value in a call to /api/attachments/$parentDocID/$identifier
                    version:
                      type: integer
                      example: 1
        '401':
          $ref: '#/paths/~1api~1risks~1save/post/responses/401'
  /api/attachments/array/{rootID}:
    get:
      tags:
      - Attachments
      parameters:
      - in: path
        name: rootID
        schema:
          type: string
        required: true
        description: The unique ID of the risk
        example: IC213DA609-D6B5-4A05-86B8-3FD91E861F57
      summary: Gets meta data for all attachments on a risk
      responses:
        '200':
          description: An array of attachment meta data. This was provided as an alternative to /attachments as an alternative format that may be easier to consume.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    length:
                      type: integer
                      format: int32
                      example: 211059
                    digest:
                      type: string
                      example: sha1-gc50j2LK51yS93Y2HC4S7PQ+xg8=
                    revpos:
                      type: integer
                      format: int32
                      example: 2
                    identifier:
                      type: string
                      example: A-C6FC8D21-A7CE-498D-B08A-F7B0AB23B64D.pdf
                    stub:
                      type: boolean
                      example: true
                    docID:
                      type: string
                      description: the id of the attachment document
                      example: ICC0D79D92-AA39-4624-8B96-188925A9B73E::ATCH
                    metadata:
                      type: object
                      properties:
                        attachedAt:
                          type: string
                          example: '2019-11-18T14:17:54.000Z'
                        attachedByUser:
                          type: string
                          example: MUD38EC011-780A-42D3-94DA-FD9063F5DAF9
                        identifier:
                          type: string
                          example: A-C6FC8D21-A7CE-498D-B08A-F7B0AB23B64D.pdf
                        attachmentName:
                          type: string
                          example: Aviation Demo Slip.pdf
                    content_type:
                      type: string
                      example: application/pdf
              example:
              - attachedAt: '2023-02-14 14:51:00'
                attachedByUser: MU5F640CA3-FEEF-4E18-BAA0-EB9375824F68
                attachmentName: LossHistory.xlsx
                channels:
                - blackpool_MARINE
                content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                digest: sha1-YOPp9u6xEkGQW1EGpErvxoBAxs0=
                identifier: A-6690DC47-A84D-4EC2-9C5C-92F12307A41E
                length: 9244
                parentDocID: IC3F18C8EC-E6F4-4C93-A894-09259B312D13::ATCH::A-6690DC47-A84D-4EC2-9C5C-92F12307A41E
                version: 1
              - attachedAt: '2023-02-14 14:51:10'
                attachedByUser: MU5F640CA3-FEEF-4E18-BAA0-EB9375824F68
                attachmentName: Floorplan.png
                channels:
                - blackpool_MARINE
                content_type: image/png
                digest: sha1-iFd1D6xZBF4j9NNcmxr7DxArppQ=
                identifier: A-37D4FAD6-2E86-4BBD-917F-8CB996671173
                length: 369396
                parentDocID: IC3F18C8EC-E6F4-4C93-A894-09259B312D13::ATCH::A-37D4FAD6-2E86-4BBD-917F-8CB996671173
                version: 1
        '401':
          $ref: '#/paths/~1api~1risks~1save/post/responses/401'
  /api/attachments/{parentDocID}/{identifier}:
    get:
      summary: Get an attachment
      description: <p>Download an attachment, using values from a call to /api/attachments/$RiskID. The content will not be JSON, but the contents of the attachment which can be saved to a file.</p> <p>Due to limitations in Swagger, the attachment might not display properly when tested, but all attachment types can be downloaded normally outside Swagger.</p> <p>If you want to download an attachment linked to a Subjectivity, you need to grab the <b>_id</b> and <b>identifier</b> by calling /api/risks/{rootID}/related/{type} with a type of RWSubjectivityResponse.</p>
      tags:
      - Attachments
      parameters:
      - in: path
        name: parentDocID
        schema:
          type: string
        required: true
        description: The RWAttachmentCollection document, which is parentDocID in a call to /api/attachments/$RiskID -- <b>OR</b>, for Subjectivity Attachments, grab the <b>_id</b> from /api/risks/{rootID}/related/{type} with a type of RWSubjectivityResponse.
        example: IC88965CED-A84B-42F3-8D42-A3534DB92B08::ATCH::A-2343226A-631E-4A1B-A89E-6FBEEFE0E5F3
      - in: path
        name: identifier
        schema:
          type: string
        required: true
        description: The unique id of the attachment, which is <b>identifier</b> in a call to /api/attachments/$RiskID -- <b>OR</b>, for Subjectivity Attachments, grab the <b>_id</b> from /api/risks/{rootID}/related/{type} with a type of RWSubjectivityResponse.
        example: A-2343226A-631E-4A1B-A89E-6FBEEFE0E5F3
      responses:
        '200':
          description: The content of the file, which will not be JSON, but more likely an image, spreadsheet etc.
  /api/attachments/{riskID}/{attachmentName}:
    post:
      summary: Upload an attachment - Broker Only
      description: <p>Broker users can call this endpoint to upload an attachment document to a risk. The document is not automatically shared with carriers. The broker must deliberately share it as required.</p> <p>The payload is not JSON, but the binary content of the file. The MIME Content header must correctly define the file, so "image/png" for an image, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" for an XLSX spreadsheet and so on. All content headers should match the <a href='https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types'>reference list of MIME types at mozilla.org</a>. <p>If you want to replace an existing attachment, use the <b>newVersionOf</b> parameter<p> <p>Please note that underwriter users may call POST /api/attachbyunderwriter to send a contract attachment to the broker.</p>
      tags:
      - Attachments
      parameters:
      - in: path
        name: riskID
        schema:
          type: string
        required: true
        description: The root ID of the risk, starting IC
        example: ICBC2860DE-3E55-40CD-99B8-5457E11D8C0A
      - in: path
        name: attachmentName
        schema:
          type: string
        required: true
        description: A helpful name for the attached document. Often (but not necessarily) the original file name.
        example: AerialPhoto.png
      - in: query
        name: newVersionOf
        schema:
          type: string
        required: false
        description: The ID of the existing attachment you want to replace
        example: A-8652873F-40C7-4667-9A4A-CDD968C55E93
      responses:
        '200':
          description: The response after succesfully uploading an attachment
          content:
            application/json:
              schema:
                type: object
                properties:
                  msg:
                    type: string
                    example: Attachment uploaded.
                    description: A message indicating success
  /api/attachments/{rootID}/showToCarriers:
    post:
      summary: Show an attachment to carriers - Broker Only
      tags:
      - Attachments
      parameters:
      - in: path
        name: rootID
        schema:
          type: string
        required: true
        description: The unique root ID of the risk.
        example: IC213DA609-D6B5-4A05-86B8-3FD91E861F57
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                docID:
                  type: string
                  description: the ID of the attachment document.
                  example: ICA3C8F0A7-D477-4FB9-AEB2-52AC2B63C6FA::ATCH::A-3F7233A7-038A-4051-8860-154C7B3C543D
                attachID:
                  type: string
                  description: the ID of the attachment.
                  example: A-3F7233A7-038A-4051-8860-154C7B3C543D
                channels:
                  type: array
                  description: The channels of the carriers you want to show to.
                  items:
                    type: string
                  example:
                  - tomyunderwriting_ALL
      responses:
        '200':
          description: Response from succesfully showing an attachment to a carrier.
          content:
            application/json:
              schema:
                type: object
                properties:
                  msg:
                    type: string
                    description: Message to confirm the attachment has been shown.
                    example: Attachment Shown
  /api/attachbyunderwriter/{riskID}/{underwriter_channel}/{attachmentname}:
    post:
      summary: Upload an Attachment as an Underwriter - Underwriter Only
      description: This call allows an Underwriter account to attach a document to a specific contract. Note that the attachment is automatically shared with the broker when uploaded. The example given below only works with png files due to the objects specified in the requestBody array, but any file type can be attached via API.
      tags:
      - Attachments
      parameters:
      - in: path
        name: riskID
        schema:
          type: string
        required: true
        description: The unique ID of the risk
        example: IC213DA609-D6B5-4A05-86B8-3FD91E861F57
      - in: path
        name: underwriter_channel
        schema:
          type: string
        required: true
        description: The channel name of the underwriter team that the contract is in
        example: whitesails_ALL
      - in: path
        name: attachmentname
        schema:
          type: string
        required: true
        description: The name of file to attach
        example: example.png
      requestBody:
        content:
          image/png:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: The response after succesfully uploading an attachment
          content:
            application/json:
              schema:
                type: object
                properties:
                  docID:
                    type: string
                    description: the document ID
                    example: IC7B4C4ECF-5340-4A88-B5BE-A4ECE8859B61::CHAT::50E4EB6C-147B-4337-8FB7-B4051D42410F
                  attachmentRequestID:
                    type: string
                    example: AR::MUB70853CF-3221-4FD4-8A30-12B05EAD2EA5::83DC9DD9-AEA7-41E5-8777-ADF1BAEFD67F
                  attachmentID:
                    type: string
                    description: The ID of the new attachment
                    example: A-22E24B43-38B7-4B86-B62A-8018DC8B9839
  /api/bindNotifyParties:
    post:
      summary: Bind notify and non-notify parties to a contract declared to a facility/MGA. At least one (re)insurer has to be assigned as a non/notify party before making this call.
      tags:
      - Bind Notify Parties
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                declarationID:
                  type: string
                  description: The riskID of the firm order declaration contract
                  example: ICDD2F9D3D-822C-4D6B-AD80-C95503938562::FO
                facilityID:
                  type: object
                  properties:
                    facilityID:
                      type: string
                      description: The rootID of the facility agreement contract
                      example: IC97A46B13-39DD-4929-AA16-572B0D2D8CBF
      responses:
        '200':
          description: Response from binding a notify party
          content:
            application/json:
              example:
              - rev: 1-c37d9fdb98287f1d0fecba5c6598d15c
                id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FO::OFFLINEA2BCONSORTIUMFOLLOW::ALL
              - rev: 1-fe1bd7fd0a3859ff6269d8153ca20a5a
                id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FO::OFFLINEA2BCONSORTIUMFOLLOW::ALL::LGUS
              - id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FO::OFFLINEA2BCONSORTIUMFOLLOW::ALL::ARCH::70D7A3DC-5082-4088-834B-FCCB4A59CDD2
                rev: 1-d9b4279aaf51d560b9a6ebcfc082e22e
              - rev: 1-047b5d20389629334e0cc56a0c8a1d1c
                id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FO::OFFLINEA2BCONSORTIUMFOLLOW::ALL::ACTI::AE88CA52-6DE7-41E4-8A4B-5B657835ED26
              - id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FO::OFFLINEA2BCONSORTIUMFOLLOW::ALL::WRLS
                rev: 1-cd135c3cf52de350a4c439ce83b94b19
              - id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FO::OFFLINEA2BCONSORTIUMFOLLOW::ALL::WRLS::1::LARC::A24F2442-BC0B-48F5-A1A5-688DD7D95B43
                rev: 1-b11001394976a5e8e8cb3c2c7e048a17
              - rev: 1-f38212a9115b13e2e737771c0abbc68c
                id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FO::OFFLINEA2BCONSORTIUMFOLLOW::ALL::WRLS-offlinea2b9582_ALL
              - id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FO::OFFLINEA2B9582::ALL::WRLS-offlinea2bconsortiumfollow_ALL
                rev: 1-c3a8c9c977f512b0a6e25b9d43d47af5
              - rev: 4-6222e2504624461428bc5f778aff9be6
                id: IC5CA72000-F46E-46C6-BB75-C680B4CFFD2E::FGUI::ICDD1393D9-252B-40CF-ADF7-04EBF542C220
  /api/brokerNote/{rootID}/save:
    post:
      summary: Add text to the internal brokers'' note belonging to the risk, creating it if currently blank - Broker Only
      parameters:
      - in: path
        name: rootID
        schema:
          type: string
        required: true
        description: The unique root ID of the risk
        example: IC213DA609-D6B5-4A05-86B8-3FD91E861F57
      tags:
      - Internal Broker Note
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                elements:
                  type: array
                  items:
                    type: object
                    properties:
                      text:
                        type: string
                        description: The text of the note to add
                        example: Note to self
                      index:
                        type: integer
                        description: the line of the text
                        example: 0
      responses:
        '200':
          description: A confirmation of the saved data
          content:
            application/json:
              schema:
                type: object
                properties:
                  msg:
                    type: string
                    description: Message to confirm broker note has been saved
                    example: Successfully updated broker note.
  /api/comments:
    get:
      summary: Gets all comments. Deprecated in favour of /risks/$rootID/related/RWComment
      description: <div>This endpoint returns <b>all</b> comments a user can see.</div> <p/> <div>This will become impractical as volumes grow over time, so the endpoint is deprecated.</div> <p/> <div>We recommend loading the comments on an individual risk by using the 'related' endpoint with 'RWComment' as the document type /risks/$rootID/related/RWComment</div>
      tags:
      - Comments
      responses:
        '200':
          description: array of RWComment documents
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RWComment'
    post:
      summary: Add a comment to a discussion between teams on a risk
      description: <div>A discussion can be started by either Broker or Underwriter by creating a new comment. The discussion is between the broker and carrier teams on the risk, with the individual making the comment identified.</div>
      tags:
      - Comments
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  description: the text of the message
                  example: Is there a recent survey?
                riskID:
                  type: string
                  description: 'The root ID of the risk, st

# --- truncated at 32 KB (865 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/whitespace-london/refs/heads/main/openapi/whitespace-london-platform-openapi.yml