Estimate email validation
contacts:read scope (or a broader one that includes it).
Synchronous probe — given a list of contact IDs, returns counts, credit sufficiency, and any blockers that would prevent scheduling. Useful for showing pre-flight feedback in the UI before triggering /schedule.
Authorizations
Authenticate every request with a Bearer token. Pass your Reply API key in the
Authorization header:
Get your API key from the Reply dashboard: Settings → API Key.
Body
Request body shared by both /estimate and /schedule. Specifies the contacts to validate and an optional partial-credit acceptance flag.
Contact IDs to validate. Must be non-empty, contain at most 10000 items, and every value must be a positive integer.
1 - 10000 elementsx >= 1When true, the schedule call proceeds with min(eligibleCount, creditsAvailable) contacts even if available credits are below the eligible count. When false (default), insufficient credits become a NotEnoughCredits blocker on /estimate and a 400 on /schedule.
Response
Estimate computed successfully
Synchronous probe result returned by /v3/email-validations/estimate. Reports counts, credit sufficiency, and a list of blockers that prevent scheduling.
Total number of contact IDs in the request body
Number of contacts the user can actually validate (filtered by team scope and validation-status)
Email-validation credits currently available to the team
Credits that would be charged if the eligible contacts are scheduled in full
Whether creditsAvailable >= creditsRequired
Whether the request can be scheduled — equivalent to blockers.length == 0
Reasons why scheduling is currently blocked. Empty when canSchedule is true.
Blocker codes returned by /v3/email-validations/estimate in the blockers array. The presence of any blocker (with acceptPartial = false) means the request cannot be scheduled.
1, 2, 3, 4, 5, 6