Harbor Compliance API

The Harbor Compliance API enables partners to integrate compliance management capabilities into their platforms, streamlining workflows for business licensing, registered agent services, and compliance tracking.

OpenAPI Specification

harbor-compliance-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Harbor Compliance API
  description: >-
    The Harbor Compliance API enables partners to integrate compliance management
    capabilities into their platforms. The API provides programmatic access to
    business licensing, registered agent services, compliance tracking, and
    entity management workflows. Partners can automate compliance tasks, monitor
    filing deadlines, manage registered agent appointments, and track licensing
    requirements across jurisdictions.
  version: '1.0'
  contact:
    name: Harbor Compliance Support
    url: https://www.harborcompliance.com/contact
  termsOfService: https://www.harborcompliance.com/terms-of-service
externalDocs:
  description: Harbor Compliance Developer Documentation
  url: https://developers.harborcompliance.com/
servers:
  - url: https://api.harborcompliance.com/v1
    description: Production Server
tags:
  - name: Compliance Filings
    description: Annual reports, compliance filings, and deadline tracking.
  - name: Entities
    description: Business entity management including corporations, LLCs, and other legal entities.
  - name: Jurisdictions
    description: State and jurisdiction information for compliance requirements.
  - name: Licenses
    description: Business license applications, renewals, and status tracking across jurisdictions.
  - name: Orders
    description: Compliance service orders and fulfillment tracking.
  - name: Registered Agents
    description: Registered agent appointment and management for business entities.
security:
  - apiKey: []
paths:
  /entities:
    get:
      operationId: listEntities
      summary: Harbor Compliance List business entities
      description: >-
        Returns a paginated list of business entities managed under the partner
        account. Results can be filtered by entity type, state, and status.
      tags:
        - Entities
      parameters:
        - $ref: '#/components/parameters/pageParam'
        - $ref: '#/components/parameters/perPageParam'
        - name: state
          in: query
          description: Filter entities by state of formation (two-letter state code).
          schema:
            type: string
            pattern: '^[A-Z]{2}$'
        - name: entity_type
          in: query
          description: Filter by entity type.
          schema:
            type: string
            enum:
              - corporation
              - llc
              - lp
              - llp
              - nonprofit
              - sole_proprietorship
        - name: status
          in: query
          description: Filter by entity status.
          schema:
            type: string
            enum: [active, inactive, dissolved, pending]
      responses:
        '200':
          description: A paginated list of business entities.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Entity'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createEntity
      summary: Harbor Compliance Create a business entity
      description: >-
        Creates a new business entity record in Harbor Compliance. This
        registers the entity for compliance tracking and monitoring across
        applicable jurisdictions.
      tags:
        - Entities
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityCreate'
      responses:
        '201':
          description: The newly created business entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entity'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /entities/{entityId}:
    get:
      operationId: getEntity
      summary: Harbor Compliance Get a business entity
      description: >-
        Retrieves detailed information about a specific business entity including
        its formation details, registered agent, compliance status, and active
        licenses.
      tags:
        - Entities
      parameters:
        - $ref: '#/components/parameters/entityIdParam'
      responses:
        '200':
          description: Business entity details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entity'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateEntity
      summary: Harbor Compliance Update a business entity
      description: >-
        Updates mutable fields on a business entity record such as the contact
        information, principal address, and officer details.
      tags:
        - Entities
      parameters:
        - $ref: '#/components/parameters/entityIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityUpdate'
      responses:
        '200':
          description: The updated business entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entity'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /entities/{entityId}/compliance:
    get:
      operationId: getEntityCompliance
      summary: Harbor Compliance Get compliance status for an entity
      description: >-
        Returns the full compliance status for a business entity including
        upcoming filing deadlines, overdue items, and a summary of active
        compliance requirements across all jurisdictions where the entity
        operates.
      tags:
        - Compliance Filings
        - Entities
      parameters:
        - $ref: '#/components/parameters/entityIdParam'
      responses:
        '200':
          description: Entity compliance status summary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComplianceStatus'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /licenses:
    get:
      operationId: listLicenses
      summary: Harbor Compliance List business licenses
      description: >-
        Returns a paginated list of business licenses managed for partner
        entities. Licenses can be filtered by entity, jurisdiction, license
        type, and status.
      tags:
        - Licenses
      parameters:
        - $ref: '#/components/parameters/pageParam'
        - $ref: '#/components/parameters/perPageParam'
        - name: entity_id
          in: query
          description: Filter licenses by entity identifier.
          schema:
            type: string
        - name: state
          in: query
          description: Filter licenses by state jurisdiction.
          schema:
            type: string
            pattern: '^[A-Z]{2}$'
        - name: status
          in: query
          description: Filter by license status.
          schema:
            type: string
            enum: [active, pending, expired, revoked]
      responses:
        '200':
          description: A paginated list of business licenses.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/License'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createLicense
      summary: Harbor Compliance Create a license application
      description: >-
        Submits a new business license application for a specified entity and
        jurisdiction. Harbor Compliance will process the application and update
        the status as it progresses through the licensing workflow.
      tags:
        - Licenses
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LicenseCreate'
      responses:
        '201':
          description: The newly created license application.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/License'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /licenses/{licenseId}:
    get:
      operationId: getLicense
      summary: Harbor Compliance Get a business license
      description: >-
        Retrieves detailed information about a specific business license
        including its current status, expiration date, renewal requirements,
        and associated filings.
      tags:
        - Licenses
      parameters:
        - $ref: '#/components/parameters/licenseIdParam'
      responses:
        '200':
          description: Business license details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/License'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /licenses/{licenseId}/renew:
    post:
      operationId: renewLicense
      summary: Harbor Compliance Renew a business license
      description: >-
        Initiates the renewal process for an existing business license. This
        creates a renewal order that Harbor Compliance will process through the
        appropriate jurisdiction's renewal workflow.
      tags:
        - Licenses
      parameters:
        - $ref: '#/components/parameters/licenseIdParam'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                notes:
                  type: string
                  description: Optional notes for the renewal request.
      responses:
        '200':
          description: The updated license record with renewal initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/License'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /registered-agents:
    get:
      operationId: listRegisteredAgents
      summary: Harbor Compliance List registered agent appointments
      description: >-
        Returns a paginated list of registered agent appointments for entities
        managed under the partner account. Includes appointment status and
        jurisdiction details.
      tags:
        - Registered Agents
      parameters:
        - $ref: '#/components/parameters/pageParam'
        - $ref: '#/components/parameters/perPageParam'
        - name: entity_id
          in: query
          description: Filter by entity identifier.
          schema:
            type: string
        - name: state
          in: query
          description: Filter by state jurisdiction.
          schema:
            type: string
            pattern: '^[A-Z]{2}$'
      responses:
        '200':
          description: A paginated list of registered agent appointments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/RegisteredAgent'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createRegisteredAgentAppointment
      summary: Harbor Compliance Appoint a registered agent
      description: >-
        Creates a new registered agent appointment for a business entity in a
        specified state. Harbor Compliance will file the necessary paperwork
        with the state to formalize the appointment.
      tags:
        - Registered Agents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisteredAgentCreate'
      responses:
        '201':
          description: The newly created registered agent appointment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisteredAgent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /registered-agents/{agentId}:
    get:
      operationId: getRegisteredAgent
      summary: Harbor Compliance Get a registered agent appointment
      description: >-
        Retrieves details about a specific registered agent appointment including
        the agent's address, appointment status, and associated entity.
      tags:
        - Registered Agents
      parameters:
        - $ref: '#/components/parameters/agentIdParam'
      responses:
        '200':
          description: Registered agent appointment details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisteredAgent'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /filings:
    get:
      operationId: listFilings
      summary: Harbor Compliance List compliance filings
      description: >-
        Returns a paginated list of compliance filings including annual reports,
        statements of information, and other required regulatory submissions.
        Results can be filtered by entity, state, filing type, and status.
      tags:
        - Compliance Filings
      parameters:
        - $ref: '#/components/parameters/pageParam'
        - $ref: '#/components/parameters/perPageParam'
        - name: entity_id
          in: query
          description: Filter filings by entity identifier.
          schema:
            type: string
        - name: state
          in: query
          description: Filter filings by state jurisdiction.
          schema:
            type: string
            pattern: '^[A-Z]{2}$'
        - name: status
          in: query
          description: Filter by filing status.
          schema:
            type: string
            enum: [pending, in_progress, filed, overdue, waived]
        - name: due_before
          in: query
          description: Filter filings due before this date (ISO 8601 date).
          schema:
            type: string
            format: date
      responses:
        '200':
          description: A paginated list of compliance filings.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Filing'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /filings/{filingId}:
    get:
      operationId: getFiling
      summary: Harbor Compliance Get a compliance filing
      description: >-
        Retrieves details about a specific compliance filing including its type,
        due date, status, and any documents associated with the filing.
      tags:
        - Compliance Filings
      parameters:
        - $ref: '#/components/parameters/filingIdParam'
      responses:
        '200':
          description: Compliance filing details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filing'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /jurisdictions:
    get:
      operationId: listJurisdictions
      summary: Harbor Compliance List jurisdictions
      description: >-
        Returns a list of all supported jurisdictions with their compliance
        requirements, filing fees, and annual report due dates.
      tags:
        - Jurisdictions
      parameters:
        - name: entity_type
          in: query
          description: Filter jurisdictions by supported entity type.
          schema:
            type: string
            enum:
              - corporation
              - llc
              - lp
              - llp
              - nonprofit
      responses:
        '200':
          description: A list of supported jurisdictions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Jurisdiction'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /jurisdictions/{state}:
    get:
      operationId: getJurisdiction
      summary: Harbor Compliance Get jurisdiction details
      description: >-
        Retrieves detailed compliance requirements for a specific state
        jurisdiction including annual report deadlines, filing fees, and
        registered agent requirements by entity type.
      tags:
        - Jurisdictions
      parameters:
        - name: state
          in: path
          required: true
          description: Two-letter state code (e.g., CA, NY, DE).
          schema:
            type: string
            pattern: '^[A-Z]{2}$'
      responses:
        '200':
          description: Jurisdiction compliance details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Jurisdiction'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /orders:
    get:
      operationId: listOrders
      summary: Harbor Compliance List service orders
      description: >-
        Returns a paginated list of compliance service orders placed through the
        Harbor Compliance partner account. Orders represent discrete compliance
        tasks being fulfilled by Harbor Compliance staff.
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/pageParam'
        - $ref: '#/components/parameters/perPageParam'
        - name: entity_id
          in: query
          description: Filter orders by entity identifier.
          schema:
            type: string
        - name: status
          in: query
          description: Filter by order status.
          schema:
            type: string
            enum: [pending, processing, completed, cancelled]
      responses:
        '200':
          description: A paginated list of service orders.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /orders/{orderId}:
    get:
      operationId: getOrder
      summary: Harbor Compliance Get a service order
      description: >-
        Retrieves details about a specific compliance service order including
        its current status, associated entity, service type, and any documents
        produced.
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/orderIdParam'
      responses:
        '200':
          description: Service order details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        API key for authenticating partner requests. Obtain your API key from
        the Harbor Compliance developer portal.
  parameters:
    entityIdParam:
      name: entityId
      in: path
      required: true
      description: Unique identifier for the business entity.
      schema:
        type: string
    licenseIdParam:
      name: licenseId
      in: path
      required: true
      description: Unique identifier for the business license.
      schema:
        type: string
    agentIdParam:
      name: agentId
      in: path
      required: true
      description: Unique identifier for the registered agent appointment.
      schema:
        type: string
    filingIdParam:
      name: filingId
      in: path
      required: true
      description: Unique identifier for the compliance filing.
      schema:
        type: string
    orderIdParam:
      name: orderId
      in: path
      required: true
      description: Unique identifier for the service order.
      schema:
        type: string
    pageParam:
      name: page
      in: query
      description: Page number for paginated results (1-based).
      schema:
        type: integer
        minimum: 1
        default: 1
    perPageParam:
      name: per_page
      in: query
      description: Number of results per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
  responses:
    BadRequest:
      description: The request was malformed or contained invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Entity:
      type: object
      title: Entity
      description: A business entity managed by Harbor Compliance.
      required: [id, name, entity_type, state, status]
      properties:
        id:
          type: string
          description: Unique identifier for the business entity.
        name:
          type: string
          description: Legal name of the business entity.
        entity_type:
          type: string
          description: The legal structure of the entity.
          enum:
            - corporation
            - llc
            - lp
            - llp
            - nonprofit
            - sole_proprietorship
        state:
          type: string
          description: Two-letter state code where the entity was formed.
          pattern: '^[A-Z]{2}$'
        status:
          type: string
          description: Current standing status of the entity.
          enum: [active, inactive, dissolved, pending]
        ein:
          type: string
          description: Employer Identification Number (EIN) assigned by the IRS.
          pattern: '^\d{2}-\d{7}$'
        formation_date:
          type: string
          format: date
          description: Date the entity was formed or incorporated.
        registered_agent_id:
          type: string
          description: Identifier of the registered agent appointment for this entity.
        principal_address:
          $ref: '#/components/schemas/Address'
        mailing_address:
          $ref: '#/components/schemas/Address'
        officers:
          type: array
          description: List of officers and directors associated with the entity.
          items:
            $ref: '#/components/schemas/Officer'
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the entity record was created.
        updated_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp of the last update to the entity record.
    EntityCreate:
      type: object
      title: EntityCreate
      description: Fields required to create a new business entity record.
      required: [name, entity_type, state]
      properties:
        name:
          type: string
          description: Legal name of the business entity.
        entity_type:
          type: string
          description: The legal structure of the entity.
          enum:
            - corporation
            - llc
            - lp
            - llp
            - nonprofit
            - sole_proprietorship
        state:
          type: string
          description: Two-letter state code where the entity was formed.
          pattern: '^[A-Z]{2}$'
        ein:
          type: string
          description: Employer Identification Number (EIN).
          pattern: '^\d{2}-\d{7}$'
        formation_date:
          type: string
          format: date
          description: Date the entity was formed or incorporated.
        principal_address:
          $ref: '#/components/schemas/Address'
        officers:
          type: array
          description: Officers and directors associated with the entity.
          items:
            $ref: '#/components/schemas/Officer'
    EntityUpdate:
      type: object
      title: EntityUpdate
      description: Fields that can be updated on an existing business entity.
      properties:
        name:
          type: string
          description: Updated legal name of the entity.
        principal_address:
          $ref: '#/components/schemas/Address'
        mailing_address:
          $ref: '#/components/schemas/Address'
        officers:
          type: array
          description: Updated list of officers and directors.
          items:
            $ref: '#/components/schemas/Officer'
    License:
      type: object
      title: License
      description: A business license held by an entity in a specific jurisdiction.
      required: [id, entity_id, state, license_type, status]
      properties:
        id:
          type: string
          description: Unique identifier for the license.
        entity_id:
          type: string
          description: Identifier of the entity that holds this license.
        state:
          type: string
          description: Two-letter state code for the licensing jurisdiction.
          pattern: '^[A-Z]{2}$'
        license_type:
          type: string
          description: Type or category of business license.
        license_number:
          type: string
          description: License number assigned by the issuing jurisdiction.
        status:
          type: string
          description: Current status of the license.
          enum: [active, pending, expired, revoked]
        issued_date:
          type: string
          format: date
          description: Date the license was issued.
        expiration_date:
          type: string
          format: date
          description: Date the license expires and must be renewed.
        renewal_date:
          type: string
          format: date
          description: Date by which the renewal must be submitted to avoid lapse.
        agency:
          type: string
          description: Name of the government agency that issued the license.
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the license record was created.
        updated_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp of the last update.
    LicenseCreate:
      type: object
      title: LicenseCreate
      description: Fields required to submit a new business license application.
      required: [entity_id, state, license_type]
      properties:
        entity_id:
          type: string
          description: Identifier of the entity applying for the license.
        state:
          type: string
          description: Two-letter state code for the licensing jurisdiction.
          pattern: '^[A-Z]{2}$'
        license_type:
          type: string
          description: Type of business license being applied for.
        notes:
          type: string
          description: Additional notes or instructions for the license application.
    RegisteredAgent:
      type: object
      title: RegisteredAgent
      description: A registered agent appointment for a business entity in a state.
      required: [id, entity_id, state, status]
      properties:
        id:
          type: string
          description: Unique identifier for the registered agent appointment.
        entity_id:
          type: string
          description: Identifier of the entity for which the agent is appointed.
        state:
          type: string
          description: Two-letter state code where the agent is appointed.
          pattern: '^[A-Z]{2}$'
        status:
          type: string
          description: Current status of the registered agent appointment.
          enum: [active, pending, resigned, revoked]
        agent_name:
          type: string
          description: Name of the registered agent.
        agent_address:
          $ref: '#/components/schemas/Address'
        appointment_date:
          type: string
          format: date
          description: Date the registered agent was officially appointed.
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the appointment record was created.
        updated_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp of the last update.
    RegisteredAgentCreate:
      type: object
      title: RegisteredAgentCreate
      description: Fields required to create a registered agent appointment.
      required: [entity_id, state]
      properties:
        entity_id:
          type: string
          description: Identifier of the entity requiring a registered agent.
        state:
          type: string
          description: Two-letter state code where the agent should be appointed.
          pattern: '^[A-Z]{2}$'
        notes:
          type: string
          description: Optional notes for the registered agent appointment request.
    Filing:
      type: object
      title: Filing
      description: A required compliance filing such as an annual report or statement of information.
      required: [id, entity_id, state, filing_type, status]
      properties:
        id:
          type: string
          description: Unique identifier for the filing.
        entity_id:
          type: string
          description: Identifier of the entity required to submit this filing.
        state:
          type: string
          description: Two-letter state code of the filing jurisdiction.
          pattern: '^[A-Z]{2}$'
        filing_type:
          type: string
          description: Type of required compliance filing.
          enum:
            - annual_report
            - biennial_report
            - statement_of_information
            - franchise_tax
            - beneficial_ownership
            - other
        status:
          type: string
          description: Current status of the filing.
          enum: [pending, in_progress, filed, overdue, waived]
        due_date:
          type: string
          format: date
          description: Date by which the filing must be submitted to the state.
        filed_date:
          type: string
          format: date
          description: Date the filing was actually submitted, if completed.
        fee:
          type: number
          description: Filing fee in USD charged by the state.
        filing_period:
          type: string
          description: The period or year covered by this filing (e.g., '2025').
        documents:
          type: array
          description: Documents 

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harbor-compliance/refs/heads/main/openapi/harbor-compliance-openapi.yml