Course API Feeds

Search for a solution

On this page:


Useful Helpguide Links

https://accessplanit.atlassian.net/wiki/spaces/HG/pages/423362584

https://accessplanit.atlassian.net/wiki/spaces/HG/pages/407044197

https://accessplanit.atlassian.net/wiki/spaces/HG/pages/356089948


Useful External Links

The Course API feed endpoints allow you to integrate Course and Delegate information with other software that you have in use across your business, such as a LMS, VLE, or CRM.

 

The feed is available if you have the API Feeds module. Please speak to your CSM to find out more about this module.

Purpose of the API Feeds

This Course and Delegates API Feeds can be used to connect your accessplanit platform to other learning/training or employee-based software, such as your VLE system to sync your employee's learning records, or your intranet to display your upcoming courses.

Connecting your software and syncing the data between them removes the need for double data entry, reduces the risk of human error and eases the headache of managing multiple platforms!


Fields Available in the API Feeds

There are five endpoints available for Course data, please see the below tables for the data that is available in each.

Each of these five feeds have different levels of reading, creating, and updating, the tables below explain what actions are available for the fields in each feed.

Course Templates

This feed is used for accessing the details of Course Templates within the database.

Please note, it is not possible to update Course Templates or create new Course Templates via the feed. These actions should always be managed by an Administrator within the accessplanit platform.

It is not possible to filter the results of GET request for Course Templates, other than specifying the specific Course Template via the Training Provider:

  • {{apiroot}}/companies/[training provider company id]/courses/[course template ID]

Field

GET
(Read)

GET
(Filter)

PUT
(Update)

POST
(Create new)

Validation for PUT & POST

Course Template ID

n/a

Name

n/a

Type

n/a

Category
(As an array)

n/a

Course Template Custom Fields

n/a

Here is an example of a Course Template with custom fields in the feed:


Courses (Dates)

This feed is used for accessing the details of Courses (dates) within the database.

It is possible to update some information about Courses and create new Courses.

It is also possible to assign Trainers and Venues to Courses via POST requests:

  • {{apiroot}}/coursedates/[course date ID]/venue/[venue ID]

  • {{apiroot}}/coursedates/[course date ID]/trainers/[trainer ID]

You can also filter the results of a GET request for Courses, please see the GET (Filter) column in the table below to see which fields can be filtered, below this table you can find example filters that you can use.

Field

GET
(Read)

GET
(Filter)

PUT
(Update)

POST
(Create new)

Validation for PUT & POST

CourseDateID

n/a

External ID

Max characters 255

Name
(Course Template Label or Course Alias)


Sets course alias


Sets course alias

Max characters 255

Start Date

Mandatory


Mandatory

Must be before end date

End Date

Mandatory


Mandatory

Must be after advertised start date

Date Updated

n/a

Time Zone

n/a

Minimum Sessions

n/a

Maximum Sessions

n/a

Company ID
(Training Provider)

Must be the ID of an existing Training Provider Account

Net Cost
(in pence/cents)

Number

Tax
(in pence/cents)

n/a

Charge Per Delegate

True (charge per delegate) or False (charge per session)

Status

Mandatory

Mandatory

Available, Cancelled, Completed, Failed, FullyBooked, InProgress, OnHold, Provisional, or Unknown.

Places Remaining

n/a

Waiting List Type

n/a

Sessional

n/a

Sessional Cost Type

CourseDateCost, CourseDateCostPlusOptionalSessions, CourseDateCostPlusSessions, SumOfSessions, or Unknown

Duration

Number

Duration Type

Day, Hour, or Minute

Image URL

n/a

Aims Text

Please note that any double spaces '  ' in Aims text are not recognised when filtering API Feeds

Course Is Advertised

True or False

Advertised Start Date

Must be before advertised end date

Advertised End Date

Must be after advertised start date

Max places

Mandatory

Mandatory

Must be positive and must be equal to or higher than minimum places

Min places



Must be positive and must be equal to or lower than maximum places

Course Is Exclusive

n/a

Sessions

(As an array)

Contains the information of the sessional courses

n/a

Location

n/a

To assign venues to courses please use

{{apiroot}}/coursedates/[course date ID]/venue/[venue ID]

Course Date Custom Fields

Validation on POST & PUT requests are subject to custom field type used, for example a valid date must be provided for Custom Fields with a type of ‘date’.

 

Here is an example of a Course with a custom field in the feed:

Here are some example filters that you are able to use with your Course API Feed:

Only include advertised courses:

  • {{apiroot}}/coursedates?CourseIsAdvertised=true

Only include courses that are not advertised:

  • {{apiroot}}/coursedates?CourseIsAdvertised=false

Only include a specific course

  • {{apiroot}}/coursedates?CourseDateID=12066

Only include courses with more than 3 places remaining (gt = greater than)

  • {{apiroot}}/coursedates?PlacesRemaining=gt:3

Only include courses with less than 2 places remaining (let = less than)

  • {{apiroot}}/coursedates?PlacesRemaining=lt:2

Only include courses starting at 5th Oct 2021 at 9am

  • {{apiroot}}/coursedates?StartDate=2021-10-05T09:00:00

Only include courses starting w/c 28th June 

  • {{apiroot}}/coursedates?StartDate=gt:2021-06-28T07:59:59&lt:2021-07-02T18:00:00

Only include courses that contain the words "First Aid" in the name

  • {{apiroot}}/coursedates?Name=“First Aid”

Only include available courses

  • {{apiroot}}/coursedates?Status=Available

Exclude courses that are cancelled or completed

  • {{apiroot}}/coursedates?Status=not:Completed&Status=not:Cancelled

Only include courses that do not have a start date (such as eLearning courses)

  • {{apiroot}}/coursedates?StartDate=NULL

Only include courses that do have a start date

  • {{apiroot}}/coursedates?StartDate=not:NULL


Delegates

This feed is used for accessing the details of Delegates. Delegates are Users assigned to Courses.

Please note, it is possible to update some information about Delegate and create new Delegates via the feed.

You can also filter the results of a GET request for Delegates, please see the GET (Filter) column in the table below to see which fields can be filtered, below this table you can find example filters that you can use.

Field

GET
(Read)

GET
(Filter)

PUT
(Update)

POST
(Create new)

Validation for PUT & POST

Course Date ID

Mandatory

Must validate against an existing course (date)

User ID


Mandatory

Must validate against an existing user

Date Booked

n/a

Date Updated

n/a

Delegate Status

Attended, Booked, Cancelled, Completed, Deferred, Failed, InProgress, NoAttend, OnHold, Provisional, Transferred, Unconfirmed, Unknown, WaitingList

Score

Numeric (0 - 100)

Delegate Custom Fields

Validation on POST & PUT requests are subject to custom field type used, for example a valid date must be provided for Custom Fields with a type of ‘date’.

The Delegates feed supports filtering, displaying only the delegates that you require for your integration!

For example, you may wish to only include delegates that have the status of booked, only include delegates that have been updated today, only include delegates that are assigned to a specific course, or only include delegates that were booked this week…

Here are some example filters that you will be able to use with your API Feeds:

Only include delegates from a specific course:

  • {{apiroot}}/delegates?CourseDateID=12066

Only include delegates with a score of 80 or more (gt = greater than)

  • {{apiroot}}/delegates?Score=gt:79

Only include delegates with a score less than 40 (lt = less than)

  • {{apiroot}}/delegates?Score=lt:40

Only include delegates booked during a timeframe

  • {{apiroot}}/delegates?DateBooked=gt:2021-10-01T07:59:59&DateBooked=lt:2021-11-30T18:00:00

Only include delegates with a status of Completed

  • {{apiroot}}/delegates?Status=Completed

Exclude delegates that are cancelled or provisional

  • {{apiroot}}/coursedates?Status=not:cancelled&Status=not:provisional

 


Trainers

This feed is used for accessing the details of Trainers.

It is not possible to create or update Trainers via the feed. This action should always be managed by an Administrator within the accessplanit platform.

It is not possible to filter the results of GET request for Trainers, other than specifying the specific trainer or via their assigned course

  • {{apiroot}}/resources/trainers/[trainer ID]

  • {{apiroot}}/coursedates/[course date ID]/trainers

Field

GET
(Read)

GET
(Filter)

PUT
(Update)

POST
(Create new)

Validation for PUT & POST

Trainer ID
(Resource ID)

n/a

Trainer Label

n/a

Trainer Description

n/a

Trainer Custom Fields

n/a




Venues

This feed is used for accessing the details of Venues.

It is possible to create new and update Venues via the feed, please note than new venues will be created with the ‘In-House Venue’ type.

It is not possible to filter the results of GET request for Venues, other than specifying the specific venue or via their assigned course

  • {{apiroot}}/resources/venues/[venue ID]

  • {{apiroot}}/coursedates/[course date ID]/venue

Field

GET
(Read)

GET
(Filter)

PUT
(Update)

POST
(Create new)

Validation

Venue ID
(Venue ID not Resource ID)

n/a

Venue Label

Mandatory


Mandatory

Max characters 255

Venue Address

Max characters 200

Venue Town

Max characters 60

Venue County

Max characters 60

Venue Country

Must be a valid country

Venue Postcode

Max characters 10

Venue Phone

Must be a valid phone number, extensions are accepted

Max characters 25

Venue Email

Must be in an email address format

Max characters 50

Venue Capacity

 

Number

Venue Website

Max characters 100

Venue Description

n/a

Venue Custom Fields

n/a

 


Connecting to the API

DISCLAIMER: By using accessplanit APIs, you agree to our terms of use.

As the API Feeds are an additional module, please contact your assigned Customer Success Manager (CSM) to gain access to them for your integrations.