Auto-Verify
Connect your DNS provider or registrar for automatic domain verification. We detect your provider, verify ownership, and create records automatically - no manual setup required.
Automatic verification in three steps
Name Your Provider
Send your DNS provider and its API credentials with the verification request. 54 providers supported.
We Write the Record
Proof Holdings creates the TXT record in your zone using those credentials — nothing for you to paste.
Automatic Verification
Call the check endpoint: we look up the record, mint the proof token, and remove the record afterwards.
Two Ways to Verify
Connect your DNS provider or registrar. We verify automatically - either by creating a TXT record or by confirming domain ownership in your account.
TXT Record Creation
For 54 providers, we automatically create the verification TXT record. No manual DNS editing required.
Ownership Verification
In the dashboard: if the domain exists in your connected account, that proves control — even if DNS is managed elsewhere.
Supported Providers Include
+ 92 more providers we recognise from nameservers (you add the TXT record by hand)
API Integration
Programmatic auto-verification
1. Create Verification Request
# One call: we write the TXT record for you.
# channel="auto" REQUIRES dns_provider credentials in this request —
# without them the API answers 400 missing_dns_provider.
curl -X POST https://api.proof.holdings/api/v1/verifications \
-H "Authorization: Bearer pk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "domain",
"channel": "auto",
"identifier": "example.com",
"dns_provider": {
"provider": "cloudflare",
"api_token": "CLOUDFLARE_API_TOKEN"
}
}'2. Check the record
# Step 2: ask us to check the record we wrote (three checks per verification).
curl -X POST https://api.proof.holdings/api/v1/verifications/VERIFICATION_ID/verify \
-H "Authorization: Bearer pk_live_YOUR_API_KEY"Response Example
{
"id": "507f1f77bcf86cd799439011",
"status": "verified",
"attempts": 1,
"max_attempts": 3,
"verified_at": "2026-03-15T10:55:00Z",
"verified_data": {
"domain": "example.com",
"record_found": "_proof.example.com",
"record_value": "proof-verify=A7B3X9",
"all_records": ["proof-verify=A7B3X9"]
},
"proof": {
"token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_at": "2027-03-15T10:55:00Z"
}
}