Yoobic Courses API

When a plan is assigned to a user it creates a course. ### Fields | Field | Type | Required | Readonly | OrderBy | Description | |----------------------|:--------------:|:--------:|:--------:|:-------:|---------------------------| |`course_id` | string | x | x | | Unique id of the course | |`plan_id` | string | x | | | Unique id of the plan | |`user_id` | string | x | | | Unique id of the user | |`assignment_date` | date | | x | | Date when the user has been assigned to the plan | |`earned_points` | number | | x | | Number of points earned by the user for this course | |`start_date` | date | | x | | Date when the user finished their first lesson of the course | |`duration` | number | | x | | Minutes spent on this course | |`finished_date` | date | | x | | Date when the user completed the course | |`due_date` | date | | x | | Due date of the course | |`created_date` | date | | x | | Creation date | |`updated_date` | date | | x | x | Last update date | #### Course IDs Below, you can find detailed descriptions of some of the course-related IDs mentioned above: | ID | Description | |----------------|-------------| | `plan_id` | The course object that Admins can see in the Course Manager. This is the ID of that course. | | `course_id` | The course object that a learner can see in their Courses menu. It's unique for each learner, meaning that even if two learners see the same course in their courses menu, the course they see has a different `course_id`. | | `lesson_id` | The ID of a completed lesson. This ID is unique for each learner, meaning that if two learners completed the same lesson, their completed lesson has a different `lesson_id`. | | `campaign_id` | The lesson object linked to a course. This is the ID of the lesson. |

Business capability
Learning & Development Management BC-300.40

Operations 4

GET /public/api/courses/{id} Get #
GET /public/api/courses?filter={filter} Get All #
GET /public/api/courses/count?where={where} Count #
GET /public/api/courses/export?type={type}&filter={filter} Export #

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/yoobic-courses-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

yoobic-courses-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: YOOBIC Public Courses API
  version: ''
  description: Welcome to the **YOOBIC Public API** documentation.
servers:
- url: https://<base_url>/
tags:
- name: Courses
  description: When a plan is assigned to a user it creates a course.
paths:
  /public/api/courses/{id}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  course_id:
                    type: string
                  user_id:
                    type: string
                  plan_id:
                    type: string
                  assignment_date:
                    type: string
                  earned_points:
                    type: number
                  start_date:
                    type: string
                  finished_date:
                    type: string
                  duration:
                    type: number
                  due_date:
                    type: string
                  created_date:
                    type: string
                  updated_date:
                    type: string
                example:
                  course_id: 5c6e7bd9d6313e003a5b73e1
                  user_id: 5c46fccd73b0240042c8d1cd
                  plan_id: 5c5b09bb924daa006bafb347
                  assignment_date: '2019-02-21T10:22:17.130Z'
                  earned_points: 0
                  start_date: '2019-02-22T09:00:00.000Z'
                  finished_date: '2019-02-22T10:00:00.000Z'
                  duration: 60
                  due_date: '2019-03-01T08:00:00.000Z'
                  created_date: '2019-02-21T10:22:17.136Z'
                  updated_date: '2019-02-21T10:22:17.136Z'
              examples:
                response:
                  value:
                    course_id: 5c6e7bd9d6313e003a5b73e1
                    user_id: 5c46fccd73b0240042c8d1cd
                    plan_id: 5c5b09bb924daa006bafb347
                    assignment_date: '2019-02-21T10:22:17.130Z'
                    earned_points: 0
                    start_date: '2019-02-22T09:00:00.000Z'
                    finished_date: '2019-02-22T10:00:00.000Z'
                    duration: 60
                    due_date: '2019-03-01T08:00:00.000Z'
                    created_date: '2019-02-21T10:22:17.136Z'
                    updated_date: '2019-02-21T10:22:17.136Z'
      summary: Get
      operationId: Get
      description: Get a course for the given id.
      tags:
      - Courses
      parameters:
      - name: id
        in: path
        description: The id of the course
        required: true
        example: 5c6e7bd9d6313e003a5b73e1
        schema:
          type: string
      - name: Accept
        in: header
        description: e.g. application/json
        required: false
        example: application/json
        schema:
          type: string
      security:
      - oauth2: []
  /public/api/courses?filter={filter}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  paging:
                    type: object
                    properties:
                      total:
                        type: number
                      skip:
                        type: number
                      limit:
                        type: number
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        course_id:
                          type: string
                        user_id:
                          type: string
                        plan_id:
                          type: string
                        assignment_date:
                          type: string
                        earned_points:
                          type: number
                        start_date:
                          type: string
                        finished_date:
                          type: string
                        due_date:
                          type: string
                        tenant:
                          type: string
                        created_date:
                          type: string
                        updated_date:
                          type: string
                      required:
                      - course_id
                      - user_id
                      - plan_id
                      - assignment_date
                      - tenant
                      - created_date
                      - updated_date
                example:
                  paging:
                    total: 2
                    skip: 0
                    limit: 1000
                  data:
                  - course_id: 5c6e7bd9d6313e003a5b73e1
                    user_id: 5c46fccd73b0240042c8d1cd
                    plan_id: 5c5b09bb924daa006bafb347
                    assignment_date: '2019-02-21T10:22:17.130Z'
                    earned_points: 0
                    start_date: '2019-02-22T09:08:54.000Z'
                    finished_date: '2019-02-22T09:08:54.000Z'
                    due_date: '2019-03-01T08:00:00.000Z'
                    tenant: boost_cs
                    created_date: '2019-02-21T10:22:17.136Z'
                    updated_date: '2019-02-21T10:22:17.136Z'
                  - course_id: 5c6e7bcdd6313e003a5b73cc
                    user_id: 5c46fccc73b0240042c8d1ca
                    plan_id: 5c5b09bb924daa006bafb347
                    assignment_date: '2019-02-21T10:22:05.160Z'
                    tenant: boost_cs
                    created_date: '2019-02-21T10:22:05.163Z'
                    updated_date: '2019-02-21T10:22:05.163Z'
              examples:
                response:
                  value:
                    paging:
                      total: 2
                      skip: 0
                      limit: 1000
                    data:
                    - course_id: 5c6e7bd9d6313e003a5b73e1
                      user_id: 5c46fccd73b0240042c8d1cd
                      plan_id: 5c5b09bb924daa006bafb347
                      assignment_date: '2019-02-21T10:22:17.130Z'
                      earned_points: 0
                      start_date: '2019-02-22T09:08:54.000Z'
                      finished_date: '2019-02-22T09:08:54.000Z'
                      due_date: '2019-03-01T08:00:00.000Z'
                      tenant: boost_cs
                      created_date: '2019-02-21T10:22:17.136Z'
                      updated_date: '2019-02-21T10:22:17.136Z'
                    - course_id: 5c6e7bcdd6313e003a5b73cc
                      user_id: 5c46fccc73b0240042c8d1ca
                      plan_id: 5c5b09bb924daa006bafb347
                      assignment_date: '2019-02-21T10:22:05.160Z'
                      tenant: boost_cs
                      created_date: '2019-02-21T10:22:05.163Z'
                      updated_date: '2019-02-21T10:22:05.163Z'
      summary: Get All
      operationId: Get All
      description: Get all the courses.
      tags:
      - Courses
      parameters:
      - name: filter
        in: query
        description: A valid JSON filter object
        required: false
        example: '{}'
        schema:
          type: string
      - name: Accept
        in: header
        description: e.g. application/json
        required: false
        example: application/json
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/Get_AllBody'
  /public/api/courses/count?where={where}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: number
                example:
                  count: 10
              examples:
                response:
                  value:
                    count: 10
      summary: Count
      operationId: Count
      description: Count all the existing entities based on the where filter
      tags:
      - Courses
      parameters:
      - name: where
        in: query
        description: A valid JSON [Where filter](#section-api-requests-filter-where)
        required: false
        example: '{ "property": "value" }'
        schema:
          type: string
      - name: Accept
        in: header
        description: e.g. application/json
        required: false
        example: application/json
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/Get_AllBody'
  /public/api/courses/export?type={type}&filter={filter}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  type:
                    type: string
                  priority:
                    type: number
                  nextRunAt:
                    type: string
                  _id:
                    type: string
                example:
                  name: Export file
                  type: normal
                  priority: 0
                  nextRunAt: '2018-09-11T15:56:05.387Z'
                  _id: 5b97e5954b99568b4b9101af
              examples:
                response:
                  value:
                    name: Export file
                    type: normal
                    priority: 0
                    nextRunAt: '2018-09-11T15:56:05.387Z'
                    _id: 5b97e5954b99568b4b9101af
      summary: Export
      operationId: Export
      description: 'Export all results as a file.

        This action is asynchronous and returns the id of a job. See `jobs` endpoint to query the status of the job. The file will contain the results with all of the fields specified on the resource.'
      tags:
      - Courses
      parameters:
      - name: type
        in: path
        description: The type of file, either `csv` (default value) or `excel`
        required: true
        example: csv
        schema:
          type: string
      - name: filter
        in: query
        description: A valid JSON filter object (does not accept a `fields` filter)
        required: false
        example: '{}'
        schema:
          type: string
      - name: Accept
        in: header
        description: e.g. application/json
        required: false
        example: application/json
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/Get_AllBody'
components:
  schemas:
    Default_Header:
      type: object
      required:
      - Authorization
      properties:
        Authorization:
          type: string
          example: Bearer JWT
  requestBodies:
    Get_AllBody:
      content:
        application/json:
          schema:
            type: object
            properties:
              Authorization:
                $ref: '#/components/schemas/Default_Header'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /
          tokenUrl: /
          scopes: {}