ActiveFence · AsyncAPI Specification

Activefence Webhooks

Version

View Spec View on GitHub ai-safetyai-securitytrust-and-safetycontent-moderationguardrailsred-teamingllm-securityprompt-injectionai-governancerisk-scoringuser-generated-contentchild-safetyAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-06'
method: searched
source: https://docs.activefence.com/openapi.json
docs: https://docs.activefence.com/index.html
spec_type: Webhooks
asyncapi_published: false
asyncapi_note: >-
  Alice publishes NO AsyncAPI document. Probed /asyncapi.yaml and /asyncapi.json on
  api.alice.io and docs.activefence.com and searched the GitHub org — nothing. But the provider
  does document a genuine event surface in two distinct shapes, captured below as a webhook
  catalog rather than fabricated into a spec.
summary: >-
  Two separate outbound-HTTP mechanisms. (1) Async analysis callbacks: six content/entity
  endpoints accept the request, return an acknowledgement immediately, and later POST the
  completed risk analysis to a customer-supplied callback_url. (2) Action webhooks: customer-
  defined outbound calls fired from the ActiveOS Moderation View by a human clicking a button,
  or automatically by an Automated Workflow — these call the CUSTOMER's own API or a third-party
  system to enact a moderation decision (ban a user, delete a post, etc.).
surfaces:
- id: analysis-callbacks
  kind: provider-to-customer callback
  direction: outbound from Alice
  transport: HTTP POST
  trigger: completion of an asynchronous content analysis
  registration:
    method: per-request field
    field: callback_url
    description: Callback URL where Alice will post the response to.
  authentication:
    method: named key injected into the callback request
    field: callback_key_name
    description: >-
      Names a key defined in the platform's Auth Management section. That key is added to the
      header or query params of the callback request Alice sends, so the receiving endpoint can
      authenticate the caller.
    signature_scheme: none_documented
    note: >-
      This is a shared-secret injection, not a signed payload. No HMAC signature header, no
      timestamp, and no replay-protection scheme is documented.
  correlation:
    field: response_id
    description: >-
      All callbacks for a request carry the same response_id that was returned in the
      synchronous acknowledgement, so the receiver can join results back to the submission.
  suppression_rule: >-
    The acknowledgement returns analyzed_violations[] — the violation types that will be
    analyzed for this item given the account configuration and media type. If that array comes
    back EMPTY, no callback will be sent at all. A receiver must not block waiting on one.
  producing_operations:
  - {operationId: post-content-text, path: /v3/content/text, media: text}
  - {operationId: post-content-image, path: /v3/content/image, media: image}
  - {operationId: post-content-video, path: /v3/content/video, media: video}
  - {operationId: post-content-audio, path: /v3/content/audio, media: audio}
  - {operationId: post-users-upsert, path: /v3/users/upsert, media: user entity}
  - {operationId: post-collections, path: '/v3/collections/{collection_type}', media: collection entity}
  payload:
    description: >-
      The completed analysis for the submitted item — the same result body the synchronous
      endpoints return inline.
    fields:
    - {name: response_id, type: string, description: correlation id, matches the acknowledgement}
    - {name: entity_id, type: string}
    - {name: entity_type, type: string}
    - {name: violation_types, type: array, description: per-violation results}
    - {name: risk_score, type: number, range: 0.1-1, description: probability the item violates a given violation type; only returned above 0.1}
    - {name: confidence, type: number}
    - {name: language, type: string}
    - {name: analysis_description, type: string}
    - {name: detection_type, type: string, enum: [manual], description: present only when a human reviewer made the decision}
    - {name: custom_fields, type: object}
    schema_source: openapi/activefence-alice-api-openapi.yml#/components/schemas
  expected_latency:
    note: driven by media type, see conventions/activefence-conventions.yml latency_benchmarks
    worst_case: audio-30min p90 ~20 minutes
- id: action-webhooks
  kind: provider-to-customer action trigger
  direction: outbound from Alice
  transport: HTTP
  trigger:
  - manual — a moderator clicks a button in the ActiveOS Moderation View
  - automatic — an Automated Workflow defined by the customer fires
  purpose: >-
    Enact a moderation decision on the customer's own platform or on a third-party system. The
    customer must expose an API that performs the action; Alice calls it.
  registration:
    method: configured in the Alice platform console
    self_service: true
  catalog_published: false
  catalog_note: >-
    Alice documents the mechanism but publishes no catalog of event names, payload schemas or
    retry semantics for action webhooks. Those are customer-defined per deployment.
event_catalog_completeness:
  named_event_types: 0
  note: >-
    Neither surface publishes discrete named event types. Analysis callbacks are keyed by the
    violation types in violation_types[] — the vocabulary below is the closest thing to an
    event taxonomy the provider publishes.
violation_type_vocabulary:
  source: 'https://docs.activefence.com/index.html (WonderFence + General tag descriptions)'
  security:
  - {key: prompt_attack.impersonation, label: Impersonation}
  - {key: prompt_attack.system_prompt_override, label: System Prompt Override}
  - {key: prompt_injection.general_encoding, label: Encoding}
  - {key: prompt_injection.general, label: Prompt Injection}
  privacy:
  - {key: privacy_violation.PII, label: PII}
  safety:
  - {key: abusive_or_harmful.harassment_or_bullying, label: Harassment or Bullying}
  - {key: abusive_or_harmful.profanity, label: Profanity}
  - {key: abusive_or_harmful.hate_speech, label: Hate Speech}
  - {key: abusive_or_harmful.child_abuse, label: Child Abuse}
  - {key: self_harm.general, label: Suicide and Self-harm}
  - {key: adult_content.general, label: Adult Content}
  - {key: unauthorised_sales.weapons, label: Weapons}
  - {key: deny_topics.legal_advice, label: Legal Advice}
  - {key: deny_topics.financial_advice, label: Financial Advice}
probes:
- {url: 'https://api.alice.io/asyncapi.json', http_status: 404}
- {url: 'https://api.alice.io/asyncapi.yaml', http_status: 404}
- {url: 'https://docs.activefence.com/asyncapi.json', http_status: 403}
- {source: 'https://api.github.com/orgs/ActiveFence/repos', http_status: 200, finding: '3 public repos, none containing an AsyncAPI document'}