Canopy Connect · AsyncAPI Specification
Canopy Webhooks
Version
View Spec
View on GitHub
Auto InsuranceCasualtyFinancial-ServicesHomeowners InsuranceInsuranceInsurance VerificationPropertyAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-05'
method: searched
source: >-
https://docs.usecanopy.com/reference/about-webhooks +
https://docs.usecanopy.com/reference/webhooks-api +
openapi/canopy-openapi.json (components.schemas.WebhookBody)
provider: Canopy Connect
providerId: canopy
asyncapi_spec_published: false
asyncapi_note: >-
Canopy Connect publishes NO AsyncAPI document. Probed 2026-09-05: no
/asyncapi.yaml or /asyncapi.json on any host, nothing in the docs index
(https://docs.usecanopy.com/llms.txt), and the GitHub org (github.com/usecanopy)
holds a single unrelated fork. The event surface is real and well documented in
prose and in the OpenAPI's WebhookBody schema, so it is captured here as a
webhook catalog rather than fabricated as an AsyncAPI document.
transport:
protocol: https
method: POST
direction: canopy -> subscriber
subscriber_endpoint: caller-supplied hookUrl
signing:
published: false
note: >-
No webhook signature scheme, shared secret, timestamp header or replay
window is documented anywhere. A subscriber has no published way to verify
that a POST to its hookUrl came from Canopy Connect. This is the largest
gap in the event surface.
retries:
published: false
note: No retry, backoff or dead-letter policy is documented.
management:
console: https://app.usecanopy.com/dashboard/settings
api:
list: get-webhooks
create: post-webhooks
update: patch-webhook
delete: delete-webhook
create_fields:
- name: hookUrl
type: string
format: uri
description: The URL that webhook requests will go to.
- name: eventTypes
type: array
description: The event types that will trigger the webhook request.
subscribable_via_api:
- COMPLETE
- POLICIES_AVAILABLE
- POLICY_AVAILABLE
- AUTH_STATUS
- VALIDATION_COMPLETE
divergence_note: >-
The POST /webhooks request body accepts only five event types, while the
docs list nine subscribable events and the WebhookBody schema enumerates
nine event_type values. MONITORING_RECONNECT, DATA_UPDATED,
SERVICING_WAITING_FOR_CONSUMER_CONFIRMATION and MONITORING_EVENTS cannot be
subscribed through the API as specified - they appear reachable only through
the dashboard. Recorded as observed; not resolved.
payload:
schema: openapi/canopy-openapi.json#/components/schemas/WebhookBody
common_fields:
- pull_id
- team_id
- widget_id
- status
- event_type
- meta_data
- account_identifier
- is_monitored
- monitoring
- data
pull_status_enum:
- STARTED
- QUEUED
- DOCUMENT_PARSING
- PROCESSING
- IDENTITY_VERIFICATION_OPTIONS
- IDENTITY_VERIFICATION
- GETTING_CONSUMERS
- PULLING_DATA
- SERVICING
- WAITING_FOR_CONSUMER_CONFIRMATION
- SUBMITTING_CONFIRMATION
- NOT_AUTHENTICATED
- INTERNAL_ERROR
- PROVIDER_ERROR
- VALIDATION_ERROR
- SUCCESS
- INCOMPLETE
follow_up: >-
Each event carries a pull_id; the subscriber calls GET
/teams/{teamId}/pulls/{pullId} (get-pull-by-id) to fetch the full record.
event_count: 10
events:
- name: AUTH_STATUS
docs: https://docs.usecanopy.com/reference/webhook-event-auth-status
description: Triggered when a Pull transitions to a new authentication state.
api_subscribable: true
- name: POLICY_AVAILABLE
docs: https://docs.usecanopy.com/reference/webhook-event-policy-available
description: Triggered when the policy data for one insurance policy becomes available.
api_subscribable: true
- name: POLICIES_AVAILABLE
docs: https://docs.usecanopy.com/reference/webhook-event-policies-available
description: Fires once per Pull when policy data for all policies is available. Does not include documents.
api_subscribable: true
- name: COMPLETE
docs: https://docs.usecanopy.com/reference/webhook-event-complete
description: Fires once per Pull, once all information including documents is available.
api_subscribable: true
- name: ERROR
docs: https://docs.usecanopy.com/reference/webhook-event-error
description: Triggered when a Pull encounters an error while running.
api_subscribable: false
- name: MONITORING_RECONNECT
docs: https://docs.usecanopy.com/reference/monitoring_reconnect
description: Triggered when a Monitoring Pull requires user input to complete authentication.
api_subscribable: false
- name: DATA_UPDATED
docs: https://docs.usecanopy.com/reference/data_updated
description: Triggered when data on a Pull is updated or added (driver added/updated, contact updated, and similar in-flow edits).
api_subscribable: false
- name: SERVICING_WAITING_FOR_CONSUMER_CONFIRMATION
docs: https://docs.usecanopy.com/reference/servicing_waiting_for_consumer_confirmation
description: Triggered when a ServicingAction has been processed and is waiting for confirmation.
api_subscribable: false
- name: MONITORING_EVENTS
docs: https://docs.usecanopy.com/reference/webhook-event-monitoring-events
description: Triggered when a Monitoring Pull has run and changes were identified against the previous Pull.
api_subscribable: false
- name: VALIDATION_COMPLETE
docs: null
description: >-
Present in the OpenAPI (WebhookBody.event_type and the POST /webhooks
eventTypes enum) with a dedicated ValidationCompleteBody schema, but not
listed on the Using Webhooks docs page.
api_subscribable: true
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/canopy-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.