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

## Request

- Base URL: `https://app.360learning.com`
- URL: `https://app.360learning.com/api/v2/bulk/operations/{bulkOperationId}`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `/api/v2/oauth2/token`

> 🔑
>
> 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/bulk-api.md) - [All operations](https://skmtc.dev/360learning/apis/bulk-api/llms.txt) - [OpenAPI document](https://skmtc.dev/360learning/apis/bulk-api/revisions/375f9b05b456?raw)
