Skip to main content
POST

Authorizations

Authorization
string
header
required

Send your API key as a bearer token: Authorization: Bearer osa_live_…. Keys are opaque; each belongs to exactly one firm and one purpose. Keys starting with osa_test_ reach only test claims and test accounts. The scopes listed on each operation are the permissions the key needs; GET /v1/me shows the ones your key has.

Headers

Idempotency-Key
string
required

A unique value your system generates for each operation, such as a UUID. Reuse the same value only when retrying the same request. The key is matched with a fingerprint of the whole request: method, path and body. For 24 hours, a retry of the same request with the same key returns the same status code with the resource's current state, and creates nothing new; the same key with a different request fails with 422 idempotency_key_reused.

Required string length: 1 - 255

Body

application/json

The claim, as your claims system knows it at assignment time.

A claim to send to an adjuster.

external_id
string
required

Your own id for the claim in your system (for example your claims-management record id). Unique within your firm and the key's environment (test or live), and never changed. No leading or trailing whitespace.

Required string length: 1 - 100
Pattern: ^\S(.*\S)?$
Example:

"CMS-884512"

claim_number
string
required

The carrier's claim number. A claim number that matches one of your firm's open claims sent through the API in the same environment (test or live) is rejected as a duplicate. No leading or trailing whitespace.

Required string length: 1 - 100
Pattern: ^\S(.*\S)?$
Example:

"FL-2026-0091832"

adjuster_osa_id
string
required

The OSAID of the adjuster to send the claim to. They must be an active member of your firm.

Required string length: 1 - 128
Example:

"Xk3pQ9vT2mN8rL5wB7yC1dF4gH6j"

loss
object
required

The loss being claimed.

policy
object
required

The insurance policy the claim is made under.

carrier
object
required

The insurance carrier. The carrier's details print on the adjuster's forms, so send them in full: name, phone, email and address.

loss_location
object
required

The address of the insured property where the loss happened.

policyholder
object
required

The policyholder. Send first_name and last_name, or company_name (or all three), and at least one of phone and email, so the adjuster can make contact.

file_number
string

Your firm's file number, shown to the adjuster. external_id is not shown to the adjuster, so send this when they need a reference of yours.

Required string length: 1 - 100
instructions
string

Plain-text notes for the adjuster, shown with the claim in the app.

Required string length: 1 - 4000
reported_date
string<date>

The date the loss was reported to the carrier.

Example:

"2026-09-27"

contact_date
string<date>

The date the policyholder was contacted about the claim, when that has already happened (for example on a claim that is being reassigned). The adjuster can change it in the app.

Example:

"2026-09-27"

inspection_date
string<date>

The date of the inspection. It fills the date only and does not create an appointment in the app. The adjuster can change it in the app.

Example:

"2026-09-27"

additional_contacts
object[]

Other people or companies involved in the claim.

Maximum array length: 20

Another person or company involved in the claim. Send a name (first and last, or a company).

agent
object

The insurance agent or agency on the policy.

mortgagee
object

The mortgage company on the property.

building
object

What you know about the insured building. All optional; the adjuster verifies these on site.

coverages
object

Coverage limits and deductibles from the policy.

estimate
object

Figures the adjuster's estimate starts from.

Response

The claim was created and offered to the adjuster. A retry of the same request with the same Idempotency-Key returns 201 again, with the claim's current state.

A claim as you sent it, with OSA's id, your external_id, and the current assignment. Optional fields you didn't send are omitted. Adjusters' later edits in the app don't change these fields.

id
string<uuid>
required

OSA's id for the claim.

external_id
string
required

Your own id for the claim.

claim_number
string
required

The carrier's claim number.

test
boolean
required

true for a test claim: one sent with a test key to a test account. Test claims are never billed. The value never changes.

created_at
string<date-time>
required

When the claim was created.

updated_at
string<date-time>
required

When something you can see last changed: creation, an offer, an acceptance or a rejection. This is the field updated_since filters on.

assignment
object
required

The latest offer of the claim to an adjuster. When you offer the claim to someone else, this describes the new offer and the earlier response is no longer shown.

loss
object
required

The loss being claimed.

policy
object
required

The insurance policy, as you sent it.

carrier
object
required

The insurance carrier, as you sent it.

loss_location
object
required

The address of the insured property, as you sent it.

policyholder
object
required

The policyholder, as you sent it.

file_number
string

Your firm's file number.

instructions
string

Your notes for the adjuster.

reported_date
string<date>

The date the loss was reported to the carrier.

contact_date
string<date>

The date the policyholder was contacted, as you sent it.

inspection_date
string<date>

The date of the inspection, as you sent it.

additional_contacts
object[]

Other people or companies involved in the claim.

agent
object

The agent, as you sent it.

mortgagee
object

The mortgage company, as you sent it.

building
object

The building details, as you sent them.

coverages
object

Coverage limits and deductibles, as you sent them.

estimate
object

The estimate figures, as you sent them.