COI / ACORD 25 Compliance Verification
Extract and verify certificate-of-insurance coverage against your vendor requirements.
The problem
General contractors, property managers, and franchisors deal with the same recurring task: a subcontractor, vendor, or tenant submits a Certificate of Insurance (typically an ACORD 25), and someone has to check it against the actual contract requirements — minimum liability limits, additional-insured status, waiver of subrogation, valid policy dates. Done by hand, this takes 15–45 minutes per document and it's easy to miss something. A missed additional-insured endorsement or an expired policy can mean an uninsured loss the GC or landlord ends up covering.
Who it's for
Risk and compliance teams at general contractors, property management companies, franchisors, and insurance/vendor-risk platforms that need to check certificates of insurance against coverage requirements repeatedly, per vendor or per property.
Use cases
- Verifying a new subcontractor's certificate against a contract's minimum coverage requirements before granting site access
- Re-checking a vendor's certificate at renewal to confirm coverage hasn't lapsed
- Embedding automated COI checks into a vendor-management or procurement platform
- Extracting structured data from a certificate without running a compliance check, for your own downstream logic
What it does
Send a certificate as a file URL or base64-encoded image/PDF, and get back structured extraction of everything on it — named insured, insurers, each coverage section's limits and dates, additional-insured and subrogation-waived flags. Supply your own coverage requirements (or a saved, reusable requirements profile) and the same call returns a clear compliant/deficient verdict with an itemized list of exactly what's missing, not just a pass/fail.
Why Aervik's implementation is different
Extraction and the compliance verdict are two separate steps by design. Extraction uses a vision model to read the document; the compliant/deficient decision itself is a fixed, deterministic rules engine over the extracted fields, never an AI judgment call — so the same requirements and the same extracted data always produce the same verdict. Every extraction includes a confidence score, since reading a scanned, faxed, or photographed document is never perfect, and a coverage section is only ever returned when the certificate actually shows it — never invented.
Example
Request
POST /verify
{
"file_url": "https://example.com/certs/acme-coi.pdf",
"requirements": {
"general_liability": { "each_occurrence_min": 1000000, "additional_insured_required": true },
"workers_comp": { "required": true }
}
}
Response
{
"extracted": {
"named_insured": "Acme Contracting LLC",
"general_liability": { "each_occurrence": 1000000, "additional_insured": true },
"workers_comp": null,
"confidence": 0.9
},
"verdict": "deficient",
"gaps": ["workers_comp: required but not shown on the certificate"]
}
Key features
- Structured extraction of every standard ACORD 25 coverage section
- Automated compliant/deficient verdict against your own requirement thresholds
- Reusable, saved requirement profiles — set once per contract or property, reference on every future check
- Confidence score on every extraction, since document quality varies
- Deterministic rules engine for the verdict — never an AI guess on pass/fail
Pricing
Available pay-as-you-go per document, or on a monthly plan with a set number of documents included and overage priced per additional document beyond that — sized for occasional checks up to a high-volume vendor-onboarding workflow.
This API is advisory only, not a substitute for professional review. A “compliant” result
is not a guarantee that the underlying policy is valid, in force, or will respond to a
real claim — always check the confidence score, and treat a low-confidence extraction as
a signal to review the original document directly. Nothing here should be read as legal,
insurance, or risk-management advice. See the API’s own /terms endpoint for the full
disclosure.
