PPL

PPL Programme API

Enables the creation and management of Programme structures within a Placement. This also includes the capability to add existing Contracts into a programme.

Operations 4

POST /placements/{placementId}/programmes #
GET /placements/{placementId}/programmes/{programmeId} #
PUT /placements/{placementId}/programmes/{programmeId} #
DELETE /placements/{placementId}/programmes/{programmeId} #

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-programme-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-programme-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: placement Programme API
  description: "This API collection provides the capability to manage aspects of the Placement structure. \nThis includes that overall management of Placements, Programmes, Contracts as well as any Sections within a Contract. This also includes the ability to set up carrier/underwriter participants for insurance placement purposes."
  version: '1'
servers:
- url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/placements
  description: Joint Integration testing (JIT2) environment
tags:
- name: programme
  description: Enables the creation and management of Programme structures within a Placement. This also includes the capability to add existing Contracts into a programme.
paths:
  /placements/{placementId}/programmes:
    post:
      tags:
      - programme
      description: Creates a Programme record under the Placement structure. This enables the grouping of Contract records that address a common insurance purpose. Contracts can be added at the time of creation.
      operationId: Programme_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: placementId
        in: path
        description: A system-generated unique identifier for a Placement, 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: A collection of Contracts for a common purpose. Programme structure for creation and updates.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/programme_post'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/programme_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: programme
  /placements/{placementId}/programmes/{programmeId}:
    get:
      tags:
      - programme
      description: Returns the Programme structure for a specified Programme record. This will return information about the Programme and  summarised information about Contract records within the Programme structure.
      operationId: Programme_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: placementId
        in: path
        description: A system-generated unique identifier for a Placement, 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: programmeId
        in: path
        description: A system-generated unique identifier for a Programme, 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/programme_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:
      - programme
      description: Updates a Programme record. Contracts can be added into the Programme structure.
      operationId: Programme_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: placementId
        in: path
        description: A system-generated unique identifier for a Placement, 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: programmeId
        in: path
        description: A system-generated unique identifier for a Programme, 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: A collection of Contracts for a common purpose. Programme structure for creation and updates.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/programme_put'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/programme_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: programme
    delete:
      tags:
      - programme
      description: Deletes a Programme record, where the record is in a state that enables its deletion. Any Contract records that exist in this Programme will be moved into the default Programme.
      operationId: Programme_Delete_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: placementId
        in: path
        description: A system-generated unique identifier for a Placement, 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: programmeId
        in: path
        description: A system-generated unique identifier for a Programme, 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: {}
        '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'
components:
  schemas:
    metadata_user:
      required:
      - user_email
      type: object
      properties:
        user_email:
          type: string
          description: The email address of the User.
          default: ''
        first_name:
          type: string
          description: The first name of the User.
          default: ''
        last_name:
          type: string
          description: The last name of the User.
          default: ''
      additionalProperties: false
      description: The User information of the Metadata User.
    metadata:
      required:
      - created_by
      - created_channel
      - created_date
      - modified_by
      - modified_channel
      - modified_date
      type: object
      properties:
        created_date:
          type: string
          description: The date and timestamp when the entity was created.
          format: date-time
          example: '2014-12-31T23:59:59.938Z'
        created_channel:
          type: string
          description: The mechanism used to create the entity, e.g. OutSystems, API
          default: ''
        created_by:
          $ref: '#/components/schemas/metadata_user'
        modified_date:
          type: string
          description: The date and timestamp when the entity was modified.
          format: date-time
          example: '2014-12-31T23:59:59.938Z'
        modified_channel:
          type: string
          description: The mechanism used to modify the entity, e.g. OutSystems, API
          default: ''
        modified_by:
          $ref: '#/components/schemas/metadata_user'
      additionalProperties: false
      description: A collection of data items to support the creation and update of record entities.
    programme_contract_getbyid:
      required:
      - contract_id
      - unique_market_reference
      type: object
      properties:
        contract_id:
          type: string
          description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
          default: ''
        unique_market_reference:
          type: string
          description: The reference allocated by the broker to identify the Contract for use within the placement process, as a concatenation of the Broker Code and Broker Contract Reference.
          default: ''
      additionalProperties: false
      description: A collection of insurance Contracts.
    broker_user:
      required:
      - first_name
      - last_name
      - user_email
      type: object
      properties:
        user_email:
          type: string
          description: The email address of the User.
          default: ''
        first_name:
          type: string
          description: The first name of the User.
          default: ''
        last_name:
          type: string
          description: The last name of the User.
          default: ''
      additionalProperties: false
      description: The User information of the responsible Broker User.
    error:
      type: object
      properties:
        message:
          type:
          - string
          - 'null'
          description: The error message.
        argument:
          type:
          - string
          - 'null'
          description: The syntax argument used to validate the field against (if on syntax validation).
        field:
          type:
          - string
          - 'null'
          description: The field where the error occurred (if field specific).
        code:
          type: string
          description: The error code.
    error_document:
      type: object
      description: The error document.
      properties:
        errors:
          type: array
          description: A collection of errors. The list may be empty.
          items:
            $ref: '#/components/schemas/error'
    broker_team_company:
      required:
      - company_name
      - team_id
      - team_name
      type: object
      properties:
        team_id:
          type: string
          description: A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.
          default: ''
        team_name:
          type: string
          description: The name of the Broker Team, as defined by the broker organisation.
          default: ''
        company_name:
          type: string
          description: Name of the Company the User belongs to.
          default: ''
      additionalProperties: false
      description: The team information of the Broker Team responsible for the node.
    programme_post:
      required:
      - description
      - user_email
      type: object
      properties:
        description:
          type: string
          description: A description of the Programme supplied by the Broker.
          default: ''
          pattern: ^.{1,256}$
        user_email:
          type: string
          description: The User information of the Broker User responsible for the Programme. The email address of the User.
          default: ''
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
        add_contracts:
          type: array
          description: A collection of insurance Contracts to be added to the Programme.
          items:
            $ref: '#/components/schemas/programme_contract_postput'
      additionalProperties: false
      description: Programme structure for creates
    programme_getbyid:
      required:
      - broker_team
      - broker_user
      - default
      - description
      - earliest_inception_date
      - metadata
      - placement_id
      - programme_id
      - sequence_number
      - status
      type: object
      properties:
        programme_id:
          type: string
          description: A system-generated unique identifier for a Programme, with a format and structure defined by the technology used.
          default: ''
        placement_id:
          type: string
          description: A system-generated unique identifier for a Placement, with a format and structure defined by the technology used.
          default: ''
        default:
          type: boolean
          description: Identifies whether this is a default Programme. A default Programme is a programme data structure where Contracts that are not within a business-related Programme are maintained.
          example: false
        sequence_number:
          type: integer
          description: The sequence number in which differing Programmes are ordered.
          format: int32
          example: 0
        broker_team:
          $ref: '#/components/schemas/broker_team_company'
        broker_user:
          $ref: '#/components/schemas/broker_user'
        description:
          type: string
          description: A description of the Placement supplied by the Broker.
          default: ''
        earliest_inception_date:
          type: string
          description: The earliest inception date of all Contracts contained within the Programme structure.
          format: date
          example: '2014-12-31'
        status:
          type: string
          description: The code that represents the Programme status.
          default: ''
        metadata:
          $ref: '#/components/schemas/metadata'
        contracts:
          type: array
          description: A collection of insurance Contracts.
          items:
            $ref: '#/components/schemas/programme_contract_getbyid'
      additionalProperties: false
      description: A collection of Contracts for a common purpose.
    programme_put:
      required:
      - description
      - user_email
      type: object
      properties:
        description:
          type: string
          description: A description of the Programme supplied by the Broker.
          default: ''
          pattern: ^.{1,256}$
        user_email:
          type: string
          description: The User information of the Broker User responsible for the Programme. The email address of the User.
          default: ''
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
        add_contracts:
          type: array
          description: A collection of insurance Contracts to be added to the Programme.
          items:
            $ref: '#/components/schemas/programme_contract_postput'
      additionalProperties: false
      description: Programme structure for updates
    programme_contract_postput:
      required:
      - contract_id
      type: object
      properties:
        contract_id:
          type: string
          description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
          default: ''
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      additionalProperties: false
      description: ''