Skip to content
LeadityDocs

Validations

Get validation

Read one validation run, with its verdict counts.

GETapi.leadity.io/v1/validations/{id}
Scope readMCP tool get_validation

Answers one validation run: its status, its counts, what it cost, and how many items landed on each verdict, every verdict listed even at zero. Poll it every 30 to 60 seconds while the run is live, never faster.

Headers

Authorizationstringrequired

Bearer, a space, then an API key: Bearer lk_api_... An MCP key is refused here with wrong_key_kind.

Path parameters

idstringrequired

The validation run's id, as create_validation and list_validations answer it.

1 to 64 characters, matches ^[A-Za-z0-9]{1,64}$.

Response

idstringrequired

The run's id.

titlestringrequired

The run's name.

kindstringrequired

phone to classify line types, email to check deliverability.

One ofphoneemail

regionstringrequired

The region a phone list was read under. US on an email run.

One ofUSGBAU

statusstringrequired

queued and running are live; completed, failed and canceled are final. A failed run bills only what was answered.

One ofqueuedrunningcompletedfailedcanceled

sourcestringrequired

Where this was started: dashboard (the Leadity app), api (an API key), mcp (an MCP key), stress or import (Leadity's own tools).

One ofdashboardapimcpstressimport

submittedintegerrequired

Lines or items submitted.

rejectedintegerrequired

Items the parser refused as not a phone number or address.

duplicatesintegerrequired

Repeats collapsed to one.

totalintegerrequired

Items checked: submitted minus rejected and duplicates.

processedintegerrequired

Items answered so far.

billableintegerrequired

Answers that cost credits so far. An answer that tells nothing costs nothing.

reservedCreditsintegerrequired

Credits held when the run was created.

creditsUsedinteger | nullrequired

Credits kept, set when the run settles; the rest was refunded. Null before.

creditsPerItemnumberrequired

The price of one billable answer.

createdAtstringrequired

When the run was created. An ISO 8601 timestamp in UTC.

startedAtstring | nullrequired

When the run started. An ISO 8601 timestamp in UTC, or null.

settledAtstring | nullrequired

When the run settled. An ISO 8601 timestamp in UTC, or null.

verdictsobject[]required

Items per verdict, in report order and zero rows included. A phone: mobile, landline, voip, toll_free, invalid, unknown. An address: ok, catch_all, unknown, disposable, invalid. An old run can carry a retired verdict after them.

Show child attributes
verdictstringrequired
countintegerrequired

Errors

Every refusal answers { error, message } with the status below. The full list is on the Errors page.

CodeStatusMeaningExtra fields
unauthorized401The API key is missing, malformed, revoked or expired.-
wrong_key_kind401This key opens the other surface: an API key works on the HTTP API, an MCP key on the MCP server.-
account_suspended403The account is suspended.-
email_not_verified403The account's email address is not verified yet.-
invalid_body400The request does not match the operation's schema.issues: The problems found, each with path (the field as a dotted path, led by the part of the request it travels in: path, query or body, such as body.items.1) and message (what is wrong there).
not_found404No such resource on this account.id: On export_scrapes: the first id that is not one of the account's scrapes.
rate_limited429Too many requests. Wait for the Retry-After seconds and try again.retryAfterSeconds: The seconds to wait, the same number as the Retry-After header.
try_again503Leadity could not answer just now. Retry in a moment, with the same Idempotency-Key on a spending call.retryAfterSeconds: When a request with this Idempotency-Key is still being processed: the seconds to wait before retrying with the same key, as the Retry-After header says.
internal_error500Something failed on our side. Nothing was charged twice.body: On the MCP server, when Leadity answered in a shape the tool does not publish: that answer as it came.