# acords.co: the loss notice, as typed data

> An independent reference to the data fields on the industry-standard insurance forms, starting with the loss notice that opens every claim. A free typed field model, checks and an MCP server for agents. Not affiliated with ACORD Corporation.

Source: https://acords.co/ · Updated 2026-10-09

## One family of forms, one field model.

The industry files claims and proves coverage on standard forms. The fields, not the paper, are what an agent needs typed.

ACORD Corporation is the standards body whose published forms the industry files claims and proves coverage on; carriers, agencies and management systems license them through ACORD. When an agent says "send the 25" or "file the loss notice", they mean a specific, standardized set of fields, and it is the fields, not the paper, that an agent-first system needs typed.

This door starts with the loss notice: the first notice of loss (FNOL) an agent, broker or insured files to open a claim. Its fields are the intake record of the entire claims loop. Who reported, under which policy, what happened, where, when and who to contact: every downstream deadline and every adjuster assignment keys off this record.

The notice shown on this page is an original layout of the data fields commonly found on a loss notice, with fictional values. It is not a reproduction of any ACORD form.

- **The family:** Three loss notices and a certificate, with fields in common.
- **Published by:** ACORD, the industry's standards body. This site is independent.
- **Filled by:** Agents, brokers and insureds at first notice of loss.
- **Sent to:** The carrier's claim intake, where the claim's clocks start.
- **On this page:** An original layout with fictional values, not an ACORD form.

## The loss notice, as fourteen typed fields.

The model a filed notice resolves to, whichever form carried it. Free, with no key.

| Field | Type | Meaning | Source |
|---|---|---|---|
| `form` | property | auto | liability | The notice family. | Agent intake |
| `reported_at` | date-time | When it was filed. The claim's clocks start here. | Agent intake |
| `reported_by` | string | The insured, the agent of record or a broker. | Agent intake |
| `carrier` | string | The carrier the notice is addressed to. | Policy record |
| `policy_number` | string | The policy the loss is claimed under. | Policy record |
| `term_start · term_end` | date | Policy period: the loss date should fall inside. | Policy record |
| `named_insured` | string | Named insured on the policy. | Policy record |
| `contact` | object | Who the adjuster should reach, and how. | Agent intake |
| `date_of_loss · time_of_loss` | date · time | When it happened, as precisely as known. | Insured's report |
| `loss_type` | string | Peril: wind_hail, fire, water, collision, theft, liability. | Insured's report |
| `loss_location` | string | Where it happened. | Insured's report |
| `description` | text | A plain account of the loss, injuries noted. | Insured's report |
| `authorities_contacted` | string | Police or fire report, if any. | Insured's report |
| `remarks` | text | Anything material that fits no field. | Agent intake |

### JSON Schema (https://acords.co/schema.json)

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://acords.co/schema.json",
  "title": "LossNotice",
  "type": "object",
  "description": "The typed field model of a first notice of loss (FNOL): the data fields commonly found on the industry-standard loss-notice forms. An original field model; not a reproduction of any ACORD form.",
  "required": [
    "form",
    "reported_at",
    "carrier",
    "policy_number",
    "named_insured",
    "date_of_loss",
    "loss_type"
  ],
  "properties": {
    "form": {
      "type": "string",
      "enum": [
        "property",
        "auto",
        "liability"
      ],
      "description": "Which loss-notice family the record maps to."
    },
    "reported_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the notice was filed. The claim's clocks start here."
    },
    "reported_by": {
      "type": "string",
      "description": "Who filed it: the insured, the agent of record, a broker."
    },
    "carrier": {
      "type": "string",
      "description": "Carrier the notice is addressed to."
    },
    "policy_number": {
      "type": "string",
      "description": "Policy the loss is claimed under."
    },
    "term_start": {
      "type": "string",
      "format": "date"
    },
    "term_end": {
      "type": "string",
      "format": "date"
    },
    "named_insured": {
      "type": "string"
    },
    "contact": {
      "$ref": "#/$defs/NoticeContact"
    },
    "date_of_loss": {
      "type": "string",
      "format": "date"
    },
    "time_of_loss": {
      "type": "string",
      "description": "Local time of the loss, when known."
    },
    "loss_type": {
      "type": "string",
      "description": "Peril, e.g. wind_hail, fire, water, collision, theft, liability."
    },
    "loss_location": {
      "type": "string"
    },
    "description": {
      "type": "string",
      "description": "Plain-language account of the loss."
    },
    "authorities_contacted": {
      "type": "string",
      "description": "Police or fire department and report number, if any."
    },
    "remarks": {
      "type": "string"
    }
  },
  "$defs": {
    "LossNotice": {
      "type": "object",
      "description": "The typed field model of a first notice of loss (FNOL): the data fields commonly found on the industry-standard loss-notice forms. An original field model; not a reproduction of any ACORD form.",
      "required": [
        "form",
        "reported_at",
        "carrier",
        "policy_number",
        "named_insured",
        "date_of_loss",
        "loss_type"
      ],
      "properties": {
        "form": {
          "type": "string",
          "enum": [
            "property",
            "auto",
            "liability"
          ],
          "description": "Which loss-notice family the record maps to."
        },
        "reported_at": {
          "type": "string",
          "format": "date-time",
          "description": "When the notice was filed. The claim's clocks start here."
        },
        "reported_by": {
          "type": "string",
          "description": "Who filed it: the insured, the agent of record, a broker."
        },
        "carrier": {
          "type": "string",
          "description": "Carrier the notice is addressed to."
        },
        "policy_number": {
          "type": "string",
          "description": "Policy the loss is claimed under."
        },
        "term_start": {
          "type": "string",
          "format": "date"
        },
        "term_end": {
          "type": "string",
          "format": "date"
        },
        "named_insured": {
          "type": "string"
        },
        "contact": {
          "$ref": "#/$defs/NoticeContact"
        },
        "date_of_loss": {
          "type": "string",
          "format": "date"
        },
        "time_of_loss": {
          "type": "string",
          "description": "Local time of the loss, when known."
        },
        "loss_type": {
          "type": "string",
          "description": "Peril, e.g. wind_hail, fire, water, collision, theft, liability."
        },
        "loss_location": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Plain-language account of the loss."
        },
        "authorities_contacted": {
          "type": "string",
          "description": "Police or fire department and report number, if any."
        },
        "remarks": {
          "type": "string"
        }
      }
    },
    "NoticeContact": {
      "type": "object",
      "description": "The person the adjuster should reach.",
      "properties": {
        "name": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "email": {
          "type": "string",
          "format": "email"
        }
      }
    }
  }
}
```

### Example (https://acords.co/example.json)

```json
{
  "form": "property",
  "reported_at": "2026-06-11T18:02:00-05:00",
  "reported_by": "Bright Harbor Insurance Agency",
  "carrier": "Meridian Mutual Insurance Co.",
  "policy_number": "HO3-2214087-01",
  "term_start": "2025-10-01",
  "term_end": "2026-10-01",
  "named_insured": "D. Okafor",
  "contact": {
    "name": "D. Okafor",
    "phone": "(940) 555-0164"
  },
  "date_of_loss": "2026-06-11",
  "time_of_loss": "16:40 CT",
  "loss_type": "wind_hail",
  "loss_location": "2114 Pecan Hollow Dr, Denton, TX 76205",
  "description": "Hail impact to roof decking and two skylights; water staining in the upstairs hallway ceiling. No injuries.",
  "authorities_contacted": "None",
  "remarks": "Insured prefers contact by phone."
}
```

## What your agent does with it

- **parse** (Read a filed notice): A completed notice in, typed fields out, whichever form it came on. Call: `POST /parse`, with an access key.
- **prefill** (Draft the notice): Intake answers in, a typed notice and the questions left out. Call: `prefill_loss_notice`.
- **check** (Check before filing): Loss inside the term, dates in order, a contact who can be reached. Call: `validate_loss_notice`.
- **explain** (Explain any field): What a field means, who supplies it and what depends on it. Call: `explain_loss_notice_field`.

## MCP server

Endpoint: https://acords.co/mcp (Streamable HTTP, JSON-RPC over POST; keyless and read-only; nothing is stored).

```json
{ "mcpServers": { "acords.co": { "url": "https://acords.co/mcp" } } }
```

### `get_loss_notice_schema`

The JSON Schema (2020-12) for the loss notice: every field, its type and what it means. Also served at https://acords.co/schema.json.

Input:

```json
{"type":"object","properties":{}}
```

### `get_loss_notice_example`

A complete, valid example LossNotice record with fictional values. Also served at https://acords.co/example.json.

Input:

```json
{"type":"object","properties":{}}
```

### `explain_loss_notice_field`

What one field of the loss notice means, its type, and where the value comes from. Accepts paths like authorities_contacted.

Input:

```json
{"type":"object","required":["field"],"properties":{"field":{"type":"string","description":"A field name or path."}}}
```

### `validate_loss_notice`

Check a LossNotice record against the schema, then run the document's own checks (sums, dates). Returns valid (the shape matches), consistent (every check passes too), errors (schema) and warnings (checks). Nothing is stored.

Input:

```json
{"type":"object","required":["record"],"properties":{"record":{"type":"object","description":"The LossNotice record to check."}}}
```

### `prefill_loss_notice`

Turn the fields gathered at intake into a typed LossNotice: loss_type and dates normalized, the form family inferred from the peril, and every required field still missing listed with the question to ask for it. Nothing is invented and nothing is filed.

Input:

```json
{"type":"object","required":["fields"],"properties":{"fields":{"type":"object","description":"Whatever is known so far, by LossNotice field name, e.g. { loss_type: \"hail\", date_of_loss: \"June 11 2026\" }."}}}
```

## HTTP

- `GET https://acords.co/schema.json`: the JSON Schema
- `GET https://acords.co/example.json`: the example record
- `POST https://acords.co/validate`: send a LossNotice as JSON; returns `{ valid, consistent, errors, warnings }`
- `POST https://acords.co/parse`: a document in, a LossNotice out; requires an access key (`Authorization: Bearer <key>`). Request one at https://acords.co/#access.
- `GET https://acords.co/openapi.json`: OpenAPI 3.1 for all of the above

## Questions

### What is a first notice of loss?

The first report of a loss to the carrier. It opens the claim file and starts its clocks: who reported, under which policy, what happened, where and when.

### Which ACORD forms are loss notices?

ACORD 1, 2 and 3: property, auto and general liability. The ACORD 25 is the certificate of liability insurance, a different form.

### Is acords.co affiliated with ACORD?

No. It is an independent reference to the fields those forms carry, and the notice shown here is an original layout.

### Is the field model free?

Yes, with no key: the model, the example, the checks and prefill. Parsing filed notices needs an access key.

## Family

- https://api.insure: the insurance industry as one agent-first API
- https://gigs.claims: flat-fee claim files for licensed adjusters
- https://lossruns.claims: the loss run as typed data
- https://eobs.claims: the Explanation of Benefits as typed data

Independent reference. Not affiliated with, endorsed by or licensed by ACORD Corporation; ACORD and the form numbers are its marks, used to identify its forms.
