> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unyte.africa/llms.txt
> Use this file to discover all available pages before exploring further.

# Request a quote for an insurance policy or product

> Submit a request to generate insurance quotes for a specified product type and customer details. Allows filtering by provider, coverage type, and sorting.



## OpenAPI

````yaml post /api/v1/quotes
openapi: 3.0.3
info:
  title: Superpool API
  version: 2.0.0
  description: >-
    Insurance infrastructure for Financial Institutions, Insurers, and
    Insurtechs
  contact:
    name: Unyte Africa LTD.
    url: https://ng.unyte.africa
    email: tech@unyte.com
servers: []
security: []
paths:
  /api/v1/quotes:
    post:
      tags:
        - Quotes
      summary: Request a quote for an insurance policy or product
      description: >-
        Submit a request to generate insurance quotes for a specified product
        type and customer details. Allows filtering by provider, coverage type,
        and sorting.
      operationId: v1_quotes_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuoteRequestSerializerV2'
            examples:
              GeneralDeviceInsuranceRequestPayloadSample:
                value:
                  customer_metadata:
                    first_name: Alex
                    last_name: Rider
                    email: alex.rider@example.com
                    phone: '+9988776655'
                    residential_address:
                      street: 33 Motorway Avenue
                      city: Lagos
                      state: Lagos State
                      country: NG
                      house_number: '33'
                      postal_code: '100003'
                    date_of_birth: '1995-02-14'
                    customer_gender: M
                    occupation: Delivery Rider
                    identity_card_img: https://example.com/uploads/identity_card.jpg
                    utility_bill_img: https://example.com/uploads/utility_bill.jpg
                    identity_card_number: DL9988776655
                    identity_card_type: driver_license
                    identity_card_expiry_date: '2027-12-31'
                  insurance_details:
                    product_type: Gadget
                    additional_information:
                      gadget_type: Smartphone
                      gadget_value: 1000000
                      gadget_information: {}
                      usage_history: {}
                      insurance_options: Device Policy
                  coverage_preferences: {}
                summary: General Device Insurance Request Payload sample
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/QuoteRequestSerializerV2'
            examples:
              GeneralDeviceInsuranceRequestPayloadSample:
                value:
                  customer_metadata:
                    first_name: Alex
                    last_name: Rider
                    email: alex.rider@example.com
                    phone: '+9988776655'
                    residential_address:
                      street: 33 Motorway Avenue
                      city: Lagos
                      state: Lagos State
                      country: NG
                      house_number: '33'
                      postal_code: '100003'
                    date_of_birth: '1995-02-14'
                    customer_gender: M
                    occupation: Delivery Rider
                    identity_card_img: https://example.com/uploads/identity_card.jpg
                    utility_bill_img: https://example.com/uploads/utility_bill.jpg
                    identity_card_number: DL9988776655
                    identity_card_type: driver_license
                    identity_card_expiry_date: '2027-12-31'
                  insurance_details:
                    product_type: Gadget
                    additional_information:
                      gadget_type: Smartphone
                      gadget_value: 1000000
                      gadget_information: {}
                      usage_history: {}
                      insurance_options: Device Policy
                  coverage_preferences: {}
                summary: General Device Insurance Request Payload sample
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/QuoteRequestSerializerV2'
            examples:
              GeneralDeviceInsuranceRequestPayloadSample:
                value:
                  customer_metadata:
                    first_name: Alex
                    last_name: Rider
                    email: alex.rider@example.com
                    phone: '+9988776655'
                    residential_address:
                      street: 33 Motorway Avenue
                      city: Lagos
                      state: Lagos State
                      country: NG
                      house_number: '33'
                      postal_code: '100003'
                    date_of_birth: '1995-02-14'
                    customer_gender: M
                    occupation: Delivery Rider
                    identity_card_img: https://example.com/uploads/identity_card.jpg
                    utility_bill_img: https://example.com/uploads/utility_bill.jpg
                    identity_card_number: DL9988776655
                    identity_card_type: driver_license
                    identity_card_expiry_date: '2027-12-31'
                  insurance_details:
                    product_type: Gadget
                    additional_information:
                      gadget_type: Smartphone
                      gadget_value: 1000000
                      gadget_information: {}
                      usage_history: {}
                      insurance_options: Device Policy
                  coverage_preferences: {}
                summary: General Device Insurance Request Payload sample
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuoteResponseSerializerV2'
              examples:
                DeviceInsuranceQuotes:
                  value:
                    - count: 5
                      next: http://example.com/api/v1/quotes/?limit=2
                      previous: http://example.com/api/v1/quotes/?offset=1
                      results:
                        - quote_code: Quo_i61y3_55a7f6c7
                          provider: Xample Insurance
                          product: POS Insurance
                          product_type: Gadget
                          base_price: '100000.00'
                          premium: '100000.00'
                          purchase_id: PUR-59d61d6b-1547-4fda-9420-ee8cfd1dace4
                          additional_metadata:
                            device_type: POS
                            device_make: Opay POS
                        - quote_code: Quo_85ahq_c96ced02
                          provider: Heirs Insurance Group
                          product: MegaProtect Device Policy
                          product_type: Gadget
                          base_price: '100000.00'
                          premium: '100000.00'
                          purchase_id: PUR-07d71432-c587-45fc-8693-189eafe4db5e
                          additional_metadata:
                            device_type: Smartphone
                            device_make: Samsung
                            device_model: Galaxy S21
                            device_value: '100000.00'
                  summary: Device Insurance Quotes
          description: >-
            The response contains a list of available quotes from different
            providers.
      security:
        - ClientKeyAuth: []
components:
  schemas:
    QuoteRequestSerializerV2:
      type: object
      description: >-
        Quotes 2.0


        Revised serializer for handling incoming quote requests for different
        product tiers and insurance details.
      properties:
        customer_metadata:
          allOf:
            - $ref: '#/components/schemas/CustomerDetails'
          default: false
        insurance_details:
          allOf:
            - $ref: '#/components/schemas/ProductDetails'
          description: Identifies the type of insurance product being requested
        coverage_preferences:
          allOf:
            - $ref: '#/components/schemas/CoveragePreferences'
          default: {}
      required:
        - insurance_details
    QuoteResponseSerializerV2:
      type: object
      properties:
        quote_code:
          type: string
          readOnly: true
          description: Assigned identifier for managing quote objects
        provider:
          type: string
        product:
          type: string
        product_type:
          type: string
        base_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
          description: >-
            Price estimate of insurance product for default tenure excluding any
            adjustments
        available_tenures:
          type: array
          items:
            $ref: '#/components/schemas/TenureOption'
          description: >-
            Available tenure durations for this insurance product with their
            prices
        additional_metadata:
          nullable: true
          description: Additional information about the quote
      required:
        - available_tenures
        - base_price
        - product
        - product_type
        - provider
        - quote_code
    CustomerDetails:
      type: object
      description: Captures essential personal information about the applicant
      properties:
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        email:
          type: string
          format: email
        phone:
          type: string
          maxLength: 20
        residential_address:
          $ref: '#/components/schemas/ResidentialAddress'
        date_of_birth:
          type: string
          format: date
        customer_gender:
          allOf:
            - $ref: '#/components/schemas/CustomerGenderEnum'
          description: |-
            Biological inclination; Male (M) or Female (F)

            * `M` - Male
            * `F` - Female
        occupation:
          type: string
          maxLength: 80
        identity_card_img:
          type: string
          format: uri
        utility_bill_img:
          type: string
          format: uri
        identity_card_number:
          type: string
          maxLength: 28
        identity_card_type:
          $ref: '#/components/schemas/IdentityCardTypeEnum'
        identity_card_expiry_date:
          type: string
          format: date
      required:
        - email
        - first_name
        - identity_card_img
        - identity_card_number
        - identity_card_type
        - last_name
        - occupation
        - residential_address
        - utility_bill_img
    ProductDetails:
      type: object
      description: >-
        Quotes 2.0


        Identifies the type of insurance being requested and holds
        product-specific details.
      properties:
        product_type:
          allOf:
            - $ref: '#/components/schemas/ProductTypeEnum'
          description: >-
            Specifies the type of insurance (e.g Life, Health, Home, Travel,
            etc)


            * `Life` - Life Insurance

            * `Health` - Health Insurance

            * `Auto` - Auto Insurance

            * `Cargo` - Cargo (Shipment) Insurance

            * `Gadget` - Gadget Insurance

            * `Travel` - Travel Insurance

            * `Home` - Home Insurance

            * `Student_Protection` - Student Protection

            * `Accident` - Accident Insurance

            * `Personal_Accident` - Personal Accident Insurance

            * `CreditLife` - Credit Life Insurance

            * `PetCare` - PetCare Insurance

            * `General` - General Insurance

            * `Other` - Other
        product_name:
          type: string
          description: Name of insurance product e.g Driver Pass Insurance
        additional_information:
          description: >-
            An object that will hold additional details based on the selected
            product type.
      required:
        - product_type
    CoveragePreferences:
      type: object
      description: >-
        Captures the applicant's desired coverage options


        It captures what type of coverage the applicant is interested in (e.g.,
        comprehensive or liability)

        and their preferred deductible amount. Additional coverages can also be
        specified here.
      properties:
        coverage_type:
          type: array
          items:
            $ref: '#/components/schemas/CoverageTypeEnum'
          description: >-
            An array specifying the type of coverage (e.g., Comprehensive,
            Basic, ThirdParty, etc.
        coverage_amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
          description: The amount of coverage the applicant is seeking
        additional_coverages:
          type: array
          items:
            type: string
          description: >-
            Any extra coverages the applicant may want (e.g., Critical Illness
            for Health Insurance)
    TenureOption:
      type: object
      properties:
        duration:
          type: integer
          maximum: 5
          minimum: 1
          description: Duration of the policy (in years)
        premium:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
          readOnly: true
          description: Final price after adjustments for this tenure
      required:
        - duration
        - premium
    ResidentialAddress:
      type: object
      properties:
        city:
          type: string
          maxLength: 100
        address:
          type: string
          maxLength: 100
        state:
          type: string
          maxLength: 100
        country:
          type: string
          maxLength: 100
        street:
          type: string
          maxLength: 100
        house_number:
          type: string
          maxLength: 50
        postal_code:
          type: string
          maxLength: 20
      required:
        - city
        - country
        - postal_code
        - state
        - street
    CustomerGenderEnum:
      enum:
        - M
        - F
      type: string
      description: |-
        * `M` - Male
        * `F` - Female
    IdentityCardTypeEnum:
      enum:
        - driver_license
      type: string
      description: '* `driver_license` - Driver''s License'
    ProductTypeEnum:
      enum:
        - Life
        - Health
        - Auto
        - Cargo
        - Gadget
        - Travel
        - Home
        - Student_Protection
        - Accident
        - Personal_Accident
        - CreditLife
        - PetCare
        - General
        - Other
      type: string
      description: |-
        * `Life` - Life Insurance
        * `Health` - Health Insurance
        * `Auto` - Auto Insurance
        * `Cargo` - Cargo (Shipment) Insurance
        * `Gadget` - Gadget Insurance
        * `Travel` - Travel Insurance
        * `Home` - Home Insurance
        * `Student_Protection` - Student Protection
        * `Accident` - Accident Insurance
        * `Personal_Accident` - Personal Accident Insurance
        * `CreditLife` - Credit Life Insurance
        * `PetCare` - PetCare Insurance
        * `General` - General Insurance
        * `Other` - Other
    CoverageTypeEnum:
      enum:
        - Medical
        - Collision
        - Liability
        - Property
        - Travel
        - Accidental
        - Damages
        - Other
      type: string
      description: |-
        * `Medical` - Medical Coverage
        * `Collision` - Collision Coverage
        * `Liability` - Liability Coverage
        * `Property` - Property Coverage
        * `Travel` - Travel Coverage
        * `Accidental` - Accidental Coverage
        * `Damages` - Damages
        * `Other` - Other Coverage
  securitySchemes:
    ClientKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````