uChecker · AsyncAPI Specification
Uchecker Webhooks
Version
View Spec
View on GitHub
email-verificationemailsmtpdnsdeliverabilitymxspfdkimdmarcmcpagent-nativedata-qualityAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-16'
method: derived
source: >-
openapi/_original/uchecker-openapi.json — SingleValidationDto.webhook_url,
BulkValidationDto.webhook_url and websocket_id; info.description task-lifecycle section
docs: https://api.uchecker.net/docs
name: uChecker event surface
asyncapi_published: false
asyncapi_probe:
- url: https://api.uchecker.net/asyncapi.yaml
note: not served — api.uchecker.net returns text/plain 404 for unknown paths
- url: https://api.uchecker.net/asyncapi.json
note: not served
note: >-
uChecker ships NO AsyncAPI document. It does document a real push surface — a
caller-supplied webhook URL invoked on task completion, plus a WebSocket progress channel
used by its own dashboard — so this artifact captures the webhook catalog and the
apis.yml pointer emitted is `Webhooks`, not `AsyncAPI`. Nothing here is fabricated: the
payload shape is deliberately left unspecified because the provider does not publish it.
delivery:
style: caller-registered callback URL, per task
registration: >-
Set `webhook_url` in the request body of POST /api/v1/validate/single or
POST /api/v1/validate/bulk. There is no webhook management API, no endpoint registry,
and no per-account default — the URL is supplied on every submission.
transport: HTTPS POST
expected_response: HTTP 200
reachability_requirement: >-
"URL должен быть доступен извне и возвращать HTTP 200" — the URL must be publicly
reachable and must answer 200.
retries: not documented
timeout: not documented
ordering: not documented
signing:
supported: false
note: >-
No HMAC signature, no shared secret, no timestamp header and no source IP range are
documented. A receiver has no published way to verify that a callback came from
uChecker, which means the callback URL itself is the only secret. Treat it as a
bearer capability and verify results out-of-band via GET /api/v1/tasks/{taskId}.
event_count: 1
events:
- name: validation.task.completed
naming: derived label — uChecker does not name or type its callback
trigger: >-
A validation task finishes. For POST /validate/single the callback fires when the
single address has been checked; for POST /validate/bulk when the whole task
completes.
payload: >-
"POST-запрос с результатами всех проверок" — the results of all checks. The precise
body schema is NOT published; there is no component schema for the callback payload
and no `webhooks:` or `callbacks:` block in the OpenAPI 3.0 document. Expect the
task's results, but confirm against a live delivery before depending on field names.
payload_schema: unpublished
related_pull_operations:
- ValidationController_getTask
- ValidationController_getTaskResults
- ValidationController_getTaskAnalytics
failure_event: >-
Whether a task that ends in the `failed` state (-1) also fires the callback is not
documented.
streaming:
- name: task progress
transport: websocket
registration_field: websocket_id (BulkValidationDto)
documented: false
note: >-
`websocket_id` is described as "WebSocket ID для получения обновлений в реальном
времени. Используется веб-интерфейсом для отображения прогресса без polling" — used by
the web interface to show progress without polling. The WebSocket URL, handshake,
message schema and auth are NOT published, so this channel is effectively internal.
Recorded because it exists in the public contract, not because a third party can use it.
polling_fallback:
operation: ValidationController_getTask
path: GET /api/v1/tasks/{taskId}
recommended_interval: 5-10 seconds
progress_field: progress_percent
note: >-
The provider recommends polling as the default and the webhook as the alternative
("Или укажите `webhook_url`…"). For agents, uChecker's own MCP guidance is to run
validation as a background task rather than a synchronous step.
gaps_for_the_provider:
- Publish the callback payload schema (an OpenAPI 3.1 `webhooks:` block, or an AsyncAPI 3.0 document).
- Sign callbacks (HMAC over the body with a per-account secret) so receivers can verify origin.
- Document retry and timeout behaviour, and whether `failed` tasks fire a callback.
- Document the WebSocket channel, or drop websocket_id from the public contract.