Osano · AsyncAPI Specification

Osano Webhooks

Version

View Spec View on GitHub CompanyData PrivacyConsent ManagementComplianceGDPRCCPACookie ConsentSubject RightsData MappingVendor RiskPrivacy AssessmentsGovernance Risk ComplianceAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-26'
method: searched
source: >-
  https://developers.osano.com/webhooks/, https://developers.osano.com/webhooks/variables,
  https://developers.osano.com/webhooks/functions, https://developers.osano.com/webhooks/workflows,
  https://developers.osano.com/webhooks/guides/ and https://github.com/osano/webhook-sample-apps
asyncapi_spec: null
asyncapi_probes:
- url: https://developers.osano.com/asyncapi.yaml
  status: 404
- url: https://developers.osano.com/asyncapi.json
  status: 404
- url: https://api.osano.com/asyncapi.json
  status: 404
- url: https://developers.osano.com/redocusaurus/webhooks.yaml
  status: 404
note: >-
  Osano ships a real outbound webhook surface but publishes NO AsyncAPI (or any other machine-
  readable event contract) for it. The event catalog below is transcribed from the provider's own
  Variables page, which is the only place the triggers are enumerated; the payload is
  customer-authored — Osano webhooks are template-driven, where the body is a string the customer
  writes and Osano substitutes {{variable}} tokens into. That is why there is no fixed schema to
  capture: the payload shape is per-customer, not per-event. Consequently the variables below ARE
  the event contract, and they are the only machine-relevant detail Osano publishes. Osano also
  ships a sample consumer (github.com/osano/webhook-sample-apps: sample-dsar-handler,
  sample-gladly-webhook-integration).
delivery:
  direction: outbound
  transport: http
  configuration: >-
    Configured in the Osano app per event and endpoint. Headers and body content area are
    customer-defined; string substitution of {{variables}} applies to the BODY only — the docs state
    the supported hashing functions work "in the body of a webhook (content area), not the headers".
  payload_schema: customer-defined-template
  signature_verification: not-documented
  retry_policy: not-documented
  note: >-
    No signing secret, HMAC signature header, replay-protection or retry/backoff policy is
    documented. A consumer cannot verify that a delivery came from Osano beyond whatever static
    header the customer configures. The hashing functions offered for the body are the closest thing
    published.
events:
- domain: Data Mapping
  docs: https://developers.osano.com/webhooks/variables
  events:
  - name: Data Store Sync Error
    variables: [dataStoreName, discoProviderName, errorMessage, errorReceived, errorType]
  - name: SSO Applications Discovered
    variables: [numAppsDiscovered, ssoConnectionId, ssoConnectionName, ssoProviderName]
  - name: SSO Applications Deactivated
    variables: [numAppsDeactivated, ssoConnectionId, ssoConnectionName, ssoProviderName]
- domain: Subject Rights
  docs: https://developers.osano.com/webhooks/variables
  events:
  - name: Email Verified
    variables: [dsarId, created, due, dsarDetails.email, dsarDetails.given-name, dsarDetails.family-name, dsarDetails.phone-number, dsaRequestSource, dsaRequestType, dsarFormName]
  - name: Identity Verified
    variables: [dsarId, created, due, dsarDetails.email, dsaRequestType, dsarFormName]
  - name: Action Items Completed
    variables: [dsarId, completedBy, completedTimestamp, actionItemStatus]
  - name: Request Rejected
    variables: [dsarId, rejectedBy, rejectedTimestamp, dsarDetails.email]
  - name: Request Completed
    variables: [dsarId, completedBy, completedTimestamp, dsarDetails.email]
  - name: New Message from Requester
    variables: [dsarId, messageSent, messageText, hasAttachment]
  - name: Action Item Generated
    variables: [dsarActionItemId, dsarId, requestedAction, dsarDue, actionItemStatus, completionType]
  - name: Manual Action Item Generated
    variables: [dsarActionItemId, dsarId, taskName, requestedAction, dsarDue, actionItemStatus]
variables_reference:
  docs: https://developers.osano.com/webhooks/variables
  note: >-
    Variables are documented per domain, not strictly per event; the per-event `variables` lists
    above assign each documented variable to the event(s) whose description names it. Where an
    assignment is inferred rather than stated, it is a semantic mapping of the provider's own
    variable descriptions — no variable name here is invented.
  all_variables:
    data_mapping: [dataStoreName, discoProviderName, errorMessage, errorReceived, errorType, numAppsDiscovered, numAppsDeactivated, ssoConnectionId, ssoConnectionName, ssoProviderName]
    subject_rights: [completedBy, completedTimestamp, created, 'dsarDetails.email', 'dsarDetails.given-name', 'dsarDetails.family-name', 'dsarDetails.phone-number', due, dsaRequestSource, dsaRequestType, dsarFormName, dsarId, hasAttachment, messageSent, messageText, rejectedBy, rejectedTimestamp, requestedAction, actionItemStatus, dsarDue, dsarActionItemId, completionType, taskName]
pii_warning: >-
  Subject Rights webhook variables carry direct identifiers of data subjects — email, given name,
  family name and phone number. A consumer endpoint receiving these is processing personal data.
closing_the_loop:
  note: >-
    The documented automation pattern pairs a webhook with the REST API: react to an action-item
    event, then PATCH /v1/subject-rights/requests/{dsarId} with x-osano-api-key and a body such as
    {"status": "COMPLETED"} (quoted from the Workflows guide).
  operations: [updateDsar, updateDsarActionItem, addDsarSummary, postPortalMessage]

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.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/osano-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 email required.

A second provider on the same verified email joins the account you already have.