
# 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](/docs/api/management/jobs/create-user-deletion). 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`.

```json
{
  "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

```bash
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`
