1Fort application (v2): applications API

**Access:** requires a JWT access token.

OpenAPI Specification

1fort-application-v2-applications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: '1Fort API Documentation application (v2): applications API'
  description: '# 1Fort API


    REST API for the 1Fort insurance platform. This document is the authoritative

    map of the API surface; endpoints are grouped in the sidebar by **app** and

    **version**, and large apps are split into per-resource sub-groups.


    ## Authentication


    Almost every endpoint requires a **JWT access token**. Send it in the

    `Authorization` header as either `Bearer <token>` or `JWT <token>`. Tokens may

    also be presented as an HTTP-only cookie. Endpoints documented with no security

    requirement are intentionally public (for example sign-in, OTP and storefront

    endpoints).


    ## Multi-tenancy


    Resources are scoped to a tenant. Nested routes carry the owning resource id in

    the path (for example `/v2/broker/{business_pk}/applications`); a token is only

    authorised for the businesses its user may access. Object-level permissions are

    enforced per endpoint.


    ## Versioning


    `v2` endpoints live under `/apis/v2/...` and are the current surface. `v1`

    endpoints remain documented for compatibility. Endpoints marked **deprecated**

    are scheduled for removal; prefer the documented replacement.

    '
  termsOfService: https://www.1fort.com/
  license:
    name: Privately owned
  version: v1
servers:
- url: https://api.1fort.com/apis/
security:
- Bearer: []
tags:
- name: 'application (v2): applications'
  x-displayName: Applications
  description: '**Access:** requires a JWT access token.'
paths:
  /v2/applications:
    parameters: []
    get:
      operationId: v2_applications_list
      description: ''
      parameters:
      - name: search
        in: query
        description: A search term.
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: status
        required: false
        schema:
          type: string
          enum:
          - draft
          - in_progress
          - needs_review
          - submitted
          - archived
      - name: submission_type
        in: query
        description: submission_type
        required: false
        schema:
          type: string
          enum:
          - NEW
          - RENEWAL
          - OTHER
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: uri
                  previous:
                    type:
                    - string
                    - 'null'
                    format: uri
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApplicationV2'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: List Applications
  /v2/applications/{application_pk}/coverages:
    parameters:
    - name: application_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_applications_coverages_list
      description: ''
      parameters:
      - name: status
        in: query
        description: status
        required: false
        schema:
          type: string
          enum:
          - in_progress
          - generating_questions
          - pending_business_info
          - needs_review
          - submitted
          - archived
      - name: application__submission_type
        in: query
        description: application__submission_type
        required: false
        schema:
          type: string
          enum:
          - NEW
          - RENEWAL
          - OTHER
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: uri
                  previous:
                    type:
                    - string
                    - 'null'
                    format: uri
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/CoverageApplicationWithCompositeResponse'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: List Coverages
  /v2/applications/{application_pk}/supplementary-documents:
    parameters:
    - name: application_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_applications_supplementary-documents_list
      description: ''
      parameters:
      - name: search
        in: query
        description: A search term.
        required: false
        schema:
          type: string
      - name: ordering
        in: query
        description: Which field to use when ordering the results.
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: uri
                  previous:
                    type:
                    - string
                    - 'null'
                    format: uri
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/BusinessApplicationSupplementaryDocument'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: List Supplementary documents
    post:
      operationId: v2_applications_supplementary-documents_create
      description: ''
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessApplicationSupplementaryDocument'
        '400':
          description: Invalid input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Create Supplementary document
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessApplicationSupplementaryDocument'
        required: true
  /v2/applications/{application_pk}/supplementary-documents/{id}:
    parameters:
    - name: application_pk
      in: path
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: A UUID string identifying this application supplementary document.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_applications_supplementary-documents_read
      description: ''
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessApplicationSupplementaryDocument'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Retrieve Supplementary document
    delete:
      operationId: v2_applications_supplementary-documents_delete
      description: ''
      responses:
        '204':
          description: ''
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Delete Supplementary document
  /v2/applications/{application_pk}/supplementary-documents/{id}/download:
    parameters:
    - name: application_pk
      in: path
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: A UUID string identifying this application supplementary document.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_applications_supplementary-documents_download
      description: ''
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessApplicationSupplementaryDocument'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Download
  /v2/applications/{id}:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_applications_read
      description: ''
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Retrieve Application
  /v2/applications/{id}/collect-signature:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    post:
      operationId: v2_applications_collect_signature_for_application
      description: 'Collects and saves the signature for every coverage application under

        this application, skipping ones that are already signed.


        One request replaces the old per-coverage collect-signatures fanout;

        the response carries one result per coverage application. Returns 201

        if any signature was created, 200 if every coverage was already

        signed, 400 if all attempts failed.'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '400':
          description: Invalid input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Collect signature for application
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationV2'
        required: true
  /v2/applications/{id}/download-1fort-application-pdf:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_applications_download_1fort_application_pdf
      summary: Downloads the 1Fort application PDF.
      description: 'Priority order:

        1. Check for existing herald files with type="1fort_application"

        2. Check for existing CoverageApplicationPDF records

        3. Generate PDF in memory and return directly'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
  /v2/applications/{id}/download-insurance-proposal-pdf:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_applications_download_insurance_proposal_pdf
      summary: Downloads the insurance proposal PDF (quote summary file from herald).
      description: Looks for herald files with type="quote_summary" and returns the first available one.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
  /v2/applications/{id}/get-signature:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_applications_get_signature_for_application
      description: 'Retrieves the signature for the primary/first coverage application

        associated with this application, if it exists.'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Get signature for application
  /v2/applications/{id}/pre-filled-forms:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    post:
      operationId: v2_applications_add_prefilled_forms
      description: ''
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '400':
          description: Invalid input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Add prefilled forms
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationV2'
        required: true
  /v2/applications/{id}/pre-filled-forms/{sessions_pk}:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    - name: sessions_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_applications_get_prefilled_forms
      description: ''
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Get prefilled forms
  /v2/applications/{id}/quote-data:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_applications_get_quote_data
      description: 'Get quote data for a specific application.

        This endpoint returns the same quote data that brokers see,

        but filtered to only include quotes for this application.'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Get quote data
  /v2/applications/{id}/submit:
    parameters:
    - name: id
      in: path
      description: A UUID string identifying this Application.
      required: true
      schema:
        type: string
        format: uuid
    post:
      operationId: v2_applications_submit
      summary: Submit all eligible coverage applications of this application.
      description: 'Manual-strategy underwriter emails are grouped per market, so a market

        selected on multiple coverage applications receives one combined email.'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '400':
          description: Invalid input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '404':
          description: Object does not exist or caller has insufficient permissions to access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationV2'
        required: true
  /v2/broker/{business_pk}/applications:
    parameters:
    - name: business_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_broker_applications_list
      description: ''
      parameters:
      - name: status
        in: query
        description: status
        required: false
        schema:
          type: string
          enum:
          - draft
          - in_progress
          - needs_review
          - submitted
          - archived
      - name: submission_type
        in: query
        description: submission_type
        required: false
        schema:
          type: string
          enum:
          - NEW
          - RENEWAL
          - OTHER
      - name: policy_type
        in: query
        description: policy_type
        required: false
        schema:
          type: string
          enum:
          - ADMITTED
          - SURPLUS_LINES
          - ADMITTED_AND_SURPLUS_LINES
      - name: quote_version
        in: query
        description: quote_version
        required: false
        schema:
          type: string
          enum:
          - MANUAL
          - API
      - name: coverage_layer
        in: query
        description: coverage_layer
        required: false
        schema:
          type: string
          enum:
          - PRIMARY
          - EXCESS
      - name: email_type
        in: query
        description: email_type
        required: false
        schema:
          type: string
          enum:
          - default
          - conversation
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: uri
                  previous:
                    type:
                    - string
                    - 'null'
                    format: uri
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApplicationV2'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: List Applications
    post:
      operationId: v2_broker_applications_create
      description: ''
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV2'
        '400':
          description: Invalid input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: Create Application
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationV2'
        required: true
  /v2/broker/{business_pk}/applications/{application_pk}/coverages:
    parameters:
    - name: business_pk
      in: path
      required: true
      schema:
        type: string
    - name: application_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_broker_applications_coverages_list
      description: ''
      parameters:
      - name: status
        in: query
        description: status
        required: false
        schema:
          type: string
          enum:
          - in_progress
          - generating_questions
          - pending_business_info
          - needs_review
          - submitted
          - archived
      - name: application__submission_type
        in: query
        description: application__submission_type
        required: false
        schema:
          type: string
          enum:
          - NEW
          - RENEWAL
          - OTHER
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: uri
                  previous:
                    type:
                    - string
                    - 'null'
                    format: uri
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/BrokerCoverageApplicationWithCompositeResponse'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: List Coverages
  /v2/broker/{business_pk}/applications/{application_pk}/indications:
    parameters:
    - name: business_pk
      in: path
      required: true
      schema:
        type: string
    - name: application_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_broker_applications_indications_list
      description: ''
      responses:
        '200':
          description: ''
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - 'application (v2): applications'
      summary: List Indications
    post:
      operationId: v2_broker_applications_indications_create
      description: ''
      responses:
        '201':
          description: ''
        '403':
          description: Authentication credent

# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/1fort/refs/heads/main/openapi/1fort-application-v2-applications-api-openapi.yml