1Fort storefront (v2) API

Insured-facing storefront endpoints. Access is scoped by storefront identity (public links, API key, or storefront permission) rather than a user JWT. **Access:** mixed; some endpoints are public, others require an API key (per endpoint).

OpenAPI Specification

1fort-storefront-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 1Fort API Documentation storefront (v2) storefront (v2) 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: storefront (v2)
  x-displayName: Storefront (v2)
  description: 'Insured-facing storefront endpoints. Access is scoped by storefront identity (public links, API key, or storefront permission) rather than a user JWT.


    **Access:** mixed; some endpoints are public, others require an API key (per endpoint).'
paths:
  /v2/storefront-agencies/{agency_slug}/brokers/{slug}:
    parameters:
    - name: agency_slug
      in: path
      required: true
      schema:
        type: string
    - name: slug
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_storefront-agencies_brokers_read
      summary: Public broker user card resolved by agency identifier + broker user ``slug``.
      description: '``AllowAny`` (API key optional). Response includes contact fields (``email``,

        ``phone_number``) for intentional “contact your agent” storefront UI; the

        resource is not listable without both agency context and user slug.


        Scoped to non-test agencies. Throttled like other public storefront metadata

        (``StoreFrontAgencyPublicThrottle``).'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreFrontBrokerUserCard'
        '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:
      - storefront (v2)
      security: []
  /v2/storefront-agencies/{slug}:
    parameters:
    - name: slug
      in: path
      description: URL-safe identifier derived from domain_name (second-level label). Populated automatically when empty.
      required: true
      schema:
        type: string
        format: slug
        pattern: ^[-a-zA-Z0-9_]+$
    get:
      operationId: v2_storefront-agencies_read
      description: Resolve a broker agency by URL slug (used with agency subdomains on the storefront host).
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreFrontAgencyPublic'
        '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:
      - storefront (v2)
      security: []
      summary: Retrieve Storefront agency
  /v2/storefront-applications:
    parameters: []
    post:
      operationId: v2_storefront-applications_create
      description: Create a new StoreFront.
      responses:
        '201':
          description: ''
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Create Storefront application
  /v2/storefront-applications/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_storefront-applications_read
      description: Retrieve a StoreFront.
      responses:
        '200':
          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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Retrieve Storefront application
    put:
      operationId: v2_storefront-applications_update
      description: ''
      responses:
        '200':
          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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Update Storefront application
    patch:
      operationId: v2_storefront-applications_partial_update
      description: Update a StoreFront Application.
      responses:
        '200':
          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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Update Storefront application
  /v2/storefront-applications/{id}/parameters:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    patch:
      operationId: v2_storefront-applications_parameters
      description: Update the parameters of a StoreFront Application.
      responses:
        '200':
          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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Parameters
  /v2/storefront-applications/{id}/pre-filled-forms:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    post:
      operationId: v2_storefront-applications_add_prefilled_forms
      description: ''
      responses:
        '201':
          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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Add prefilled forms
  /v2/storefront-applications/{id}/pre-filled-forms/{sessions_pk}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    - name: sessions_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_storefront-applications_get_prefilled_forms
      description: ''
      responses:
        '200':
          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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Get prefilled forms
  /v2/storefront-applications/{id}/submit:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    post:
      operationId: v2_storefront-applications_submit
      summary: Submit a StoreFront Application.
      description: 'The service fans out over every CoverageApplication under the parent

        Application; successful covapps are marked SUBMITTED, failed covapps

        stay DRAFT and are returned under `failed_coverage_applications` so

        the client can surface a retry affordance.'
      responses:
        '201':
          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:
      - storefront (v2)
      security:
      - ApiKey: []
  /v2/storefront-applications/{storefront_application_pk}/chat:
    parameters:
    - name: storefront_application_pk
      in: path
      required: true
      schema:
        type: string
    post:
      operationId: v2_storefront-applications_chat_create
      description: POST /v2/storefront-applications/{id}/chat - send message, get response.
      responses:
        '201':
          description: ''
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Create Chat
  /v2/storefront-applications/{storefront_application_pk}/sanity-check-ai:
    parameters:
    - name: storefront_application_pk
      in: path
      required: true
      schema:
        type: string
    post:
      operationId: v2_storefront-applications_sanity-check-ai_create
      summary: Create a new sanity check request for the storefront application.
      description: Returns existing sanity check if one already exists with matching context hash.
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SanityCheckRequest'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SanityCheckRequest'
        required: true
  /v2/storefront-applications/{storefront_application_pk}/sanity-check-ai/match:
    parameters:
    - name: storefront_application_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_storefront-applications_sanity-check-ai_match
      summary: GET /storefront-applications/{storefront_app_id}/sanity-check-ai/match
      description: 'Returns SanityCheckAI rows for the storefront''s coverage application

        only if their stored context_hash equals the recomputed context hash.'
      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/SanityCheckRequest'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - storefront (v2)
      security:
      - ApiKey: []
  /v2/storefront-applications/{storefront_application_pk}/sanity-check-ai/{id}:
    parameters:
    - name: storefront_application_pk
      in: path
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: A UUID string identifying this sanity check ai request.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_storefront-applications_sanity-check-ai_read
      summary: ViewSet for AI sanity check on storefront applications.
      description: 'Uses API key authentication (StoreFrontPermission) instead of broker auth.

        Resolves coverage_application from the storefront_application_pk URL parameter.'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SanityCheckRequest'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
    put:
      operationId: v2_storefront-applications_sanity-check-ai_update
      summary: ViewSet for AI sanity check on storefront applications.
      description: 'Uses API key authentication (StoreFrontPermission) instead of broker auth.

        Resolves coverage_application from the storefront_application_pk URL parameter.'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SanityCheckRequest'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SanityCheckRequest'
        required: true
    patch:
      operationId: v2_storefront-applications_sanity-check-ai_partial_update
      description: Update hidden_fields on the sanity check request.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SanityCheckUpdate'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Update Sanity check AI
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SanityCheckUpdate'
        required: true
  /v2/storefront-applications/{storefront_application_pk}/supplementary-documents:
    parameters:
    - name: storefront_application_pk
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v2_storefront-applications_supplementary-documents_list
      description: ViewSet for managing supplementary documents for storefront applications.
      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/StoreFrontApplicationSupplementaryDocument'
        '403':
          description: Authentication credentials were invalid, absent or insufficient.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '500':
          description: Internal server error.
      tags:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: List Supplementary documents
    post:
      operationId: v2_storefront-applications_supplementary-documents_create
      description: ViewSet for managing supplementary documents for storefront applications.
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreFrontApplicationSupplementaryDocument'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Create Supplementary document
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreFrontApplicationSupplementaryDocument'
        required: true
  /v2/storefront-applications/{storefront_application_pk}/supplementary-documents/{id}:
    parameters:
    - name: storefront_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_storefront-applications_supplementary-documents_read
      description: ViewSet for managing supplementary documents for storefront applications.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreFrontApplicationSupplementaryDocument'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Retrieve Supplementary document
    delete:
      operationId: v2_storefront-applications_supplementary-documents_delete
      description: ViewSet for managing supplementary documents for storefront applications.
      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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Delete Supplementary document
  /v2/storefront-applications/{storefront_application_pk}/supplementary-documents/{id}/download:
    parameters:
    - name: storefront_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_storefront-applications_supplementary-documents_download
      description: ViewSet for managing supplementary documents for storefront applications.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreFrontApplicationSupplementaryDocument'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
      summary: Download
  /v2/storefront-applications/{storefront_application_pk}/supplementary-questions:
    parameters:
    - name: storefront_application_pk
      in: path
      required: true
      schema:
        type: string
    post:
      operationId: v2_storefront-applications_supplementary-questions_create
      summary: Trigger supplementary questions generation.
      description: 'Returns an existing non-failed request if one already exists with the same

        context hash, otherwise creates a new one and starts processing.'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplementaryQuestionsRequest'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplementaryQuestionsRequest'
        required: true
  /v2/storefront-applications/{storefront_application_pk}/supplementary-questions/{id}:
    parameters:
    - name: storefront_application_pk
      in: path
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: A UUID string identifying this supplementary questions request.
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: v2_storefront-applications_supplementary-questions_read
      summary: ViewSet for generating supplementary questions for storefront applications via Claude AI.
      description: 'Uses StoreFrontPermission (API key auth). Resolves coverage_application from

        the storefront_application_pk URL parameter.'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplementaryQuestionsRequest'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
    put:
      operationId: v2_storefront-applications_supplementary-questions_update
      summary: ViewSet for generating supplementary questions for storefront applications via Claude AI.
      description: 'Uses StoreFrontPermission (API key auth). Resolves coverage_application from

        the storefront_application_pk URL parameter.'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplementaryQuestionsRequest'
        '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:
      - storefront (v2)
      security:
      - ApiKey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplementaryQuestionsRequest'
        required: true
    patch:
      operationId: v2_storefront-applications_supplementary-questions_pa

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