Coro Public API

The Coro Public API enables service providers and developers to build applications that integrate with the Coro Cybersecurity platform. Organized around workspaces (regular, channel, child), it covers workspace lifecycle, subscriptions, portal users, protected users and devices, device licensing, tickets, audit logs, and usage, with an HMAC-signed webhook event surface.

Documentation

Specifications

Other Resources

AsyncAPI Specification

coronet-webhooks-asyncapi.yml Raw ↑
generated: '2026-07-18'
method: generated
source: https://docs.coro.net/developer-portal/what-is-webhook
spec_type: AsyncAPI
asyncapi: 3.0.0
info:
  title: Coro Public API Webhooks
  version: 3.8.3
  description: >-
    Coro sends real-time, HMAC-signed webhook events to a subscriber-configured
    URL over HTTP POST (JSON), facilitating automation for billing and workspace
    management. This document is generated by the API Evangelist enrichment
    pipeline from Coro's published webhook documentation (event catalog, headers,
    and payload structure); it is not a Coro-published AsyncAPI file.
  externalDocs:
    url: https://docs.coro.net/developer-portal/what-is-webhook
defaultContentType: application/json
servers:
  subscriber:
    host: your-configured-endpoint
    protocol: https
    description: The subscriber-provided URL that Coro POSTs events to.
channels:
  coroWebhook:
    address: /
    description: >-
      Single subscriber endpoint receiving all Coro webhook event types.
      Security headers X-Coro-Hook-Id, X-Coro-Hook-Type and X-Coro-Signature
      (HMAC SHA-256 of X-Coro-Hook-Id with your shared secret) accompany each
      delivery.
    messages:
      workspaceCreated: { $ref: '#/components/messages/CoroEvent' }
      workspaceStatusUpdated: { $ref: '#/components/messages/CoroEvent' }
      subscriptionUpdated: { $ref: '#/components/messages/CoroEvent' }
      protectedUsersAdded: { $ref: '#/components/messages/CoroEvent' }
      protectedUsersUpdated: { $ref: '#/components/messages/CoroEvent' }
      protectedUsersDeleted: { $ref: '#/components/messages/CoroEvent' }
      protectedUsersCountUpdated: { $ref: '#/components/messages/CoroEvent' }
      protectedDevicesAdded: { $ref: '#/components/messages/CoroEvent' }
      protectedDevicesUpdated: { $ref: '#/components/messages/CoroEvent' }
      protectedDevicesDeleted: { $ref: '#/components/messages/CoroEvent' }
      protectedDevicesCountUpdated: { $ref: '#/components/messages/CoroEvent' }
operations:
  receiveCoroEvent:
    action: receive
    channel: { $ref: '#/channels/coroWebhook' }
    summary: Receive a Coro webhook event.
components:
  messages:
    CoroEvent:
      name: CoroEvent
      contentType: application/json
      headers:
        type: object
        properties:
          X-Coro-Hook-Id: { type: string, description: Unique per-event identifier. }
          X-Coro-Hook-Type: { type: string, description: The event type that triggered the webhook. }
          X-Coro-Signature: { type: string, description: HMAC SHA-256 signature of X-Coro-Hook-Id with the shared secret. }
      payload: { $ref: '#/components/schemas/EventEnvelope' }
  schemas:
    EventEnvelope:
      type: object
      properties:
        id: { type: string, description: Unique identifier of the webhook. }
        timestamp: { type: integer, description: Event timestamp in UTC milliseconds. }
        workspaceId: { type: string, description: Identifier of the workspace the webhook applies to. }
        type:
          type: string
          description: The event which triggered the webhook.
          enum:
          - workspace-created
          - workspace-status-updated
          - subscription-updated
          - protected-users-added
          - protected-users-updated
          - protected-users-deleted
          - protected-users-count-updated
          - protected-devices-added
          - protected-devices-updated
          - protected-devices-deleted
          - protected-devices-count-updated
        data:
          type: object
          description: Event-type-specific fields (e.g. protectedCount, companyName, domain, subscriptionType).
x-events:
- type: workspace-created
  trigger: A workspace is created.
- type: workspace-status-updated
  trigger: A workspace's status is updated (excluding creation).
- type: subscription-updated
  trigger: Changes are made to the workspace subscription.
- type: protected-users-added
  trigger: New protected users are added.
- type: protected-users-updated
  trigger: Existing protected users are updated or removed from protection.
- type: protected-users-deleted
  trigger: Protected users are deleted.
- type: protected-users-count-updated
  trigger: Protected users are added or deleted.
- type: protected-devices-added
  trigger: New protected devices are added.
- type: protected-devices-updated
  trigger: Existing protected devices are updated.
- type: protected-devices-deleted
  trigger: Protected devices are deleted.
- type: protected-devices-count-updated
  trigger: Protected devices are added or deleted.