Verifications
Create verification
Start a new verification challenge for an asset.
The challenge object withholds the completion material for the pairs whose code we deliver out-of-band — type: email, and type: domain with channel: email. For those the code and the magic link are absent by design: the delivery to the address IS what the proof rests on, so a caller holding the code would prove nothing by submitting it back. Every other pair keeps its code, because the caller has to relay it (phone) or publish it (the TXT record or well-known file for a domain).
post/api/v1/verifications
Request
- Base URL: https://api.proof.holdings
- URL: https://api.proof.holdings/api/v1/verifications
- Auth: HTTP bearer
Request body
Example request
{
"profile_id": "507f1f77bcf86cd799439011",
"type": "phone",
"channel": "whatsapp",
"identifier": "+37069199199",
"external_user_id": "user_12345",
"client_metadata": {
"source": "onboarding"
},
"dns_provider": {
"provider": "cloudflare",
"region": "us-east-1"
},
"email_prefix": "admin",
"proof_expiry_days": 90
}Response
Verification created
Example response
{
"id": "507f1f77bcf86cd799439011",
"type": "phone",
"channel": "whatsapp",
"identifier": "+3706***9199",
"status": "pending",
"challenge": {
"code": "X7K2M9",
"instruction": "Send X7K2M9 to +370 691 99199 on WhatsApp",
"expires_at": "2026-02-13T12:00:00Z"
},
"proof": {
"token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_at": "2025-01-15T12:00:00Z",
"confidence": "high"
},
"max_attempts": 5
}Changes
No recorded changes to this operation across all 1 revision of this API.