Quote a list check
Send the emails of your own list (up to 5,000 rows, 1,000 different addresses) and get the most the check can cost. Addresses checked recently are free. Nothing is charged and nothing is checked yet. Show maximum_charge to the user and start only after their yes.
| Cost | What it does | Key scopes |
|---|---|---|
| Free | Reads only | argorant:verify_emails |
Authorization
BearerAuth Your API key from app.argorant.com/profile, sent as Authorization: Bearer <key>. A connector sign-in token (ag_mcp_...) works the same way.
In: header
Header Parameters
Any unique text up to 128 characters. A retry with the same key and the same body within 24 hours returns the first answer (with the header Idempotent-Replayed: true) instead of doing the work twice. The same key with another body answers 409 idempotency_conflict.
length <= 128Your own id for this request, 8 to 64 letters, digits, dot, dash or underscore. Returned as X-Request-Id; one is made for you when you send none.
^[A-Za-z0-9._-]{8,64}$Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://app.argorant.com/api/v1/verifications/quote" \ -H "Idempotency-Key: 6f1c2e7a-run-42" \ -H "Content-Type: application/json" \ -d '{ "emails": [ "jane.doe@acme.com", "sam@globex.io", "info@initech.example" ] }'{ "quote_id": "4b1d2c3e4f5a6b7c8d9e0f1a2b3c4d5e", "expires_at": "2026-10-07T12:15:00+00:00", "unique_addresses": 3, "to_check": 2, "checked_recently_free": 1, "duplicates_removed": 0, "invalid_rows": [], "maximum_charge": 1, "credits_per_check": 0.5, "approval_required": true, "next_step": "Show the maximum charge to the user and start only after their yes: POST /api/v1/verifications with quote_id and approved_maximum_charge. Addresses checked recently are free."}