Card snapshot
pingvalid.com
·
2026-07-12 05:49:29 UTC
·
7fc9104f181a3e1142cffda915caa4f4aa5c8ef22f66fc3d90d6b279ca6e8d4c
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"protocolVersion": "1.0",
"name": "EmailValidator",
"description": "Email syntax / DNS / MX / disposable / SMTP-RCPT validation with deterministic verdicts and refund-on-bounce. US/CA only.",
"url": "https://api.pingvalid.com/a2a/email-validator",
"preferredTransport": "JSONRPC",
"version": "1.0.0",
"provider": {
"organization": "pingvalid",
"url": "https://pingvalid.com"
},
"skills": [
{
"id": "validate_email",
"name": "Validate a single email",
"description": "Run the T0\u2013T7 pipeline on one email and return verdict + per-tier evidence.",
"tags": [
"email",
"validation",
"deliverability"
],
"examples": [
"Validate john@example.com",
"Is alice@disposable.tld safe to send to?"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json"
]
},
{
"id": "validate_bulk",
"name": "Validate a list of emails",
"description": "Async bulk validation. Returns a task immediately; client polls or subscribes via SSE.",
"tags": [
"email",
"validation",
"bulk",
"async"
],
"examples": [
"Validate this CSV of 12k emails",
"Clean my newsletter list of 250 contacts"
],
"inputModes": [
"application/json",
"text/csv"
],
"outputModes": [
"application/json",
"text/csv"
]
},
{
"id": "query_job",
"name": "Query a bulk job",
"description": "Fetch state and partial results for a previously-submitted bulk task.",
"tags": [
"status",
"task"
],
"examples": [],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "explain_verdict",
"name": "Explain a verdict",
"description": "Render a natural-language explanation of a previous verdict, citing the per-tier evidence.",
"tags": [
"explainability",
"verdict"
],
"examples": [
"Why is alice@disposable.tld risky?",
"Explain task req_8c9aa1 in plain English."
],
"inputModes": [
"application/json"
],
"outputModes": [
"text/plain",
"application/json"
]
}
],
"additionalInterfaces": [
{
"url": "https://api.pingvalid.com/a2a/email-validator",
"transport": "JSONRPC"
}
],
"streaming": true,
"pushNotifications": true,
"stateTransitionHistory": true,
"securitySchemes": {
"x402": {
"type": "http",
"scheme": "x402"
},
"bearer": {
"type": "http",
"scheme": "bearer"
},
"ap2": {
"type": "extension",
"url": "https://ap2-protocol.org"
}
},
"extensions": [
{
"id": "https://github.com/google-agentic-commerce/a2a-x402",
"description": "Pay for per-call paid skills with x402 USDC (Base or Solana).",
"required": false,
"params": {
"networks": [
"eip155:8453",
"solana:mainnet"
],
"asset": "USDC",
"spec_version": "v2"
}
},
{
"id": "https://github.com/google-agentic-commerce/AP2",
"description": "AP2 v0.2 mandate gating for validate_bulk (Closed Checkout Mandate).",
"required": false,
"params": {
"spec_version": "v0.2",
"mandate_types": [
"checkout"
],
"stages": [
"closed"
],
"replay_window_seconds": 300
}
}
]
}