Trakstar Courses API

Manage course enrollment and information

OpenAPI Specification

trakstar-courses-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Trakstar Hire Auth Courses API
  description: The Trakstar Hire REST API (formerly Recruiterbox) enables developers to manage openings, candidates, candidate messages, internal notes, interviews, reviews, evaluations, and to-dos programmatically. It returns JSON responses and uses API key authentication generated from the account's Super Admin settings. The most common use cases include building custom career sites and syncing opening or candidate data with external systems.
  version: '2'
  contact:
    name: Trakstar Hire Support
    url: https://support.hire.trakstar.com/article/1617-accessing-the-hire-api
  license:
    name: Proprietary
servers:
- url: https://{companyName}.hire.trakstar.com/api/v2
  description: Trakstar Hire API v2
  variables:
    companyName:
      description: Your company subdomain name
      default: yourcompany
security:
- apiKey: []
tags:
- name: Courses
  description: Manage course enrollment and information
paths:
  /course:
    get:
      operationId: listCourses
      summary: List Courses
      description: Returns a list of all courses in the organization.
      tags:
      - Courses
      parameters:
      - name: status
        in: query
        description: Filter results by course status.
        required: false
        schema:
          type: string
          enum:
          - Active
          - Archive
          - All
          default: All
      responses:
        '200':
          description: A list of courses.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Course'
              example:
              - id: 1662438386
                name: Course A
                description: Introduction to safety procedures
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /course/{courseId}:
    get:
      operationId: getCourse
      summary: Get Course
      description: Returns detailed information for a specific course.
      tags:
      - Courses
      parameters:
      - name: courseId
        in: path
        required: true
        description: The Mindflash ID of the course.
        schema:
          type: integer
          format: int64
      - name: status
        in: query
        description: Filter results by course status.
        required: false
        schema:
          type: string
          enum:
          - Active
          - Archive
          - All
      responses:
        '200':
          description: A single course with detailed information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /course/{courseId}/user/{userId}:
    post:
      operationId: inviteUserToCourse
      summary: Invite User to Course
      description: Invites a specific user to a specific course.
      tags:
      - Courses
      parameters:
      - name: courseId
        in: path
        required: true
        description: The Mindflash ID of the course.
        schema:
          type: integer
          format: int64
      - name: userId
        in: path
        required: true
        description: The Mindflash ID of the user.
        schema:
          type: integer
          format: int64
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                clientDatestamp:
                  type: string
                  format: date
                  description: The current date in YYYY-MM-DD format.
                required:
                  type: boolean
                  description: Set true to make the course required for the user.
                  default: false
            example:
              clientDatestamp: '2024-01-15'
              required: false
      responses:
        '200':
          description: User invited to course successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /course/{courseId}/user:
    post:
      operationId: inviteUsersToCourse
      summary: Invite Multiple Users to Course
      description: Invites multiple users to a specific course.
      tags:
      - Courses
      parameters:
      - name: courseId
        in: path
        required: true
        description: The Mindflash ID of the course.
        schema:
          type: integer
          format: int64
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                userIds:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: List of Mindflash user IDs to invite.
                clientDatestamp:
                  type: string
                  format: date
                  description: The current date in YYYY-MM-DD format.
                required:
                  type: boolean
                  description: Set true to make the course required for the users.
                  default: false
      responses:
        '200':
          description: Users invited to course successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    Unauthorized:
      description: Authentication credentials were not provided or are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limit exceeded. The API enforces a limit of 10 requests per 10 seconds per API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource could not be found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was invalid or cannot be otherwise served.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    CourseDetail:
      allOf:
      - $ref: '#/components/schemas/Course'
      - type: object
        properties:
          modules:
            type: array
            description: Modules within the course.
            items:
              type: object
              properties:
                id:
                  type: integer
                  format: int64
                name:
                  type: string
                type:
                  type: string
    Error:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
        errors:
          type: array
          items:
            type: string
    Course:
      type: object
      description: A course in Trakstar Learn.
      properties:
        id:
          type: integer
          format: int64
          description: Unique Mindflash course identifier.
          readOnly: true
        name:
          type: string
          description: Name of the course.
        description:
          type: string
          description: Course description.
          nullable: true
        status:
          type: string
          description: Course status.
          enum:
          - Active
          - Archive
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: API key generated from the Trakstar Hire Super Admin settings page. Pass as "ApiKey {your_api_key}".
externalDocs:
  description: Trakstar Hire API Reference
  url: https://developers.recruiterbox.com/reference/introduction