PPL

PPL Negotiation API

Enables the creation and management of the flow of negotiations from a Broker to an Underwriter. Negotiations shown will be those which (1) have been formally communicated to the Underwriter; and (2) 'saved' Negotiation records (i.e. that are waiting to be sent to the Underwriter).

Operations 10

GET /contracts/{contractId}/negotiations #
POST /contracts/{contractId}/negotiations #
GET /contracts/{contractId}/negotiations/{negotiationId} #
PUT /contracts/{contractId}/negotiations/{negotiationId} #
POST /contracts/{contractId}/negotiations/{negotiationId}/send #
GET /submissions/{submissionId}/negotiations #
POST /submissions/{submissionId}/negotiations #
GET /submissions/{submissionId}/negotiations/{negotiationId} #
PUT /submissions/{submissionId}/negotiations/{negotiationId} #
PUT /submissions/{submissionId}/negotiations/{negotiationId}/reaassign #

Documentation

📖
Documentation
https://developer.pplnextgen.com/placements
📖
APIReference
https://developer.pplnextgen.com/Placements/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Placements/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Placements/Information-Model
📖
Documentation
https://developer.pplnextgen.com/Placements/Business-Process-Model
📖
Documentation
https://developer.pplnextgen.com/submissions
📖
APIReference
https://developer.pplnextgen.com/Submissions/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Submissions/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Submissions/Information-Model
📖
Documentation
https://developer.pplnextgen.com/organisations
📖
APIReference
https://developer.pplnextgen.com/Organisations/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Organisations/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Organisations/Information-Model
📖
Documentation
https://developer.pplnextgen.com/documents
📖
APIReference
https://developer.pplnextgen.com/Documents/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Documents/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Documents/Information-Model
📖
Documentation
https://developer.pplnextgen.com/events
📖
APIReference
https://developer.pplnextgen.com/Events/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Events/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Events/Information-Model

Specifications

Other Resources

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/ppl-london-market-negotiation-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

ppl-london-market-negotiation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ppl London Market Negotiation API
  version: '1'
  description: 'Operations tagged negotiation across 2 of this provider''s published API definitions: ppl-london-market-placements.json, ppl-london-market-submissions.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/placements
  description: Joint Integration testing (JIT2) environment
- url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/submissions
  description: Joint Integration testing (JIT2) environment
tags:
- name: negotiation
  description: Enables the creation and management of the flow of negotiations from a Broker to an Underwriter. Negotiations shown will be those which (1) have been formally communicated to the Underwriter; and (2) 'saved' Negotiation records (i.e. that are waiting to be sent to the Underwriter).
paths:
  /contracts/{contractId}/negotiations:
    get:
      tags:
      - negotiation
      description: Returns a list of all Negotiation records based upon various query parameters. Pagination functionality is supported on this operation.
      operationId: Negotiation_GetAll_v1
      parameters:
      - name: X-Auth-Impersonated-User
        in: header
        description: The email address of the Requesting User or the Impersonated User.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
      - name: X-Auth-Team
        in: header
        description: A list of system-generated unique identifiers for each Broker Team, with a format and structure defined by the technology used.
        required: true
        schema:
          pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
          type: array
          items:
            type: string
      - name: contractId
        in: path
        description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: showLatest
        in: query
        description: Identifies whether the query results will return only the latest Negotiation record (true) or all Negotiation records (false) for each Participation. Search using single exact match method, e.g. showLatest=true/false.
        schema:
          type: string
          pattern: ^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$
      - name: createdDate
        in: query
        description: 'The date timestamp when the entity was created.

          Search using range method, e.g. createdDate=range(date1,date2).'
        schema:
          type: string
          pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
      - name: modifiedDate
        in: query
        description: 'The date timestamp when the entity was modified.

          Search using range method, e.g. modifiedDate=range(date1,date2).'
        schema:
          type: string
          pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
      - name: submissionId
        in: query
        description: 'A system-generated unique identifier for a Submission, with a format and structure defined by the technology used.

          Search using multiple exact match method, e.g. submissionId=id1,id2,id3.'
        schema:
          type: string
          pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
      - name: participationId
        in: query
        description: 'A system-generated unique identifier for a Participation, with a format and structure defined by the technology used.

          Search using multiple exact match method, e.g. participationId=id1,id2,id3.'
        schema:
          type: string
          pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
      - name: brokerTeamName
        in: query
        description: 'The name of the Broker Team, as defined by the broker organisation.

          Search using contains method, e.g. brokerTeamName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,256}\)$
      - name: brokerEmail
        in: query
        description: 'The User email of the Broker User responsible for the Contract.

          Search using multiple exact match method, e.g. brokerEmail=email1,email2,email3.'
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
      - name: brokerFirstName
        in: query
        description: 'The First Name of the Broker User responsible for the Contract.

          Search using contains method, e.g. brokerFirstName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: brokerLastName
        in: query
        description: 'The Last Name of the Broker User responsible for the Contract.

          Search using contains method, e.g. brokerLastName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: underwriterTeamName
        in: query
        description: 'The name of the Underwriter Team, as defined by the Carrier organisation.

          Search using contains method, e.g. underwriterTeamName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,256}\)$
      - name: underwriterEmail
        in: query
        description: "The email of the Underwriter. \nSearch using multiple exact match method, e.g. underwriterEmail=email1,email2,email3."
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
      - name: underwriterFirstName
        in: query
        description: 'The first name by which the Underwriter is known for.

          Search using contains method, e.g. underwriterFirstName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: underwriterLastName
        in: query
        description: 'The last name by which the Underwriter is known for.

          Search using contains method, e.g. underwriterLastName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: sentByEmail
        in: query
        description: 'The User email of the Broker or Underwriter User that sent this Negotiation.

          Search using multiple exact match method, e.g. sentByEmail=email1,email2,email3.'
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
      - name: sentByFirstName
        in: query
        description: 'The First Name of the Broker or Underwriter User that sent this Negotiation.

          Search using contains method, e.g. sentByFirstName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: sentByLastName
        in: query
        description: 'The Last Name of the Broker or Underwriter User that sent this Negotiation.

          Search using contains method, e.g. sentByLastName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: type
        in: query
        description: 'The type of the Negotiation.

          Search using multiple exact match method, e.g. type=code1,code2,code3.'
        schema:
          type: string
          pattern: ^(.*)(,.*)*$
      - name: subType
        in: query
        description: 'The subtype of the Negotiation.

          Search using multiple exact match method, e.g. subType=code1,code2,code3.'
        schema:
          type: string
          pattern: ^(.*)(,.*)*$
      - name: status
        in: query
        description: 'The code that represents the Negotiation status, based upon the Type of Negotiation.

          Search using multiple exact match method, e.g. status=code1,code2,code3.'
        schema:
          type: string
          pattern: ^(.*)(,.*)*$
      - name: isLeader
        in: query
        description: 'Parameter used to return Negotiations records that have a leader role (true) or not (false).

          Search using single exact match method, e.g. isLeader=true/false.'
        schema:
          type: string
          pattern: ^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$
      - name: role
        in: query
        description: 'The code that represents the role or roles that the Underwriter plays through their participation.

          Search using multiple exact match method, e.g. role=code1,code2,code3.'
        schema:
          type: string
          pattern: ^(.*)(,.*)*$
      - name: hasLineConditions
        in: query
        description: 'Parameter used to return Negotiation records that have at least one Line Condition (true) or no Line Conditions (false) present in any Stamp within a Participation, irrespective of the Status of the Line Condition.

          Search using single exact match method, e.g. hasLineConditions=true/false.'
        schema:
          type: string
          pattern: ^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$
      - name: hasSubjectivities
        in: query
        description: 'Parameter used to return Negotiation records that have at least one Subjectivity (true) or no Subjectivities (false) present.

          Search using single exact match method, e.g. hasSubjectivities=true/false.'
        schema:
          type: string
          pattern: ^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$
      - name: sort
        in: query
        description: 'Sorting field and order (unique field only).

          Use + before the field name for ascending order, use - for descending order.'
        schema:
          type: string
          pattern: ^[+-]?\w+$
      - name: pageNumber
        in: query
        description: Number of the page to be retrieved.
        schema:
          type: integer
          format: int32
          minimum: 1
        example: 1
      - name: pageSize
        in: query
        description: Size of the page to be retrieved.
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 200
        example: 200
      - name: sectionId
        in: query
        description: 'A system-generated unique identifier for a Section, with a format and structure defined by the technology used.

          Search using multiple exact match method, e.g. sectionId=id1,id2,id3.'
        schema:
          type: string
          pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response_placement_negotiations_getall'
        '400':
          description: Mandatory header parameter is missing from the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '401':
          description: Authentication error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '404':
          description: Invalid team or user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '414':
          description: The maximum field length of the URI provided for the request has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
    post:
      tags:
      - negotiation
      description: Creates a single Negotiation record in response to an Underwriter User's response. Broker Users will be able to accept or reject, confirm or negotiate on various attributes of their involvement, i.e.  acceptance of contractual roles, carrier stamps, line conditions and subjectivities.
      operationId: Negotiation_Post_v1
      parameters:
      - name: X-Auth-Impersonated-User
        in: header
        description: The email address of the Requesting User or the Impersonated User.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
      - name: X-Auth-Team
        in: header
        description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: contractId
        in: path
        description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      requestBody:
        description: Negotiation structure for creation.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/placement_negotiation_post'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/placement_negotiation_getbyid'
        '400':
          description: Mandatory header parameter is missing from the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '401':
          description: Authentication error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '404':
          description: Invalid team or user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '414':
          description: The maximum field length of the URI provided for the request has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
      x-codegen-request-body-name: negotiation
    servers:
    - url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/placements
      description: Joint Integration testing (JIT2) environment
  /contracts/{contractId}/negotiations/{negotiationId}:
    get:
      tags:
      - negotiation
      description: Returns a single Negotiation record. This record will contain attributes pertaining to the single negotiation position between a Broker User and an Underwriter User, based upon its negotiation status within the insurance placement process.
      operationId: Negotiation_GetById_v1
      parameters:
      - name: X-Auth-Impersonated-User
        in: header
        description: The email address of the Requesting User or the Impersonated User.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
      - name: X-Auth-Team
        in: header
        description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: contractId
        in: path
        description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: negotiationId
        in: path
        description: A system-generated unique identifier for a Negotiation, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/placement_negotiation_getbyid'
        '400':
          description: Mandatory header parameter is missing from the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '401':
          description: Authentication error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '404':
          description: Invalid team or user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '414':
          description: The maximum field length of the URI provided for the request has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
    put:
      tags:
      - negotiation
      description: Updates a Negotiation record, where the record is in a state that enables its update. For example, where Negotiations are in a saved and unsent state.
      operationId: Negotiation_Put_v1
      parameters:
      - name: X-Auth-Impersonated-User
        in: header
        description: The email address of the Requesting User or the Impersonated User.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
      - name: X-Auth-Team
        in: header
        description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: X-Last-Modified
        in: header
        description: The date timestamp to be used to validate an update operation.
        required: true
        schema:
          type: string
          format: date-time
        example: '2014-12-31T23:59:59.938Z'
      - name: contractId
        in: path
        description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: negotiationId
        in: path
        description: A system-generated unique identifier for a Section, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      requestBody:
        description: Negotiation structure for updates.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/placement_negotiation_put'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/placement_negotiation_getbyid'
        '400':
          description: Mandatory header parameter is missing from the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '401':
          description: Authentication error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '404':
          description: Invalid team or user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '414':
          description: The maximum field length of the URI provided for the request has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
      x-codegen-request-body-name: negotiation
    servers:
    - url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/placements
      description: Joint Integration testing (JIT2) environment
  /contracts/{contractId}/negotiations/{negotiationId}/send:
    post:
      tags:
      - negotiation
      description: Initiates the operation to send the latest negotiation response back to an Underwriter. The outcome of this will either (1) agree to the change of terms; (2) negotiate the Underwriter's latest offer; or (3) withdraw the offer.
      operationId: Negotiation_Send_v1
      parameters:
      - name: X-Auth-Impersonated-User
        in: header
        description: The email address of the Requesting User or the Impersonated User.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
      - name: X-Auth-Team
        in: header
        description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: X-Last-Modified
        in: header
        description: The date timestamp to be used to validate an update operation.
        required: true
        schema:
          type: string
          format: date-time
        example: '2014-12-31T23:59:59.938Z'
      - name: contractId
        in: path
        description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: negotiationId
        in: path
        description: A system-generated unique identifier for a Section, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      responses:
        '200':
          description: Negotiation output structure for send.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/placement_negotiation_getbyid'
        '400':
          description: Mandatory header parameter is missing from the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '401':
          description: Authentication error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '404':
          description: Invalid team or user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '414':
          description: The maximum field length of the URI provided for the request has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_document'
    servers:
    - url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/placements
      description: Joint Integration testing (JIT2) environment
  /submissions/{submissionId}/negotiations:
    get:
      tags:
      - negotiation
      description: Returns a list of all Negotiation records based upon various query parameters. Pagination functionality is supported on this operation.
      operationId: Negotiation_GetAll_v1
      parameters:
      - name: X-Auth-Impersonated-User
        in: header
        description: The email address of the Requesting User or the Impersonated User.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
      - name: X-Auth-Team
        in: header
        description: A list of system-generated unique identifiers for each Underwriter Team, with a format and structure defined by the technology used.
        required: true
        schema:
          pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
          type: array
          items:
            type: string
      - name: submissionId
        in: path
        description: A system-generated unique identifier for a Submission, with a format and structure defined by the technology used.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: createdDate
        in: query
        description: 'The date timestamp when the entity was created.

          Search using range method, e.g. createdDate=range(date1,date2).'
        schema:
          type: string
          pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
      - name: modifiedDate
        in: query
        description: 'The date timestamp when the entity was modified.

          Search using range method, e.g. modifiedDate=range(date1,date2).'
        schema:
          type: string
          pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
      - name: contractId
        in: query
        description: 'A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.

          Search using multiple exact match method, e.g. contractId=id1,id2,id3.'
        schema:
          type: string
          pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
      - name: participationId
        in: query
        description: 'A system-generated unique identifier for a Participation, with a format and structure defined by the technology used.

          Search using multiple exact match method, e.g. participationId=id1,id2,id3.'
        schema:
          type: string
          pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
      - name: brokerTeamName
        in: query
        description: "The name of the Broker Team, as defined by the broker organisation. \nSearch using contains method, e.g. brokerTeamName=contains(astring)."
        schema:
          type: string
          pattern: ^contains\(.{1,256}\)$
      - name: brokerEmail
        in: query
        description: 'The User email of the Broker User responsible for the Contract.

          Search using multiple exact match method, e.g. brokerEmail=email1,email2,email3.'
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
      - name: brokerFirstName
        in: query
        description: 'The First Name of the Broker User responsible for the Contract.

          Search using contains method, e.g. brokerFirstName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: brokerLastName
        in: query
        description: 'The Last Name of the Broker User responsible for the Contract.

          Search using contains method, e.g. brokerLastName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: underwriterTeamId
        in: query
        description: 'A system-generated unique identifier for an Underwriter Team, with a format and structure defined by the technology used.

          Search using multiple exact match method, e.g. underwriterTeamId=id1,id2,id3.'
        schema:
          type: string
          pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
      - name: underwriterTeamName
        in: query
        description: 'The name of the Underwriter Team, as defined by the Carrier organisation.

          Search using contains method, e.g. underwriterTeamName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,256}\)$
      - name: underwriterEmail
        in: query
        description: 'The User email of the Underwriter User responsible for the Negotiation.

          Search using multiple exact match method, e.g. underwriterEmail=email1,email2,email3.'
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
      - name: underwriterFirstName
        in: query
        description: 'The First Name of the Underwriter User responsible for the Negotiation.

          Search using contains method, e.g. underwriterFirstName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: underwriterLastName
        in: query
        description: 'The Last Name of the Underwriter User responsible for the Negotiation.

          Search using contains method, e.g. underwriterLastName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: sentByEmail
        in: query
        description: 'The User email of the Broker or Underwriter User that sent this Negotiation.

          Search using multiple exact match method, e.g. sentByEmail=email1,email2,email3.'
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
      - name: sentByFirstName
        in: query
        description: 'The First Name of the Broker or Underwriter User that sent this Negotiation.

          Search using contains method, e.g. sentByFirstName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - name: sentByLastName
        in: query
        description: 'The Last Name of the Broker or Underwriter User that sent this Negotiation.

          Search using contains method, e.g. sentByLastName=contains(astring).'
        schema:
          type: st

# --- truncated at 32 KB (171 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ppl-london-market/refs/heads/main/openapi/ppl-london-market-negotiation-api-openapi.yml