360Learning Authentication API
The Authentication API from 360Learning — 3 operation(s) for authentication.
The Authentication API from 360Learning — 3 operation(s) for authentication.
openapi: 3.1.0
info:
title: Bulk Authentication API
description: ''
version: 1.0.0
contact: {}
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
/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
/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
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
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
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
securitySchemes:
oauth2:
type: oauth2
flows: {}
description: 'Use the token from the authentication endpoint in the Authorization header.
Example: `Authorization: Bearer <token>`'