360Learning Groups API
The Groups API from 360Learning — 12 operation(s) for groups.
The Groups API from 360Learning — 12 operation(s) for groups.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/360learning-groups-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: 360learning Groups API
version: 1.0.0
contact: {}
description: 'Operations tagged Groups across 2 of this provider''s published API definitions: 360learning-bulk-api.json, 360learning-core-api.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.360learning.com
description: Production EU
- url: https://app.us.360learning.com
description: Production US
tags:
- name: Groups
paths:
/api/v2/bulk/groups/catalog:
post:
description: '> 🔑
>
> Required OAuth scope: `groups:bulk`.
> 🚜
>
> This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).
Adds multiple content IDs of a given type to groups catalogs. Upon submission, the request is queued. Use the provided URL in the response header to check the status of the bulk operation.'
operationId: v2.bulk.groups.AddContentsToGroupsCatalogController_addContentsToGroupsCatalog
parameters:
- name: 360-api-version
in: header
description: The version of the API.
required: true
schema:
type: string
enum:
- v2.0
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddContentsToGroupsCatalogBody'
responses:
'202':
description: The operation is successfully created.
headers:
Location:
schema:
type: string
description: 'The URL to retrieve the status of the bulk operation using its operation ID.
Example: `https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011`.'
example: https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011
'400':
description: The server cannot or will not process the request due to something that is perceived to be a client error.
content:
application/json:
schema:
oneOf:
- description: The input of a bulk operation must be an array.
title: Invalid Input
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalidInput
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
- description: The input array size exceeds the maximum limit of 20,000 objects.
title: Input Too Long
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- inputTooLong
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'401':
description: The given access token is either missing, invalid, has expired, or has been revoked.
content:
application/json:
schema:
type: object
properties:
error:
type: string
enum:
- invalid_token
required:
- error
'403':
description: The given access token does not have the required OAuth scope to execute the request.
content:
application/json:
schema:
title: Invalid Scope
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalid_scope
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'429':
description: The maximum number of concurrent operations has been reached.
content:
application/json:
schema:
title: Bulk Operations Concurrency Limit Reached
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkOperationsConcurrencyLimitReached
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'503':
description: The bulk API is temporarily disabled.
content:
application/json:
schema:
title: Bulk API Disabled
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkAPIDisabled
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
security:
- oauth2: []
summary: Add content to catalogs
tags:
- Groups
delete:
description: '> 🔑
>
> Required OAuth scope: `groups:bulk`.
> 🚜
>
> This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).
Removes multiple content IDs of a given type from groups catalogs. Upon submission, the request is queued. Use the provided URL in the response header to check the status of the bulk operation.'
operationId: v2.bulk.groups.RemoveContentsFromGroupsCatalogController_removeContentsFromGroupsCatalog
parameters:
- name: 360-api-version
in: header
description: The version of the API.
required: true
schema:
type: string
enum:
- v2.0
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveContentsFromGroupsCatalogBody'
responses:
'202':
description: The operation is successfully created.
headers:
Location:
schema:
type: string
description: 'The URL to retrieve the status of the bulk operation using its operation ID.
Example: `https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011`.'
example: https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011
'400':
description: The server cannot or will not process the request due to something that is perceived to be a client error.
content:
application/json:
schema:
oneOf:
- description: The input of a bulk operation must be an array.
title: Invalid Input
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalidInput
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
- description: The input array size exceeds the maximum limit of 20,000 objects.
title: Input Too Long
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- inputTooLong
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'401':
description: The given access token is either missing, invalid, has expired, or has been revoked.
content:
application/json:
schema:
type: object
properties:
error:
type: string
enum:
- invalid_token
required:
- error
'403':
description: The given access token does not have the required OAuth scope to execute the request.
content:
application/json:
schema:
title: Invalid Scope
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalid_scope
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'429':
description: The maximum number of concurrent operations has been reached.
content:
application/json:
schema:
title: Bulk Operations Concurrency Limit Reached
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkOperationsConcurrencyLimitReached
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'503':
description: The bulk API is temporarily disabled.
content:
application/json:
schema:
title: Bulk API Disabled
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkAPIDisabled
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
security:
- oauth2: []
summary: Remove content from catalogs
tags:
- Groups
servers:
- url: https://app.360learning.com
description: Production EU
- url: https://app.us.360learning.com
description: Production US
/api/v2/bulk/groups/library:
post:
description: '> 🔑
>
> Required OAuth scope: `groups:bulk`.
> 🚜
>
> This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).
Adds multiple content IDs of a given type to groups libraries. Upon submission, the request is queued. Use the provided URL in the response header to check the status of the bulk operation.'
operationId: v2.bulk.groups.AddContentsToGroupsLibraryController_addContentsToGroupsLibrary
parameters:
- name: 360-api-version
in: header
description: The version of the API.
required: true
schema:
type: string
enum:
- v2.0
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddContentsToGroupsLibraryBody'
responses:
'202':
description: The operation is successfully created.
headers:
Location:
schema:
type: string
description: 'The URL to retrieve the status of the bulk operation using its operation ID.
Example: `https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011`.'
example: https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011
'400':
description: The server cannot or will not process the request due to something that is perceived to be a client error.
content:
application/json:
schema:
oneOf:
- description: The input of a bulk operation must be an array.
title: Invalid Input
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalidInput
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
- description: The input array size exceeds the maximum limit of 20,000 objects.
title: Input Too Long
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- inputTooLong
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'401':
description: The given access token is either missing, invalid, has expired, or has been revoked.
content:
application/json:
schema:
type: object
properties:
error:
type: string
enum:
- invalid_token
required:
- error
'403':
description: The given access token does not have the required OAuth scope to execute the request.
content:
application/json:
schema:
title: Invalid Scope
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalid_scope
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'429':
description: The maximum number of concurrent operations has been reached.
content:
application/json:
schema:
title: Bulk Operations Concurrency Limit Reached
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkOperationsConcurrencyLimitReached
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'503':
description: The bulk API is temporarily disabled.
content:
application/json:
schema:
title: Bulk API Disabled
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkAPIDisabled
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
security:
- oauth2: []
summary: Add content to libraries
tags:
- Groups
delete:
description: '> 🔑
>
> Required OAuth scope: `groups:bulk`.
> 🚜
>
> This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).
Removes multiple content IDs of a given type from groups libraries. Upon submission, the request is queued. Use the provided URL in the response header to check the status of the bulk operation.'
operationId: v2.bulk.groups.RemoveContentsFromGroupsLibraryController_removeContentsFromGroupsLibrary
parameters:
- name: 360-api-version
in: header
description: The version of the API.
required: true
schema:
type: string
enum:
- v2.0
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveContentsFromGroupsLibraryBody'
responses:
'202':
description: The operation is successfully created.
headers:
Location:
schema:
type: string
description: 'The URL to retrieve the status of the bulk operation using its operation ID.
Example: `https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011`.'
example: https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011
'400':
description: The server cannot or will not process the request due to something that is perceived to be a client error.
content:
application/json:
schema:
oneOf:
- description: The input of a bulk operation must be an array.
title: Invalid Input
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalidInput
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
- description: The input array size exceeds the maximum limit of 20,000 objects.
title: Input Too Long
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- inputTooLong
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'401':
description: The given access token is either missing, invalid, has expired, or has been revoked.
content:
application/json:
schema:
type: object
properties:
error:
type: string
enum:
- invalid_token
required:
- error
'403':
description: The given access token does not have the required OAuth scope to execute the request.
content:
application/json:
schema:
title: Invalid Scope
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalid_scope
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'429':
description: The maximum number of concurrent operations has been reached.
content:
application/json:
schema:
title: Bulk Operations Concurrency Limit Reached
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkOperationsConcurrencyLimitReached
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'503':
description: The bulk API is temporarily disabled.
content:
application/json:
schema:
title: Bulk API Disabled
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkAPIDisabled
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
security:
- oauth2: []
summary: Remove content from libraries
tags:
- Groups
servers:
- url: https://app.360learning.com
description: Production EU
- url: https://app.us.360learning.com
description: Production US
/api/v2/bulk/groups/memberships:
post:
description: '> 🔑
>
> Required OAuth scope: `groups:bulk`.
> 🚜
>
> This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).
Adds multiple users to groups with their assigned roles. Upon submission, the request is queued. Use the provided URL in the response header to check the status of the bulk operation.'
operationId: v2.bulk.groups.AddUsersToGroupsController_addUsersToGroups
parameters:
- name: 360-api-version
in: header
description: The version of the API.
required: true
schema:
type: string
enum:
- v2.0
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddUsersToGroupsBody'
responses:
'202':
description: The operation is successfully created.
headers:
Location:
schema:
type: string
description: 'The URL to retrieve the status of the bulk operation using its operation ID.
Example: `https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011`.'
example: https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011
'400':
description: The server cannot or will not process the request due to something that is perceived to be a client error.
content:
application/json:
schema:
oneOf:
- description: The input of a bulk operation must be an array.
title: Invalid Input
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalidInput
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
- description: The input array size exceeds the maximum limit of 20,000 objects.
title: Input Too Long
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- inputTooLong
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'401':
description: The given access token is either missing, invalid, has expired, or has been revoked.
content:
application/json:
schema:
type: object
properties:
error:
type: string
enum:
- invalid_token
required:
- error
'403':
description: The given access token does not have the required OAuth scope to execute the request.
content:
application/json:
schema:
title: Invalid Scope
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invalid_scope
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'429':
description: The maximum number of concurrent operations has been reached.
content:
application/json:
schema:
title: Bulk Operations Concurrency Limit Reached
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkOperationsConcurrencyLimitReached
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
'503':
description: The bulk API is temporarily disabled.
content:
application/json:
schema:
title: Bulk API Disabled
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bulkAPIDisabled
message:
type: string
example: A human-readable message to help with debugging.
required:
- code
- message
required:
- error
security:
- oauth2: []
summary: Add users to groups
tags:
- Groups
delete:
description: '> 🔑
>
> Required OAuth scope: `groups:bulk`.
> 🚜
>
> This endpoint processes up to 20,000 objects asynchronously. For more information, see the [Bulk operations guide](doc:bulk-operations-1).
Removes multiple users from groups with their assigned roles. The `learner` role is also removed from all public subgroups down to first private excluded. Upon submission, the request is queued. Use the provided URL in the response header to check the status of the bulk operation.'
operationId: v2.bulk.groups.RemoveUsersFromGroupsController_removeUsersFromGroups
parameters:
- name: 360-api-version
in: header
description: The version of the API.
required: true
schema:
type: string
enum:
- v2.0
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveUsersFromGroupsBody'
responses:
'202':
description: The operation is successfully created.
headers:
Location:
schema:
type: string
description: 'The URL to retrieve the status of the bulk operation using its operation ID.
Example: `https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd799439011`.'
example: https://app.360learning.com/api/v2/bulk/operations/507f1f77bcf86cd79
# --- truncated at 32 KB (131 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/360learning/refs/heads/main/openapi/360learning-groups-api-openapi.yml