HawkSoft Clients API

Client records including contacts, policies, coverages, vehicles, and drivers

OpenAPI Specification

hawksoft-clients-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: HawkSoft Partner Agencies Clients API
  version: '3.0'
  description: 'HawkSoft Partner API for insurance agency management. This OpenAPI document describes the documented Partner API surface (V3.0, with reference to V1.8).


    IMPORTANT - endpoint modeling honesty: The paths, HTTP methods, and base URL below are taken from HawkSoft''s publicly readable Partner API documentation at https://partner.hawksoft.app. The Partner API is GATED - credentials are issued only to vetted, approved API Partners, and an agency must opt in to share its data, so the request/response schemas here are MODELED from the published documentation and blog descriptions rather than exercised against a live account. Field-level detail should be confirmed against the official docs and a partner sandbox before implementation.


    Authentication is HTTP Basic (partner user and password). All V3.0 requests must include the query parameter version=3.0.'
  contact:
    name: HawkSoft Partner Program
    email: opportunities@hawksoft.com
    url: https://partner.hawksoft.app/
  termsOfService: https://www.hawksoft.com/terms/api/
servers:
- url: https://integration.hawksoft.app
  description: HawkSoft Partner API integration host
security:
- basicAuth: []
tags:
- name: Clients
  description: Client records including contacts, policies, coverages, vehicles, and drivers
paths:
  /vendor/agency/{agencyId}/clients:
    get:
      operationId: listChangedClients
      summary: List clients changed since a timestamp
      description: Return client identifiers (and change metadata) for clients modified since the supplied timestamp, enabling incremental synchronization.
      tags:
      - Clients
      parameters:
      - $ref: '#/components/parameters/AgencyId'
      - $ref: '#/components/parameters/Version'
      - name: since
        in: query
        description: Return clients modified at or after this ISO 8601 timestamp.
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Changed client references
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientReference'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: getClientList
      summary: Fetch a batch of clients by id
      description: Return full client records for the supplied list of client ids. The documented batch limit is up to 200 client ids per request.
      tags:
      - Clients
      parameters:
      - $ref: '#/components/parameters/AgencyId'
      - $ref: '#/components/parameters/Version'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              maxItems: 200
              items:
                type: string
                description: Client id
      responses:
        '200':
          description: Full client records
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Client'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /vendor/agency/{agencyId}/clients/search:
    get:
      operationId: searchClients
      summary: Search clients
      tags:
      - Clients
      parameters:
      - $ref: '#/components/parameters/AgencyId'
      - $ref: '#/components/parameters/Version'
      - name: q
        in: query
        description: Search term (name, phone, email, or policy attributes).
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Matching clients
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Client'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /vendor/agency/{agencyId}/client/{clientId}:
    get:
      operationId: getClient
      summary: Get a single client
      description: Return a full client record. In V3.0 the payload consolidates contacts, policies and coverages, vehicles, and drivers under the HawkSoft 6 cloud data model.
      tags:
      - Clients
      parameters:
      - $ref: '#/components/parameters/AgencyId'
      - $ref: '#/components/parameters/ClientId'
      - $ref: '#/components/parameters/Version'
      responses:
        '200':
          description: A client record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Client not found
components:
  parameters:
    AgencyId:
      name: agencyId
      in: path
      required: true
      description: HawkSoft agency identifier.
      schema:
        type: string
    ClientId:
      name: clientId
      in: path
      required: true
      description: HawkSoft client identifier.
      schema:
        type: string
    Version:
      name: version
      in: query
      required: true
      description: API version; use 3.0 for the V3.0 surface.
      schema:
        type: string
        default: '3.0'
  responses:
    Unauthorized:
      description: Missing or invalid partner credentials.
  schemas:
    ClientReference:
      type: object
      properties:
        clientId:
          type: string
        modified:
          type: string
          format: date-time
    Contact:
      type: object
      properties:
        contactId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phone:
          type: string
        priority:
          type: integer
    Client:
      type: object
      description: Consolidated V3.0 client record. Modeled from public documentation; confirm exact fields against the official Partner API docs.
      properties:
        clientId:
          type: string
        modified:
          type: string
          format: date-time
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
        policies:
          type: array
          items:
            $ref: '#/components/schemas/Policy'
        vehicles:
          type: array
          items:
            type: object
        drivers:
          type: array
          items:
            type: object
    Policy:
      type: object
      properties:
        policyId:
          type: string
        policyNumber:
          type: string
        lineOfBusiness:
          type: string
        carrier:
          type: string
        status:
          type: string
        effectiveDate:
          type: string
          format: date
        expirationDate:
          type: string
          format: date
        coverages:
          type: array
          items:
            type: object
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication with partner-issued credentials.