Create an API key
Sign up, open API Access, and create a key with the scopes you need. Store it in a server-side environment variable and revoke it if it is exposed.
Bearer API keys. JSON in, JSON out. Base URL https://app.dmphub.com/api/v1
Send Authorization: Bearer dmph_live_β¦. Create keys in the dashboard under API Access, up to 10 per account, and revoke any of them at any time.
Give each key only what it needs: verify:write, phone-verify:write, domain-verify:write, jobs:read, results:read, suppression-lists:write, webhooks:write and more. A missing scope returns 403.
60 requests per minute per key. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. On 429, wait for Retry-After.
Events email_verified, list_completed, list_failed. Each delivery is signed in X-DmpHub-Signature: sha256=β¦ (HMAC of the raw body) and retried up to 3 times.
One credit per check from the same wallet as the dashboard. A cached email result costs nothing. With no credits left the API returns 402 INSUFFICIENT_CREDITS.
status is valid, invalid, risky or unknown. Risky results list why in riskReasons, with a riskScore and a plain-language recommendation.
Errors return { error, code }: 400 VALIDATION_ERROR, 401 UNAUTHORIZED, 402 INSUFFICIENT_CREDITS, 403 FORBIDDEN, 429, and 500 VERIFICATION_FAILED (no credit is charged).
The live spec is at /api/v1/openapi.json with an interactive reference at /api/v1/docs. Both need your API key.
Call the API from your server, read the status and reasons, then route each record to the right workflow.
Sign up, open API Access, and create a key with the scopes you need. Store it in a server-side environment variable and revoke it if it is exposed.
Pick the endpoint for the record type. Send the bearer key and a JSON body over HTTPS.
Act on status. Treat unknown (no mailbox answer) and risky records as review items, not as confirmed valid.
DMPHUB_API_BASE is https://app.dmphub.com/api/v1. The key stays out of browser code.
curl --request POST "$DMPHUB_API_BASE/verify/email" \
--header "Authorization: Bearer $DMPHUB_API_KEY" \
--header "Content-Type: application/json" \
--data '{"email":"jane@company.com"}'Real fields of POST /api/v1/verify/email, shortened. Values depend on the address.
{
"email": "jane@company.com",
"status": "valid",
"riskReasons": [],
"domainStatus": "valid",
"riskScore": 4,
"catchAll": false,
"domainHealth": { "grade": "A", "score": 92, "spf": true, "dkim": true, "dmarc": true },
"recommendation": "Safe to send",
"creditsUsed": 1,
"verifiedAt": "2026-10-17T09:12:44.512Z"
}The full reference β every endpoint, request body, and response β is part of your account. Create a free account to open it, get your first API key, and start with 100 free credits.