360Learning Authentication API
The Authentication API from 360Learning — 3 operation(s) for authentication.
The Authentication API from 360Learning — 3 operation(s) for authentication.
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-authentication-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 Authentication API
version: 1.0.0
contact: {}
description: 'Operations tagged Authentication across 2 of this provider''s published API definitions: 360learning-core-api.json, 360learning-plugin-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: Authentication
paths:
/api/v2/oauth2/token:
post:
description: Creates an OAuth access token using the `client_id` and `client_secret` credentials. Once generated, the token authorizes access to the 360Learning API v2 resources for 1 hour. It must be included in the `Authorization` header of each request as `Bearer`.
operationId: v2.authentication.GenerateTokenController_generateToken
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateTokenBody'
responses:
'200':
description: Returns an access token that must be used in all your calls to public API endpoints.
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateTokenResponse'
'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:
- title: invalid request
description: The given request is malformed. Ensure your payload contains only the expected properties with the correct types.
type: object
properties:
error:
type: string
enum:
- invalid_request
required:
- error
- title: unsupported grant type
description: The given grant type is unsupported. Make sure `grant_type` is set to `client_credentials`.
type: object
properties:
error:
type: string
enum:
- unsupported_grant_type
required:
- error
- title: non existing user
description: The given `user_id` does not correspond to any non-deleted user.
type: object
properties:
error:
type: string
enum:
- non_existing_user
required:
- error
'401':
description: Your credentials pair `client_id`/`client_secret` is invalid.
content:
application/json:
schema:
type: object
properties:
error:
type: string
enum:
- invalid_client
required:
- error
summary: Create an access token
tags:
- Authentication
servers:
- url: https://app.360learning.com
description: Production EU
- url: https://app.us.360learning.com
description: Production US
/api/v2/plugin/oauth2/backend-token:
post:
description: Creates an OAuth access token using the `client_id` and `client_secret` credentials. Once generated, the token authorizes access to the 360Learning API v2 resources for 1 hour. It must be included in the `Authorization` header of each request as `Bearer`.
operationId: v2.authentication.GeneratePluginBackendTokenController_generatePluginBackendToken
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GeneratePluginBackendTokenBody'
responses:
'200':
description: Returns an access token that must be used in all your calls to public API endpoints. This access token can only be used inside a plugin.
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateTokenResponse'
'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:
- title: invalid request
description: The given request is malformed. Ensure your payload contains only the expected properties with the correct types.
type: object
properties:
error:
type: string
enum:
- invalid_request
required:
- error
- title: non existing company
description: No company can be found for the given `company_id`.
type: object
properties:
error:
type: string
enum:
- non_existing_company
required:
- error
'401':
description: The authorization cannot be granted.
content:
application/json:
schema:
oneOf:
- title: incomplete plugin setup
description: There is no plugin configured for the given company
type: object
properties:
error:
type: string
enum:
- incomplete_plugin_setup
required:
- error
- title: invalid client
description: Your credentials pair `client_id`/`client_secret` is invalid.
type: object
properties:
error:
type: string
enum:
- invalid_client
required:
- error
summary: Create an access token for plugin (backend)
tags:
- Authentication
servers:
- url: https://app.360learning.com
description: Production EU
- url: https://app.us.360learning.com
description: Production US
/api/v2/plugin/oauth2/client-token:
post:
description: Creates an OAuth access token. Once generated, the token authorizes access to the 360Learning API v2 resources for 1 hour. It must be included in the `Authorization` header of each request as `Bearer`.
operationId: v2.authentication.GeneratePluginClientTokenController_generatePluginClientToken
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GeneratePluginClientTokenBody'
responses:
'200':
description: Returns an access token that must be used in all your calls to public API endpoints. This access token can only be used inside a plugin.
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateTokenResponse'
'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:
- title: invalid request
description: The given request is malformed. Ensure your payload contains only the expected properties with the correct types.
type: object
properties:
error:
type: string
enum:
- invalid_request
required:
- error
- title: invalid token
description: The given temporary token is either malformed or expired
type: object
properties:
error:
type: string
enum:
- invalid_token
required:
- error
'401':
description: The authorization cannot be granted.
content:
application/json:
schema:
oneOf:
- title: incomplete plugin setup
description: There is no plugin configured for the given token
type: object
properties:
error:
type: string
enum:
- incomplete_plugin_setup
required:
- error
summary: Create an access token for plugin (client)
tags:
- Authentication
servers:
- url: https://app.360learning.com
description: Production EU
- url: https://app.us.360learning.com
description: Production US
components:
schemas:
GenerateTokenBody:
title: Generate Token Body
type: object
properties:
grant_type:
type: string
enum:
- client_credentials
description: The method to request the OAuth access token. The only supported grant type is `client_credentials`.
client_id:
type: string
description: The client ID generated in the API v2 admin panel of your platform.
example: 00918d22e6cd4dd0bf751241853ec641
client_secret:
type: string
description: The client secret associated with your client ID.
example: de831d67bd4245bc950867ca49b5ebc2
user_id:
type: string
format: ObjectId
pattern: ^[a-fA-F0-9]{24}$
description: The unique ID of a user. This ID is mandatory for user authorized endpoints.
example: 624c5526204fc7207e603123
company_id:
type: string
format: ObjectId
pattern: ^[a-fA-F0-9]{24}$
description: The unique ID of a company. This ID is mandatory for service authorized endpoints.
required:
- grant_type
- client_id
- client_secret
GenerateTokenResponse:
title: Generate Token Response
type: object
properties:
token_type:
type: string
enum:
- Bearer
description: The type of the access token.
access_token:
type: string
description: The access token that authorizes access to API resources. Include the access token in the `Authorization` header of every request as `Bearer`.
example: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJBaU1qdVNjLW9pelVYWHBZVnZWbDZrSklsb2FNWDNWYzZSdWp4QnlPX05FIn0
expires_in:
type: number
description: The lifetime of the access token in seconds.
example: '3600'
required:
- token_type
- access_token
- expires_in
GeneratePluginClientTokenBody:
title: Generate Plugin Client Token Body
type: object
properties:
temporaryToken:
type: string
description: The temporary token from an authed user on a core product.
example: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55SWQiOiI1NGJkMDA1MTQyYzM5YWJhMDFmZmQ5OTkiLCJ1c2VySWQiOiI1ODIwNTJkNGU4NTg5ZjBkYTgwY2MyYzciLCJwbHVnaW5JZCI6IjY4NjcwNmQwZjVhOGEwNDFhNzU2MjUyNiIsInR5cGUiOiJwbHVnaW5FeGNoYW5nZSIsImlhdCI6MTc1Mzk1NTkyNSwiZXhwIjoxNzUzOTU1OTg1fQ.roxrGR6Z2utCcVa_vqatYLmMMy82fKcs1KxAdwWJNXuoW7dJTv8ODjZA0FsMI26kRlgTkJl3CDMn6eCqEmrgKw
required:
- temporaryToken
GeneratePluginBackendTokenBody:
title: Generate Plugin Backend Token Body
type: object
properties:
client_id:
type: string
description: The client ID associated to the plugin for this environment.
example: 00918d22e6cd4dd0bf751241853ec641
client_secret:
type: string
description: The client secret associated to the plugin for this environment.
example: de831d67bd4245bc950867ca49b5ebc2
company_id:
type: string
description: The unique ID of the company.
format: ObjectId
example: 507f1f77bcf86cd799439011
pattern: ^[a-fA-F0-9]{24}$
plugin_id:
type: string
description: The unique ID of the plugin.
format: ObjectId
example: 507f1f77bcf86cd799439011
pattern: ^[a-fA-F0-9]{24}$
required:
- client_id
- client_secret
- company_id
- plugin_id
securitySchemes:
oauth2:
type: oauth2
flows: {}
description: 'Use the token from the authentication endpoint in the Authorization header.
Example: `Authorization: Bearer <token>`'
x-refined-from:
- 360learning-core-api.json
- 360learning-plugin-api.json