TalentLMS Course API

The Course API from TalentLMS — 6 operation(s) for course.

Business capability
Curriculum & Programme Management BC-4700

Operations 9

GET /api/v2/courses List all courses #
POST /api/v2/courses Create course #
GET /api/v2/courses/:id Get a course #
DELETE /api/v2/courses/:id Delete a course #
POST /api/v2/enrollments Enroll user to course #
DELETE /api/v2/enrollments Delete a user from a course #
GET /api/v2/courses/:course_id/users/:user_id/goto Goto Course #
GET /api/v2/course-fields Get course custom fields #
POST /api/v2/courses/:id/purchase Purchase a course #

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/talentlms-course-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

talentlms-course-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TalentLMS Public Course API
  description: TalentLMS offers a range of API endpoints and resources designed to integrate TalentLMS with your internal systems seamlessly.
  version: 1.0.0
servers:
- url: https://your-domain.talentlms.com
security:
- apikeyAuth: []
tags:
- name: Course
paths:
  /api/v2/courses:
    get:
      tags:
      - Course
      summary: List all courses
      description: '### List all courses


        Retrieves a paginated list of all courses in your TalentLMS account. Upon a successful request, the API returns a JSON response containing course objects, including their associated metadata and configuration details. Results are delivered in a paginated format to ensure efficient handling of large datasets. You can optionally filter the response using course custom fields.'
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: getApiV2Courses
      x-operation-id-source: derived
    post:
      tags:
      - Course
      summary: Create course
      description: '### Create course


        Creates a new course in your TalentLMS account. To successfully create a course, provide the required attributes (such as the course name, code, and other relevant details) in the request body. If the request is valid, the API creates the course and returns the newly created course object, including its unique ID. This endpoint allows you to define course properties such as description, category, pricing, visibility, and other configuration settings depending on your account setup.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                name: <string>
                code: <string>
                description: <string>
                category_id: <integer>
                price: <float>
                capacity: <integer>
                level: <integer>
                time_limit: <integer>
                start_datetime: <timestamp>
                expiration_datetime: <timestamp>
                is_active: <boolean>
                custom_fields:
                  <custom_field_name>: <custom_field_value>
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: postApiV2Courses
      x-operation-id-source: derived
  /api/v2/courses/:id:
    get:
      tags:
      - Course
      summary: Get a course
      description: '### Get a course


        Retrieves the full details of a specific course. To successfully fetch a course, include the course’s unique ID as a path parameter in the request URL. If the request is valid and the course exists, the API returns detailed information about the course, including its metadata, settings, and related attributes.'
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: getApiV2Courses:id
      x-operation-id-source: derived
    delete:
      tags:
      - Course
      summary: Delete a course
      description: '### Delete a course


        Permanently deletes a specific course from your TalentLMS account. To successfully remove a course, include the course’s unique ID as a path parameter in the request URL. If the request is valid and the course exists, the API deletes the course and returns a 204 No Content response upon success.'
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: deleteApiV2Courses:id
      x-operation-id-source: derived
  /api/v2/enrollments:
    post:
      tags:
      - Course
      summary: Enroll user to course
      description: '### Enroll user to course


        Enrolls a user into a specific course. To create an enrollment, provide the user’s unique ID using the user_id attribute and the course’s unique **I**D using the course_id attribute in the request body. If the request is valid and both the user and course exist, the API creates the enrollment and returns the enrollment details in the response.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                course_id: <integer>
                user_id: <integer>
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: postApiV2Enrollments
      x-operation-id-source: derived
    delete:
      tags:
      - Course
      summary: Delete a user from a course
      description: '### Delete a user from a course


        Removes a user’s enrollment from a specific course. To successfully unenroll a user, provide the user’s unique ID using the `user_id` attribute and the course’s unique ID using the `course_id` attribute. If the request is valid and the enrollment exists, the API deletes the enrollment and removes the user’s access to the course.'
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: deleteApiV2Enrollments
      x-operation-id-source: derived
  /api/v2/courses/:course_id/users/:user_id/goto:
    get:
      tags:
      - Course
      summary: Goto Course
      description: '### Goto Course


        Provided the course & user ID a goto url is returned for accessing the course with the specified ID. Optionally, the user is able to provide the encoded redirection urls when a user logs out or completes the course.'
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      - name: logout_redirect
        in: query
        schema:
          type: string
        example: <base64_encoded_url>
      - name: course_completed_redirect
        in: query
        schema:
          type: string
        example: <base64_encoded_url>
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: getApiV2Courses:courseIdUsers:userIdGoto
      x-operation-id-source: derived
  /api/v2/course-fields:
    get:
      tags:
      - Course
      summary: Get course custom fields
      description: '### Get course custom fields


        Retrieves a paginated list of all custom fields defined for courses. Upon a successful request, the API returns a JSON response containing the available custom course fields, including their configuration details and metadata. Results are returned in a paginated format to support efficient data retrieval.'
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: getApiV2CourseFields
      x-operation-id-source: derived
  /api/v2/courses/:id/purchase:
    post:
      tags:
      - Course
      summary: Purchase a course
      description: '### Purchase a course


        Provided the course ID in the endpoint''s path and the user ID in the request''s body a course can be purchased for this specific user. Optionally, you can specify the redirection url if the purchase is cancelled or succeeded and you can also provide a coupon key.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                user_id: <integer>
                cancel_path: <string>
                return_path: <string>
                coupon: <string|null>
      parameters:
      - name: X-API-Version
        in: header
        schema:
          type: string
        example: '{{apiVersion}}'
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      responses:
        200:
          description: Successful response
          content:
            application/json: {}
      operationId: postApiV2Courses:idPurchase
      x-operation-id-source: derived
components:
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: X-API-Key