Free retry of failed bulk items API

Run the items of a paid bulk request that failed for technical reasons again, free of charge.

POST https://api.probekit.dev/v1/mail/check/bulk/retry

Updated 2026-10-09

How it works

  • A paid bulk response where items failed for a technical reason holds a retry_token.
  • Only those items are run again, with the domains from the paid request. The input cannot be changed.
  • Nothing is charged, and no payment header is needed.
  • A token is valid for 15 minutes from when it was issued and for 3 attempts in total.
  • Each attempt that still has failed items returns a new token, and the old one stops working.
  • Lost the answer? Send the paid bulk request again with the same PAYMENT-SIGNATURE: the redelivered result holds the newest token, and earlier tokens stop working.
  • An attempt answered with 503 does not count.

Input

A JSON body with content-type: application/json. Send it without a PAYMENT-SIGNATURE header.

NameTypeRequiredLimitsDescription
retry_tokenstringYes16–256 charactersThe retry_token from a paid bulk response with failed items.

Example request

curl -i -X POST https://api.probekit.dev/v1/mail/check/bulk/retry \
  -H 'content-type: application/json' \
  -d '{"retry_token": "Ex4mpleRetryToken_doNotUse-0123456789abcdef"}'

Response

The same format as the Bulk mail configuration check API, with the retried items merged in at their original positions.

FieldMeaning
request_idUnique id of this request. Quote it when you contact support.
endpointThe endpoint id, mail.check.bulk.
schema_versionVersion of the response format, currently 1.0.
checked_atWhen the batch ran (ISO 8601, UTC).
resultsOne entry per input item, in input order: index, item, and either result (a full check response) or error.
item_countNumber of items in the request.
succeeded_countItems with a result.
failed_countItems that failed for a technical reason.
retry_tokenPresent when items failed for a technical reason: send it to /v1/mail/check/bulk/retry within 15 minutes to run those items again free of charge (3 attempts in total). Otherwise null.

Status codes

StatusCodeMeaningDo you pay?
200—The bulk result with the retried items merged in. It holds a new retry_token while items still fail and attempts are left.No
400bad_requestThe request is malformed.No
404retry_token_invalidThe retry token is unknown, or a newer token from a later attempt has replaced it.No
409retry_in_progressAn attempt with this retry token is already running.No
410retry_token_expiredThe retry token has expired (15 minutes after it was issued), all 3 attempts are used, or no failed items are left.No
413payload_too_largeThe body is larger than 64 KB.No
422invalid_inputThe body is invalid: it must hold only retry_token.No
429rate_limitedToo many requests from this IP address.No
503busy, unavailableThe service is busy or temporarily unavailable. The attempt does not count.No

Errors use the common error body. See errors.