uChecker · OpenAPI Overlay 1.0.0
API Evangelist enhancement overlay for uChecker Валидация Email API
6 actions
6 updates
update
extends
openapi/uchecker-email-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for uChecker's API. It is a proposal applied on top of the contract, not a document uChecker publishes.
What the actions change
x-idempotencyx-asyncx-api-evangelistx-meteringx-rate-limitsx-error-envelopex-languagex-callback
Targets 6
$.info
$.paths['/api/v1/validate/bulk'].post
$.paths['/api/v1/validate/single'].post
$.components.schemas.BulkValidationDto.properties.webhook_url
$.components.schemas.ValidationResultItem
$.components.schemas.PaginationInfo
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancement overlay for uChecker Валидация Email API
version: 1.0.0
extends: openapi/uchecker-email-api-openapi.yml
x-generated: '2026-08-16'
x-method: generated
x-source: >-
openapi/uchecker-email-api-openapi.yml, conventions/uchecker-conventions.yml,
errors/uchecker-problem-types.yml, asyncapi/uchecker-webhooks.yml,
rate-limits/uchecker-rate-limits.yml, mcp/uchecker-tool-crosswalk.yml
x-rationale: >-
uChecker's published contract carries its integration guidance in one large Russian-language
info.description blob: the credit model, the "no rate limits" statement, the task lifecycle,
the error envelope and the polling advice are all prose. None of it is attached to the
operations it governs, and none of it is in English. This overlay attaches the runtime
semantics to the operations themselves, in machine-readable extensions, WITHOUT mutating the
original spec. It also records the two contract defects found during enrichment (single
validation has no idempotency key; the callback payload is unspecified) so a consumer sees
them at the point of use. Apply with any Overlay 1.0.0 processor.
actions:
- target: $.info
description: Record the runtime conventions of the API as structured extensions.
update:
x-api-evangelist:
conventions: conventions/uchecker-conventions.yml
errors: errors/uchecker-problem-types.yml
webhooks: asyncapi/uchecker-webhooks.yml
rate-limits: rate-limits/uchecker-rate-limits.yml
data-model: data-model/uchecker-data-model.yml
mcp: mcp/uchecker-mcp.yml
x-metering:
model: prepaid-credits
unit: 1 email = 1 credit
charged_at: enqueue
not_charged: syntactically invalid addresses in a bulk submission
balance_operation: ValidationController_getBalance
exhaustion_status: 403
x-rate-limits:
published: false
provider_statement: There are no rate limits; throughput is governed by credit balance.
response_headers: []
status_on_exhaustion: 403
x-error-envelope:
format: custom-json
rfc9457: false
fields:
success: boolean, always false
error: human-readable string, Russian
machine_readable_code: false
x-language:
contract: ru
error_messages: ru
note: >-
The reference, the tag names and every error string are Russian. An English
product surface exists at https://uchecker.net/en but the contract is not
translated.
- target: $.paths['/api/v1/validate/bulk'].post
description: Surface the idempotency contract on the one operation that supports it.
update:
x-idempotency:
supported: true
mechanism: request-body-field
field: idempotency_key
header: null
behavior: >-
A repeat submission carrying an existing key returns the current status of the
existing task instead of creating a new one and re-charging credits.
retention: undocumented
x-async:
pattern: submit-then-poll
poll_operation: ValidationController_getTask
recommended_interval_seconds: 5-10
push_alternative: webhook_url
- target: $.paths['/api/v1/validate/single'].post
description: >-
Flag that the single-address endpoint has no idempotency protection — a retry
double-charges.
update:
x-idempotency:
supported: false
note: >-
Unlike POST /api/v1/validate/bulk, this operation accepts no idempotency_key. A
network-level retry creates a second task and debits a second credit. Prefer the
bulk endpoint with a single-element array when a retry is possible.
x-async:
pattern: submit-then-poll
poll_operation: ValidationController_getTask
push_alternative: webhook_url
- target: $.components.schemas.BulkValidationDto.properties.webhook_url
description: Record that the callback payload is unspecified and unsigned.
update:
x-callback:
payload_schema: unpublished
signing: none
retries: undocumented
expected_response: 200
note: >-
uChecker POSTs results to this URL on completion but publishes no payload schema
and no signature. Verify the outcome out-of-band via
ValidationController_getTaskResults before acting on a callback.
- target: $.components.schemas.ValidationResultItem
description: Record the contract/marketing discrepancy in the result model.
update:
x-result-model:
contract: binary — validation_result is good | bad
marketing: >-
The website and dashboard describe Good / Bad / Risk archives and a five-way read
(deliverable, undeliverable, catch-all, disposable, role-based) plus an "unknown"
bucket.
guidance: >-
Build against the contract. Expect good|bad from the API and treat the richer
taxonomy as a dashboard-only presentation until the provider documents it.
- target: $.components.schemas.PaginationInfo
description: Name the pagination style explicitly.
update:
x-pagination:
style: page-number
params: [page, limit]
limit_min: 1
limit_max: 100
limit_default: 10
cursor: false
Work with this as data
Every overlay 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 openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay 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.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/uchecker-email-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.