Get a verification's results

GET/api/v1/verifications/{verification}/results
Requires anorganization API keywith the scopeverification:read

One answer per address. result is what to do: send to valid, risky and unknown; mail to invalid is refused. reason says what was found, never how — an address known not to exist reads the same however we learned it.

risky with reason inbox_full (and the flag full) means the mailbox has no space: mail will bounce until the person clears it. Once Bounce protection is on for your account, marketing to that contact is held for 7 days (email_full_until on the contact), then checked again, free.

q and result narrow the answers before they are paged, so a page is a page of the matches: ?q=techies.africa finds everyone on that domain, ?result=invalid,risky keeps only those two answers, and offset then counts the matches rather than the whole run.

Add format=csv to download the whole verification as a CSV file instead.

Parameters

NameInTypeDescription
verificationrequiredpathstringThe verification identifier.
offsetqueryintegerSkip this many answers. Counted over the matches when q or result is sent. Default 0.
limitqueryintegerAnswers to return, 1–5,000. Default 1,000.
qquerystringKeep the addresses containing this text, ignoring case. A domain finds everyone on it.
resultquerystringKeep only these answers, comma separated: valid, invalid, risky, unknown, pending. An answer we do not know is a 422.
formatquerystringcsv for the whole verification as a download. q and result do not narrow it.

Request

GET/api/v1/verifications/{verification}/results
curl -X GET 'https://app.mailyte.com/api/v1/verifications/01JBT8XQ2M9WYC3K4F6R7S8T9V/results' \
  -H 'Authorization: Bearer mk_live_YOUR_API_KEY'
The key names its own organization, so no X-Organization-ID header is needed.

Response

Success.

  • dataarray<object>
    • objectstringverification_result
    • emailstring
    • resultstringvalid | invalid | risky | unknown | pending

      The answer. Mail to invalid is refused; risky and unknown are sent as normal; pending is still being checked. risky with reason inbox_full means the mailbox has no space: while Bounce protection is on, marketing to this contact waits 7 days and the address is checked again.

    • reasonstringmailbox_exists | mailbox_does_not_exist | domain_cannot_receive_mail | misspelt_domain | invalid_syntax | disposable_address | accepts_all_addresses | role_address | provider_does_not_confirm | inbox_full | could_not_confirm | checking
    • flagsarray<string>

      role: info@, sales@ and the like. disposable: a throwaway inbox (marketing to it is not sent). catch_all: the domain accepts any address. full: the mailbox has no space.

    • suggestionstring or null

      For misspelt_domain only: the address as it was probably meant (ada@gmail.con gives ada@gmail.com). Null for every other answer.

Returned inside the standard envelope.

Errors

StatusWhen
401The API key is missing, unknown, revoked or expired. All four answer identically, on purpose: distinguishing them would confirm which keys exist.
403The key is valid but may not do this: it lacks the required scope, its IP allowlist does not include you, or this endpoint does not accept API keys.
404No such resource in this organization.
422The request was understood but the values were not acceptable.
429Too many requests, or the organization has spent its sending allowance. `Retry-After` says how long to wait.

Every status, with what causes it and what to do, is on the error reference.