Skip to main content
CoverGuard

Partner API Reference

Build on top of CoverGuard. Property insurability, carrier availability signals, and team provisioning — REST + JSON over HTTPS, authenticated with a partner API key. Available on the Team plan.

Predictable

Resource-oriented URLs, a stable { success, data } envelope.

Secure

Hashed API keys over TLS, per-key scopes, rate limits & quota.

Documented

A live OpenAPI 3.1 contract you can generate clients from.

Who can integrate

Access is gated on three independent axes — a call succeeds only when all three pass.

Quickstart

Get a key

On a Team plan, open Developer settings in-app and create an API key. The raw key (cg_live_…) is shown once — store it in your secrets manager. Send it as X-API-Key or Authorization: Bearer.

Your first request
curl https://api.coverguard.io/api/v1/me \
  -H "X-API-Key: $CG_KEY"
Response
{
  "success": true,
  "data": { "keyId": "…", "userId": "…", "scopes": ["insurability:read"] }
}

Endpoints

Base URL https://api.coverguard.io. Full schemas in the OpenAPI document.

GET/api/v1/mescope:

Introspect the calling API key (id, owner, scopes). A credential health check.

GET/api/v1/properties/:id/insurabilityscope: insurability:read

Insurability assessment derived from the property risk profile.

GET/api/v1/team/membersscope: team:read

Pull the company’s members + seat usage (HRIS / CRM / IdP sync).

POST/api/v1/team/membersscope: team:write

Provision a seat — invite a user by email with a role. PATCH/DELETE the same path to re-role or deprovision.

Webhooks

Register an HTTPS endpoint (Developer settings) to receive signed events. Every delivery carries an X-CoverGuard-Signature: t=…,v1=… header — verify HMAC-SHA256(secret, "{t}.{body}") against the raw body and reject timestamps older than 5 minutes.

EventFires when
quote_request.createdA binding quote request was created.
quote_request.updatedA quote request changed status.
deal.updatedA pipeline deal changed.
property.savedA property was saved.
carrier.exitA carrier stopped writing in a market.
subscription.payment_failedA renewal payment failed (dunning started).
subscription.payment_recoveredA previously-failed payment recovered.
team.member.invitedA user was provisioned under the company.
team.member.updatedA member’s role changed.
team.member.removedA user was deprovisioned.
Delivery payload
{
  "id": "…",                 // delivery id
  "type": "carrier.exit",
  "created": 1751430000,      // unix seconds
  "data": { /* event-specific */ }
}

Errors

Errors use the same envelope with a stable error.code and a human message. Rate-limit responses set RateLimit-* and Retry-After headers.

Status / codeMeaningRemediation
401 MISSING_API_KEYNo key on the request.Send X-API-Key or Authorization: Bearer cg_live_…
401 INVALID_API_KEYUnknown or revoked key.Check the value; rotate if compromised.
403 KEY_NOT_APPROVEDKey is pending approval or suspended.Contact CoverGuard to enable the key.
403 SUBSCRIPTION_INACTIVEAccount has no active plan with API access.Renew or upgrade to the Team plan.
403 FORBIDDEN_SCOPEKey lacks the required scope.Re-issue the key with the scope it needs.
429 RATE_LIMITEDPer-minute limit exceeded.Back off; honor the Retry-After header.
429 QUOTA_EXCEEDEDMonthly quota used up.Wait for the reset or raise the quota.

Versioning

Ready to integrate?

Create keys in-app on the Team plan, or talk to us about production partner access.

Now AI-native

From hazard report to real carrier quotes & pricing

The CoverGuard Advisor reads the risk, finds the carriers writing it, and pulls back live quotes — with every number sourced and auditable.