DataLoop · AsyncAPI Specification

Dataloop Platform Events

Version

View Spec View on GitHub Artificial IntelligenceMachine-LearningData ManagementData AnnotationMLOpsComputer-VisionGenerative AIData LabelingPipelinesServerlessEnterprise SoftwareCompanyAsyncAPIEvents

AsyncAPI Specification

dataloop-platform-events.yml Raw ↑
generated: '2026-08-04'
method: searched
source: https://docs.dataloop.ai/docs/triggers
sources:
- https://docs.dataloop.ai/docs/triggers
- https://docs.dataloop.ai/docs/pipeline-trigger
- https://github.com/dataloop-ai/dtlpy/blob/master/dtlpy/entities/trigger.py
- https://github.com/dataloop-ai/dtlpy/blob/master/dtlpy/entities/webhook.py
- https://github.com/dataloop-ai/dtlpy/blob/master/dtlpy/repositories/webhooks.py
spec_type: none
asyncapi_published: false
notes: >-
  Dataloop publishes no AsyncAPI document, but it does ship two real event
  surfaces. (1) Event Triggers: a consumer registers a trigger on a resource +
  action, optionally narrowed by a DQL filter, and the platform invokes the
  consumer's deployed FaaS service or pipeline when the event occurs. (2) Webhooks:
  a first-class platform entity with its own CRUD API at /webhooks, holding an
  outbound hookUrl and httpMethod scoped to a project, callable as a pipeline node.
  This artifact records the published event and webhook surface as found in the
  provider's own documentation and first-party SDK; nothing here is fabricated.
surface:
  name: Dataloop Event Triggers and Webhooks
  delivery:
  - platform-invoked FaaS service or pipeline node (Event/Cron triggers)
  - outbound HTTP call to a registered hookUrl (Webhook entity)
  outbound_http_webhooks: true
  consumer_registers: trigger (resource + action + DQL filter + execution mode), or a webhook (name + hookUrl + httpMethod)
  managed_via: [UI Triggers tab, Python SDK dl.triggers / dl.webhooks, 'dlp triggers CLI', REST API]
webhooks:
  entity: Webhook
  api_base: https://gate.dataloop.ai/api/v1/webhooks
  operations:
  - {method: POST, path: /webhooks, description: Create a webhook}
  - {method: POST, path: /webhooks/query, description: List/query webhooks (DQL, paged)}
  - {method: GET, path: '/webhooks/{id}', description: Get a webhook}
  - {method: PATCH, path: '/webhooks/{id}', description: Update a webhook}
  - {method: DELETE, path: '/webhooks/{id}', description: Delete a webhook}
  create_payload:
    name: string
    httpMethod: 'GET | POST | DELETE | PATCH'
    hookUrl: string (consumer-supplied target URL)
    project: project id
  fields_returned: [id, name, url, hookUrl, httpMethod, project, creator, createdAt, updatedAt]
  scope: project
  signing: not documented
  retries: not documented
  source: https://github.com/dataloop-ai/dtlpy/blob/master/dtlpy/repositories/webhooks.py
  note: >-
    Derived from the first-party Python SDK, which is the authoritative client for
    this API. The webhook surface is NOT covered on the documentation site — there
    is no webhook page in the docs index (llms.txt) and no event-payload reference.
trigger_types:
- {type: Event, description: Fires when a predefined platform event occurs on a resource}
- {type: Cron, description: Scheduled time-based invocation of a service function}
resources:
- {name: Item, description: A data item (image, video, audio, text, LiDAR frame) in a dataset}
- {name: Dataset, description: A dataset within a project}
- {name: Annotation, description: An annotation on an item}
- {name: Task, description: An annotation/review task}
- {name: Assignment, description: An assignment of a task to an annotator}
- {name: ItemStatus, description: The workflow status of an item within a task}
actions:
- {name: Created}
- {name: Updated}
- {name: Deleted}
- {name: statusChanged}
- {name: Clone}
execution_modes:
- {name: Once, description: Fire the trigger only the first time an entity matches}
- {name: Always, description: Fire every time the event occurs}
filtering:
  language: DQL
  applies_to: Event triggers only
  description: >-
    A DQL filter narrows which entities fire the trigger (e.g. only items in a
    given directory, or only annotations of a given label).
in_platform_notifications:
  description: >-
    Separate from triggers, Dataloop runs a subscriber notification system that
    emits alerts on service and workflow events (service CrashLoopBackOff and
    configuration/authorization/init errors, ImagePullBackOff, Service Execution
    Failed, Pipeline Cycle Failed, Task Created/Completed/Updated/Expired,
    Assignment Created/Canceled/Updated/Expired/Priority Change, QA-flow issue
    and note events). Channels are the in-product inbox and email — not HTTP.
  docs: https://docs.dataloop.ai/docs/notification-system
x-evidence:
- {fetched: '2026-08-04', url: 'https://docs.dataloop.ai/docs/triggers.md', http_status: 200}
- {fetched: '2026-08-04', url: 'https://raw.githubusercontent.com/dataloop-ai/dtlpy/master/dtlpy/entities/trigger.py', http_status: 200}
- {fetched: '2026-08-04', url: 'https://docs.dataloop.ai/docs/notification-system.md', http_status: 200}
gap:
  summary: >-
    The event catalog is real and enumerable (6 resources x 5 actions) and there is
    a genuine outbound Webhook entity, but neither is machine-described — no
    AsyncAPI, no payload schemas for what a triggered function or webhook target
    receives, no signing scheme, no retry/delivery guarantees, and the webhook
    surface is absent from the documentation site entirely (SDK-only).
  recommended:
  - Publish an AsyncAPI 3.x document for the trigger resources/actions with message payload schemas.
  - Document the /webhooks surface, its payload, its signature scheme and its retry policy on docs.dataloop.ai.

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/dataloop-platform-events"
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.