---
title: "Retrieve a bulk operation"
method: GET
path: "/api/v2/bulk/operations/{bulkOperationId}"
tags: ["Operations"]
---

# Retrieve a bulk operation

`GET /api/v2/bulk/operations/{bulkOperationId}`

> 🔑
>
> Required OAuth scope: `bulkOperations:read`.

Retrieves a bulk operation with its given ID.

## Path parameters

- `bulkOperationId` string, ObjectId, required

## Headers

- `360-api-version` 'v2.0', required

## Response `200`

Returns the requested bulk operation.

- union
  - PendingOperationDTO
    - `_id` string, ObjectId, required — The unique ID of the bulk operation.
    - `type` 'addContentsToGroupsCatalog' | 'addContentsToGroupsLibrary' | 'addSkillReviews' | 'addUsersToGroups' | 'archiveExternalCourses' | 'deleteSkills' | 'createGroups' | 'createSubscriptionEvents' | 'deleteGroups' | 'deleteJobs' | 'deleteLibraries' | 'importExternalCourses' | 'importExternalStatistics' | 'removeContentsFromGroupsCatalog' | 'removeContentsFromGroupsLibrary' | 'removeUsersFromGroups' | 'replaceJobsSkills' | 'replaceUsersJobs' | 'upsertJobs' | 'upsertLibraries' | 'upsertSkills', required — The type of bulk operation.
    - `createdAt` string, date-time, required — The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `status` 'pending', required — The status of the bulk operation.
  - QueuedOperationDTO
    - `_id` string, ObjectId, required — The unique ID of the bulk operation.
    - `type` 'addContentsToGroupsCatalog' | 'addContentsToGroupsLibrary' | 'addSkillReviews' | 'addUsersToGroups' | 'archiveExternalCourses' | 'deleteSkills' | 'createGroups' | 'createSubscriptionEvents' | 'deleteGroups' | 'deleteJobs' | 'deleteLibraries' | 'importExternalCourses' | 'importExternalStatistics' | 'removeContentsFromGroupsCatalog' | 'removeContentsFromGroupsLibrary' | 'removeUsersFromGroups' | 'replaceJobsSkills' | 'replaceUsersJobs' | 'upsertJobs' | 'upsertLibraries' | 'upsertSkills', required — The type of bulk operation.
    - `createdAt` string, date-time, required — The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `status` 'queued', required — The status of the bulk operation.
    - `queuedAt` string, date-time, required — The date and time when the bulk operation was queued, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - RunningOperationDTO
    - `_id` string, ObjectId, required — The unique ID of the bulk operation.
    - `type` 'addContentsToGroupsCatalog' | 'addContentsToGroupsLibrary' | 'addSkillReviews' | 'addUsersToGroups' | 'archiveExternalCourses' | 'deleteSkills' | 'createGroups' | 'createSubscriptionEvents' | 'deleteGroups' | 'deleteJobs' | 'deleteLibraries' | 'importExternalCourses' | 'importExternalStatistics' | 'removeContentsFromGroupsCatalog' | 'removeContentsFromGroupsLibrary' | 'removeUsersFromGroups' | 'replaceJobsSkills' | 'replaceUsersJobs' | 'upsertJobs' | 'upsertLibraries' | 'upsertSkills', required — The type of bulk operation.
    - `createdAt` string, date-time, required — The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `status` 'running', required — The status of the bulk operation.
    - `progress` OperationProgressDTO, required
      - `index` number, required — The index of the last processed element of the bulk operation.
      - `updatedAt` string, date-time, required — The date and time of the last update of the bulk operation, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `queuedAt` string, date-time, required — The date and time when the bulk operation was queued, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `startedAt` string, date-time, required — The date and time when the bulk operation started, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - CompletedOperationDTO
    - `_id` string, ObjectId, required — The unique ID of the bulk operation.
    - `type` 'addContentsToGroupsCatalog' | 'addContentsToGroupsLibrary' | 'addSkillReviews' | 'addUsersToGroups' | 'archiveExternalCourses' | 'deleteSkills' | 'createGroups' | 'createSubscriptionEvents' | 'deleteGroups' | 'deleteJobs' | 'deleteLibraries' | 'importExternalCourses' | 'importExternalStatistics' | 'removeContentsFromGroupsCatalog' | 'removeContentsFromGroupsLibrary' | 'removeUsersFromGroups' | 'replaceJobsSkills' | 'replaceUsersJobs' | 'upsertJobs' | 'upsertLibraries' | 'upsertSkills', required — The type of bulk operation.
    - `createdAt` string, date-time, required — The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `status` 'completed', required — The status of the bulk operation.
    - `progress` OperationProgressDTO, required
      - `index` number, required — The index of the last processed element of the bulk operation.
      - `updatedAt` string, date-time, required — The date and time of the last update of the bulk operation, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `queuedAt` string, date-time, required — The date and time when the bulk operation was queued, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `startedAt` string, date-time, required — The date and time when the bulk operation started, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `endedAt` string, date-time, required — The date and time when the bulk operation ended, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - ErroredOperationDTO
    - `_id` string, ObjectId, required — The unique ID of the bulk operation.
    - `type` 'addContentsToGroupsCatalog' | 'addContentsToGroupsLibrary' | 'addSkillReviews' | 'addUsersToGroups' | 'archiveExternalCourses' | 'deleteSkills' | 'createGroups' | 'createSubscriptionEvents' | 'deleteGroups' | 'deleteJobs' | 'deleteLibraries' | 'importExternalCourses' | 'importExternalStatistics' | 'removeContentsFromGroupsCatalog' | 'removeContentsFromGroupsLibrary' | 'removeUsersFromGroups' | 'replaceJobsSkills' | 'replaceUsersJobs' | 'upsertJobs' | 'upsertLibraries' | 'upsertSkills', required — The type of bulk operation.
    - `createdAt` string, date-time, required — The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `status` 'error', required — The status of the bulk operation.
    - `progress` OperationProgressDTO, required
      - `index` number, required — The index of the last processed element of the bulk operation.
      - `updatedAt` string, date-time, required — The date and time of the last update of the bulk operation, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `errorMessage` string, required — A human-readable message to help with debugging.
    - `queuedAt` string, date-time, required — The date and time when the bulk operation was queued, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `startedAt` string, date-time, required — The date and time when the bulk operation started, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
    - `endedAt` string, date-time, required — The date and time when the bulk operation ended, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).

## Other responses

- `401` — The given access token is either missing, invalid, has expired, or has been revoked.
- `403` — The given access token does not have the required OAuth scope to execute the request.
- `404` — The given `bulkOperationId` does not correspond to any existing bulk operation.
- `429` — The client has sent too many requests in a short amount of time.

---

[API](https://skmtc.dev/360learning/apis/core-api.md) · [All operations](https://skmtc.dev/360learning/apis/core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/360learning/core-api/revisions/94b691b0b72c/schema)
