Cover Whale Webhooks API

The Webhooks API from Cover Whale — 3 operation(s) for webhooks.

Operations 6

GET /webhook-subscriptions List Webhook Subscriptions #
POST /webhook-subscriptions Create a Webhook Subscription #
GET /webhook-subscriptions/{id} Get a Webhook Subscription #
PUT /webhook-subscriptions/{id} Update a Webhook Subscription #
DELETE /webhook-subscriptions/{id} Delete a Webhook Subscription #
POST /webhook-subscriptions/{id}/rotate-secret Rotate a Subscription Secret #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/coverwhaleinsurancesolutions:coverwhaleinsurancesolutions-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.

OpenAPI Specification

coverwhaleinsurancesolutions-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Coverwhaleinsurancesolutions Webhooks API
  version: '1.0'
  contact:
    name: Cover Whale API Team
  description: 'Operations tagged Webhooks across 2 of this provider''s published API definitions: coverwhaleinsurancesolutions-openapi.json, coverwhaleinsurancesolutions-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.coverwhale.dev/v1
security:
- AccessToken: []
tags:
- name: Webhooks
paths:
  /webhook-subscriptions:
    get:
      tags:
      - Webhooks
      summary: List Webhook Subscriptions
      description: List every webhook subscription belonging to your account. The signing `secret` is never returned here — it is shown only once, when a subscription is created or its secret is rotated.
      operationId: listWebhookSubscriptions
      parameters:
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        example: application/json
      - name: AccessToken
        in: header
        required: true
        schema:
          type: string
        example: eyJraWQiOiJnRk5oTTh2RnRKWXVDVXU1S........
      responses:
        '200':
          description: Your subscriptions
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      example: 42
                    company_id:
                      type: integer
                      example: 6042
                    endpoint_url:
                      type: string
                      example: https://hooks.yourapp.com/coverwhale
                    event_types:
                      type: array
                      items:
                        type: string
                      example:
                      - submission.bind_completed
                      - submission.canceled
                    active:
                      type: boolean
                      example: true
                    secret_rotated_at:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      example: null
                    created_at:
                      type: string
                      format: date-time
                      example: '2026-07-14T12:00:00+00:00'
                    updated_at:
                      type: string
                      format: date-time
                      example: '2026-07-14T12:00:00+00:00'
    post:
      tags:
      - Webhooks
      summary: Create a Webhook Subscription
      description: 'Register an HTTPS endpoint to receive events for your account''s submissions. **The signing `secret` is returned only in this response (and on rotate-secret) — store it now; it is never shown again.** Use it to verify the signature on every delivery.


        Subscriptions are scoped to your account: you only ever receive events for submissions your company owns.'
      operationId: createWebhookSubscription
      parameters:
      - name: Content-Type
        in: header
        required: true
        schema:
          type: string
        example: application/json
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        example: application/json
      - name: AccessToken
        in: header
        required: true
        schema:
          type: string
        example: eyJraWQiOiJnRk5oTTh2RnRKWXVDVXU1S........
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - endpoint_url
              - event_types
              properties:
                endpoint_url:
                  description: Your HTTPS receiver URL. Must start with https://.
                  type: string
                  example: https://hooks.yourapp.com/coverwhale
                event_types:
                  description: One or more event types to receive. Must contain at least one.
                  type: array
                  minItems: 1
                  items:
                    type: string
                    enum:
                    - submission.quoted
                    - submission.bind_completed
                    - submission.endorsement_bound
                    - submission.renewed
                    - submission.pending_cancellation
                    - submission.canceled
                    - submission.reinstated
                    - submission.public_reply
                  example:
                  - submission.bind_completed
                  - submission.canceled
                  - submission.public_reply
      responses:
        '201':
          description: Subscription created — `secret` is included here only
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 42
                  company_id:
                    type: integer
                    example: 6042
                  endpoint_url:
                    type: string
                    example: https://hooks.yourapp.com/coverwhale
                  event_types:
                    type: array
                    items:
                      type: string
                    example:
                    - submission.bind_completed
                    - submission.canceled
                  active:
                    type: boolean
                    example: true
                  secret:
                    type: string
                    description: Signing secret — shown only here and on rotate-secret.
                    example: whsec_9f2c1e7a4b6d...
                  secret_rotated_at:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    example: null
                  created_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T12:00:00+00:00'
                  updated_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T12:00:00+00:00'
        '422':
          description: Validation error (missing/invalid endpoint_url or event_types)
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: object
                example:
                  message: The endpoint url must start with https://.
                  errors:
                    endpoint_url:
                    - The endpoint url must start with https://.
    servers:
    - url: https://api.coverwhale.dev/v1
  /webhook-subscriptions/{id}:
    get:
      tags:
      - Webhooks
      summary: Get a Webhook Subscription
      description: Retrieve one of your subscriptions by id. A subscription that does not exist, or that belongs to another account, returns `404`.
      operationId: getWebhookSubscription
      parameters:
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        example: application/json
      - name: AccessToken
        in: header
        required: true
        schema:
          type: string
        example: eyJraWQiOiJnRk5oTTh2RnRKWXVDVXU1S........
      - name: id
        in: path
        required: true
        schema:
          type: integer
        example: 42
      responses:
        '200':
          description: The subscription
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 42
                  company_id:
                    type: integer
                    example: 6042
                  endpoint_url:
                    type: string
                    example: https://hooks.yourapp.com/coverwhale
                  event_types:
                    type: array
                    items:
                      type: string
                    example:
                    - submission.bind_completed
                  active:
                    type: boolean
                    example: true
                  secret_rotated_at:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    example: null
                  created_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T12:00:00+00:00'
                  updated_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T12:00:00+00:00'
        '404':
          description: Not found (or not owned by your account)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                example:
                  error: Not found
    put:
      tags:
      - Webhooks
      summary: Update a Webhook Subscription
      description: 'Update a subscription''s endpoint URL, event types, and/or active flag. All fields are optional — send only what you want to change. Set `active: false` to pause deliveries without deleting the subscription.'
      operationId: updateWebhookSubscription
      parameters:
      - name: Content-Type
        in: header
        required: true
        schema:
          type: string
        example: application/json
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        example: application/json
      - name: AccessToken
        in: header
        required: true
        schema:
          type: string
        example: eyJraWQiOiJnRk5oTTh2RnRKWXVDVXU1S........
      - name: id
        in: path
        required: true
        schema:
          type: integer
        example: 42
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                endpoint_url:
                  type: string
                  example: https://hooks.yourapp.com/coverwhale-v2
                event_types:
                  type: array
                  minItems: 1
                  items:
                    type: string
                  example:
                  - submission.bind_completed
                  - submission.canceled
                active:
                  type: boolean
                  example: false
      responses:
        '200':
          description: Updated subscription
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 42
                  company_id:
                    type: integer
                    example: 6042
                  endpoint_url:
                    type: string
                    example: https://hooks.yourapp.com/coverwhale-v2
                  event_types:
                    type: array
                    items:
                      type: string
                    example:
                    - submission.bind_completed
                    - submission.canceled
                  active:
                    type: boolean
                    example: false
                  secret_rotated_at:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    example: null
                  created_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T12:00:00+00:00'
                  updated_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T12:05:00+00:00'
        '404':
          description: Not found (or not owned by your account)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                example:
                  error: Not found
    delete:
      tags:
      - Webhooks
      summary: Delete a Webhook Subscription
      description: Permanently delete a subscription. Deliveries stop immediately. Returns `204` with no body.
      operationId: deleteWebhookSubscription
      parameters:
      - name: AccessToken
        in: header
        required: true
        schema:
          type: string
        example: eyJraWQiOiJnRk5oTTh2RnRKWXVDVXU1S........
      - name: id
        in: path
        required: true
        schema:
          type: integer
        example: 42
      responses:
        '204':
          description: Deleted (no content)
        '404':
          description: Not found (or not owned by your account)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                example:
                  error: Not found
    servers:
    - url: https://api.coverwhale.dev/v1
  /webhook-subscriptions/{id}/rotate-secret:
    post:
      tags:
      - Webhooks
      summary: Rotate a Subscription Secret
      description: Generate a new signing secret for a subscription. **The new `secret` is returned only in this response** — store it now. The previous secret keeps verifying for a short grace window so in-flight deliveries signed with it still validate.
      operationId: rotateWebhookSubscriptionSecret
      parameters:
      - name: Accept
        in: header
        required: true
        schema:
          type: string
        example: application/json
      - name: AccessToken
        in: header
        required: true
        schema:
          type: string
        example: eyJraWQiOiJnRk5oTTh2RnRKWXVDVXU1S........
      - name: id
        in: path
        required: true
        schema:
          type: integer
        example: 42
      responses:
        '200':
          description: Secret rotated — new `secret` included here only
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 42
                  company_id:
                    type: integer
                    example: 6042
                  endpoint_url:
                    type: string
                    example: https://hooks.yourapp.com/coverwhale
                  event_types:
                    type: array
                    items:
                      type: string
                    example:
                    - submission.bind_completed
                  active:
                    type: boolean
                    example: true
                  secret:
                    type: string
                    description: The new signing secret — shown only here.
                    example: whsec_3a8f5d2c9e1b...
                  secret_rotated_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T13:00:00+00:00'
                  created_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T12:00:00+00:00'
                  updated_at:
                    type: string
                    format: date-time
                    example: '2026-07-14T13:00:00+00:00'
        '404':
          description: Not found (or not owned by your account)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                example:
                  error: Not found
    servers:
    - url: https://api.coverwhale.dev/v1
components:
  securitySchemes:
    AccessToken:
      type: apiKey
      description: JWT returned as AccessToken by the /authentication endpoint (the Cognito ID token carrying the email claim). It expires after 3600 seconds.
      name: AccessToken
      in: header
x-refined-from:
- coverwhaleinsurancesolutions-openapi.json
- coverwhaleinsurancesolutions-openapi.json