input) imports, and ESP auto-cleanses — each tagged with a source (and source_integration for ESP jobs). Filter with ?source= and/or ?status=. Each job carries a results verdict summary (passed/undeliverable/risky/unknown), but ONLY once status is completed — counts accrue during processing and are null until the job finishes (cancelled jobs have partial counts, also null). Always paginated with the universal cursor envelope (default per_page 25, max 100); the cursor is opaque — clients MUST NOT parse it. Use GET /v1/jobs/{id} for the full per-reason breakdown.curl --location 'https://api.mailfloss.com/v1/jobs?per_page=&cursor=&source=&status=' \
--header 'Authorization: Bearer <token>'{
"data": [
{
"id": "job_a1b2c3d4e5f6g7h8",
"status": "completed",
"source": "api",
"source_integration": null,
"created_at": "2026-06-19T10:15:00Z",
"finished_at": "2026-06-19T10:18:30Z",
"results": {
"total": 1000,
"processed": 1000,
"passed": 850,
"failed": 150,
"undeliverable": 100,
"risky": 40,
"unknown": 10
}
},
{
"id": "job_9z8y7x6w5v4u3t2s",
"status": "processing",
"source": "csv",
"source_integration": null,
"created_at": "2026-06-20T13:45:00Z",
"finished_at": null,
"results": null
}
],
"pagination": {
"next_cursor": "eyJfaWQiOiI2NjI3YWYxMmM0NWUxYWIwMDAxZWMyMzQ1In0",
"has_more": true
}
}