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.

Proof Holdingsproof.holdings · verification api
AttestationNº 2026-0066
subjectteam.management
methodAuto · registrar API
challengerecord written via the connected provider
resolved14:11:04 UTC
verdictOwnership provenwe detected the provider and wrote the record
Mintedph_ctl_2a7f…c43 · ES256
How It Works

Automatic verification in three steps

§ 01

Name Your Provider

Send your DNS provider and its API credentials with the verification request. 54 providers supported.

§ 02

We Write the Record

Proof Holdings creates the TXT record in your zone using those credentials — nothing for you to paste.

§ 03

Automatic Verification

Call the check endpoint: we look up the record, mint the proof token, and remove the record afterwards.

Auto-Verify Technology

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.

54 providers supported

Ownership Verification

In the dashboard: if the domain exists in your connected account, that proves control — even if DNS is managed elsewhere.

Works with registrars

Supported Providers Include

cloudflare logo
Cloudflare
godaddy logo
GoDaddy
aws logo
AWS
google cloud logo
Google Cloud
azure logo
Azure
digitalocean logo
DigitalOcean
namecheap logo
Namecheap
vercel logo
Vercel
netlify logo
Netlify
ovh logo
OVH
hetzner logo
Hetzner
porkbun logo
Porkbun

+ 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"
  }
}