Job Records
Paginated list of every individual validation result for a job.
Endpoint
Method: GET
Path: /email-validation/jobs/{job_id}/records/
Full URL: https://app.ecoreservice.com/backend/api/v1/email-validation/jobs/{job_id}/records/
Auth: Authorization: Token YOUR_API_TOKEN — see Authentication
Query Parameters
| Param | Allowed values | Purpose |
|---|---|---|
status | Pending, Valid, Invalid, Unknown, Error, or All | Filter records by status |
page | integer ≥ 1 | Page number. Default = 1. |
page_size | integer 1–1000 | Items per page. Default = 100. |
Example Request
curl -X GET \
"https://app.ecoreservice.com/backend/api/v1/email-validation/jobs/42/records/?status=Valid&page=1&page_size=100" \
-H "Authorization: Token YOUR_API_TOKEN"
Successful Response — 200 OK
{
"count": 250,
"total_pages": 3,
"current_page": 1,
"next": "...",
"previous": null,
"results": [
{
"id": 9881,
"ec_id": null,
"email": "jane@acme.com",
"status": "Valid",
"validator_used": "ZeroBounce",
"is_cached": false,
"error_message": null,
"processed_at": "2026-05-06T11:42:31.412Z"
}
]
}
Per-record Fields
| Field | Type | Meaning |
|---|---|---|
id | integer | Record's primary key |
ec_id | string | null | Optional caller-supplied external identifier (preserved from CSV column ec_id if present) |
email | string | The email address |
status | string | See Status Values |
validator_used | string | null | Which validator stage produced the answer — see Validator Values |
is_cached | boolean | true if the answer came from the validator's 30-day cache |
error_message | string | null | Populated when status == "Error" (validator unreachable, batch HTTP failure, etc.) |
processed_at | datetime | null | When the record received its final status |
Status Values
| Value | Source |
|---|---|
Pending | Default, before processing |
Valid | Validator returned Valid |
Invalid | Validator returned Invalid |
Unknown | Validator returned No Email (catch-all or undeliverable) |
Error | The batch this record was in failed; check error_message |
Validator Values
validator_used reflects which stage of the validation cascade gave the final answer.
| Value | Notes |
|---|---|
ZeroBounce | First external validator; most addresses resolve here |
RevenueBase | Second opinion when ZeroBounce returns Catch-All / Unknown |
SMTP | Direct deliverability check; last resort |
null | Record has not been processed yet, or the batch errored |
The boolean is_cached is true whenever the answer came from a 30-day cache — independent of which validator produced the original answer.
Error Responses
| HTTP | Body | When |
|---|---|---|
| 401 | {"detail": "Invalid token."} | Missing or invalid token |
| 404 | {"detail": "Not found."} | job_id doesn't exist or belongs to another user |
| 400 | {"error": "Invalid status filter."} | status value not recognized |
See Error Codes for the full list.