Get a bulk user deletion job
GET /v1/jobs/user-deletions/{job_id} · permission users:delete
Returns the status and counters of a job created with Create a bulk user deletion job. The job is running until every user has an outcome, then completed (no failures) or completed_with_errors (at least one failed). pending is the number of users without an outcome yet; succeeded + not_found + failed + pending = total. A job that was interrupted (for example by a restart) continues on its own; poll this endpoint until status is no longer running.
Request
| Parameter | In | Required | Description |
|---|---|---|---|
job_id |
path | yes | Job id, prefixed job_. |
Response
200 OK.
{
"id": "job_01h455vb4pex5vsknk084sn02q",
"status": "completed_with_errors",
"filter": "organization",
"organization_id": "org_01h455vb4pex5vsknk084sn02q",
"total": 3,
"succeeded": 1,
"not_found": 1,
"failed": 1,
"pending": 0,
"created_at": "2026-01-15T09:30:00Z",
"completed_at": "2026-01-15T09:31:00Z"
}
Errors
Every error is an application/problem+json body with a stable code.
| HTTP | code |
When |
|---|---|---|
| 401 | unauthenticated |
The API key is missing, invalid or revoked. |
| 403 | insufficient_permissions |
The key lacks the users:delete permission. |
| 404 | not_found |
The job does not exist in this environment (or the id is malformed). |
| 429 | rate_limited |
The rate limit was exceeded; honor Retry-After. |
| 503 | service_unavailable |
A dependency is temporarily unavailable; retry later. |
Example
curl https://api.eu.keenauth.com/v1/jobs/user-deletions/job_01h455vb4pex5vsknk084sn02q \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
CLI: keenauth jobs user-deletions get job_01h455vb4pex5vsknk084sn02q