Request
Send one email address per request. policy_key is optional and context metadata is not accepted by the
current API contract.
POST /api/v1/validate
Authorization: Bearer $SORYXA_API_KEY
Content-Type: application/json
{
"email": "user@example.com",
"policy_key": "signup"
}
Success response
Read the decision first, then use the reason code and checks for routing and logging.
{
"success": true,
"data": {
"policy_key": "signup",
"decision": "allow",
"reason_code": "CLASSIFICATION_VALID",
"decision_message": "Email passed all validation checks",
"customer_message": null,
"decision_reasons": ["Valid email with high quality score"],
"auto_resolution": null,
"rollout": {
"mode": "enforce",
"status": "active",
"percentage": 100,
"shadow_decision": null
},
"checks": [
{
"name": "Domain MX",
"status": "passed",
"message": "Domain has valid MX records"
}
],
"base_score": 96,
"score_adjustments": [],
"score": 96,
"raw_data": {
"classification": "valid",
"score": 96
},
"upstream": {
"provider": "elvesora_api",
"state": "closed",
"status": "ok",
"status_code": 200,
"duration_ms": 148,
"failure_count": 0
}
},
"usage": {
"remaining": 249,
"limit": 250
}
}