360Learning Groups API

The Groups API from 360Learning — 12 operation(s) for groups.

Operations 19

POST /api/v2/bulk/groups/catalog Add content to catalogs #
DELETE /api/v2/bulk/groups/catalog Remove content from catalogs #
POST /api/v2/bulk/groups/library Add content to libraries #
DELETE /api/v2/bulk/groups/library Remove content from libraries #
POST /api/v2/bulk/groups/memberships Add users to groups #
DELETE /api/v2/bulk/groups/memberships Remove users from groups #
DELETE /api/v2/bulk/groups Delete groups #
POST /api/v2/groups/{groupId}/{role}/{userId} Add a user's role #
DELETE /api/v2/groups/{groupId}/{role}/{userId} Remove a user's role #
POST /api/v2/groups Create a group #
GET /api/v2/groups List all groups #
DELETE /api/v2/groups/{groupId} Delete a group #
GET /api/v2/groups/{groupId} Retrieve a group #
PATCH /api/v2/groups/{groupId} Edit a group #
GET /api/v2/groups/{groupId}/roles List all memberships in a group #
GET /api/v2/groups/{groupId}/catalog/{contentType}-ids List all content IDs in a group catalog #
GET /api/v2/groups/{groupId}/library/{contentType}-ids List all content IDs in a group library #
POST /api/v2/groups/{groupId}/media Upload group media #
PATCH /api/v2/groups/{groupId}/branding Set group branding #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/360learning-groups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

360learning-groups-api-openapi.yml Raw ↑
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