Skip to main content
POST
/
api
/
v1
/
external
/
companies
/
{companyId}
/
policies
Create Basic Policy
curl --request POST \
  --url https://app.aiinsurance.io/api/v1/external/companies/{companyId}/policies \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "policyNumber": "POL-2026-0001",
  "policyStartDate": {
    "date": "2026-01-01",
    "timezone": "America/New_York"
  },
  "policyEndDate": {
    "date": "2027-01-01",
    "timezone": "America/New_York"
  },
  "policyEffectiveDate": {
    "date": "2026-01-01",
    "timezone": "America/New_York"
  },
  "policyType": "generalLiability",
  "policyTimeZone": "America/New_York",
  "primaryInsured": "550e8400-e29b-41d4-a716-446655440010",
  "exposures": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440010",
      "exposureName": "Acme Corporation",
      "exposureType": "business"
    }
  ]
}
'
{
  "id": "550e8400-e29b-41d4-a716-446655440001"
}

Authorizations

Authorization
string
header
required

API key authentication. Include your API key in the Authorization header.

Path Parameters

companyId
string<uuid>
required

Company identifier

Body

application/json
policyNumber
string
required

Unique policy number within the company.

policyStartDate
object
required

Policy term start date.

policyEndDate
object
required

Policy term end date.

policyType
string
required

Policy type — must be one of the option-set values configured for your company. Retrieve available values via GET /policies/configuration.

policyTimeZone
string
required

IANA timezone the policy operates in.

primaryInsured
string<uuid>
required

UUID of the primary exposure — must appear as an id in the exposures array and correspond to an existing exposure record.

exposures
object[]
required

Exposures on the policy. Each must reference an existing exposure record by id.

policyEffectiveDate
object

Policy effective date (usually same as start date).

Response

Policy created

id
string<uuid>
required

Newly created policy ID