Drillster · AsyncAPI Specification

Drillster Push Webhooks

Version

View Spec View on GitHub AssessmentsEducationLearningQuizzesTrainingLMSAdaptive LearningCompliance TrainingWebhooksAsyncAPIEvents

AsyncAPI Specification

drillster-push-webhooks.yml Raw ↑
generated: '2026-09-06'
method: searched
source: https://www.drillster.com/info/developers/api/push/
spec_type: none
spec_note: >-
  Drillster publishes NO AsyncAPI document. It does publish a complete, dated webhook
  catalogue — the "Event notification service" — across four documentation pages. This file
  captures that catalogue verbatim; it is a Webhooks artifact, not an AsyncAPI one, and no
  AsyncAPI pointer is emitted.
surface:
  name: Drillster Event Notification Service
  kind: outbound webhooks
  docs: https://www.drillster.com/info/developers/api/push/
  catalog_docs: https://www.drillster.com/info/developers/api/push/events/
  setup_docs: https://www.drillster.com/info/developers/api/push/webhooks/
  retry_docs: https://www.drillster.com/info/developers/api/push/retry/
  console: https://www.drillster.com/console/manage/webhooks
transport:
  protocol: HTTPS only, port 443
  tls_requirement: >-
    A valid, publicly signed certificate is required on the receiver. Self-signed certificates
    are not supported. Plaintext HTTP (port 80) is not supported.
  methods: [POST, PUT]
  payload: JSON object in the request body
  url_template:
    description: >-
      The target URL is the receiver's configured base URL with the event fields optionally
      appended. Which fields go in the path is a per-webhook setting ("Add fields to URL path").
    modes:
      - mode: POST with body
        description: neither checkbox set — POST to the base URL with eventType and eventId in the body
      - mode: POST with event type in the URL
        description: event type appended to the URL, eventId in the body
      - mode: PUT with event type and event ID in the URL
        description: both fields appended to the URL, request sent as PUT
    example: POST https://www.example.com/drillster/GROUP_MEMBER_ADDED
authentication:
  scheme: HTTP Basic (optional)
  note: >-
    Username and password are configured per webhook. Credential changes take effect
    immediately, including for messages already queued for retry. There is no signed-payload
    (HMAC) verification mechanism documented.
events:
  - type: ACCOUNT_CREATED
    description: Fires when a new user account is created.
    queue: (ungrouped)
  - type: GROUP_MEMBER_ADDED
    description: Fires as and when a member has been added to a group.
    queue: Group member added/removed
  - type: GROUP_MEMBER_REMOVED
    description: Fires as and when a member has been removed from a group.
    queue: Group member added/removed
  - type: OBJECTIVE_BECAME_OK
    description: Fires when a group member becomes compliant with an objective.
    queue: Objective became OK/not OK
  - type: OBJECTIVE_BECAME_NOK
    description: Fires when a group member is no longer compliant with an objective.
    queue: Objective became OK/not OK
  - type: QUESTION_ANSWERED
    description: Fires as and when a drill question is answered by a group member.
    queue: Question answered
    volume_note: >-
      Documented as a high-volume event type; the receiver must keep up or the 7-day queue
      will discard messages.
  - type: TEST_COMPLETED
    description: Fires as and when a test is completed.
    queue: Test completed
event_count: 7
deprecated_events:
  documented: true
  names_published: false
  note: >-
    The events page states deprecated event types exist and are no longer available for new
    integrations, but does not name them.
payload:
  fields:
    - name: eventType
      description: the notification type; may be carried in the URL path instead of the body
    - name: eventId
      description: unique identifier for the event; may be carried in the URL path instead of the body
    - name: event timestamp
      description: >-
        Documented as part of the payload and offered as the way a receiver detects a delivery
        backlog.
  schema_published: false
  schema_note: >-
    Per-event payload object models are referenced ("event types and object models will
    continue to be offered until an upgrade path has been communicated") but no field-level
    schema per event type is published on the public pages, and no AsyncAPI/JSON Schema is
    offered. Not reconstructed here.
delivery_semantics:
  guarantee: at-least-once
  ordering: >-
    Guaranteed in-order within a queue. A blocked event blocks every subsequent event in the
    same queue until it succeeds or ages out.
  acknowledgement:
    expected_status: any 2xx (typically 200 or 204)
    timeout_seconds: 30
    note: >-
      A non-2xx response, no response, or a late response all count as failed delivery. A valid
      receiver TLS certificate is also required for an acknowledgement to count.
  retry:
    enabled: true
    duration_days: 7
    backoff: increasing delay between attempts
    on_expiry: the event is discarded and the queue advances
  duplicates:
    possible: true
    note: >-
      Explicitly documented — a lost acknowledgement causes redelivery, so receivers must be
      idempotent. Drillster cannot resend an already-acknowledged event on request.
  pause_supported: false
  outage_notification: false
subscription_model:
  creation: >-
    Webhooks are created in the user console under Manage > Webhooks by a user with the
    appropriate permission; there is no API endpoint for creating a webhook.
  connection_scopes: [organization, group]
  note: >-
    A webhook must be created AND connected before it fires. Connecting to both the
    organization and specific groups can duplicate notifications. Deleting a webhook stops
    delivery immediately, including messages already queued for retry; disconnecting or
    changing event types affects only new messages.

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/drillster-push-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.