API Documentation

Notice: API Endpoint Update
We will soon be notifying all users about an important change to our API endpoint.
The API endpoint has been updated from www.kursguiden.no/api to api.frontcore.com.
If you are currently using the old address, please update your integration to use the new endpoint as soon as possible.

The pages below give all the information needed to get started with Frontcore API. There is documentation with examples of courses, coursedates and other using simple REST calls.

How to integrate Frontcore with your CRM/CMS system?

Frontcore provides RESTful API over HTTP using GET or POST methods. Listed below are all the available API methods, which allows you to create/update/delete courses and dates. It's also possible to download all course information in order to display it on your own Intranet or public web pages.

Making requests

For every API request you make, you'll need to present the API access key in the HTTP Header as X-API-Key to be authenticated. The authentication API key can be found in the app under Settings > API.

If the request contains JSON formatted data, a content-type:application-json must be present in the header of the request.

Keep the API key secret! It should be guarded just as your regular account password.

Request Frequency

  • Don’t over-fetch data: Be mindful of how often you’re making requests. Avoid sending the same request multiple times unnecessarily.
  • Implement caching: Cache data locally to reduce redundant requests for the same resource.
  • Avoid unnecessary traffic: For data that rarely changes, like currencies, countries or static information, avoid frequent polling (e.g., hourly requests).
  • Space out concurrent requests: Don’t hit the API with a burst of requests all at once. For example, sending one GET request for every course at the same time will cause rate-limiting issues.

Rate Limits

  • We will enforce a rate limit of 5 requests per second per account. However, we recommend keeping this as low as possible. This limit applies across your entire account.
  • If you exceed this limit, we’ll start returning 429 Too Many Requests responses. Your requests may be throttled and will no longer return content until you reduce your request rate.
  • If the rate limit is consistently exceeded and we can’t reach you for resolution, we may need to temporarily block excessive traffic to ensure service stability.

Caching and Proxying

  • Cache all API responses: Web applications and servers should cache responses from the API to prevent re-fetching unchanged data. This helps you stay within rate limits and reduces load on both our servers and yours.

Client-to-API Connections

  • Avoid direct client-to-API calls: For security and performance reasons, browsers should not communicate with the API directly. Instead, use a backend (like a proxy server) to handle authentication, add necessary headers, and cache data.

Custom properties

Our API allows you to attach additional key-value data to the course, course date, and customer objects using the 'custom_properties' property. This feature is especially useful for storing information that may not be captured by the standard object fields.

If no custom_properties have been set, the 'custom_properties' property will be null. You can specify up to 25 keys, with key names up to 44 characters long and values up to 255 characters long. All values will be stored as strings.

One example of how you could use custom properties is to store a unique identifier for a course from your system on a FrontCore course object. This way, you can easily match and synchronize data between your system and ours.

To delete a custom property from an object, simply set the value to null. This will remove the custom property from the object.

                
{
    ...
    "custom_properties": {
        "external_course_id": "t204816dc2d316a922f6acc398f5d4b0a7157cbaf",
        "exported_at": "2020-03-20T10:40:17+01:00",
    },
    ...
}
                
            

API Methods

Courses

Get next courses
Calendar: List next courses based on course start dates using GET.
List courses
Download course ID, title, duration, price and other attributes using GET.
Get a course
Get a course using GET.
Add a course
Adds a course using POST.
Update a course
Updates a course using PUT.
Delete a course
Deletes a course using DELETE.

Course Dates

Get course dates
Download start dates, end dates, deadlines, places for a course using GET.
Get course dates (Batch) (Experimental)
Download start dates, end dates, deadlines, places for a course using GET for multiple course ids.
Get a course date
Get start date, end date, deadline, place for a course date using GET.
Add a date
Add a date for a course (start date, end date, place etc.) using POST.
Update a date
Updates a date for a course (start date, end date, place etc.) using PUT.
Delete a date
Delete a date for a course using DELETE.

Course Participants

Get participants
Download course participants using GET.
Update participant
Updates a participant using PUT
Get an participant
Get a single participant using GET

Course Users

Get course user
Get a course user using GET.
Search for course users
Search for users using a keyword using GET.
Add a course user
Adds a course user using POST.
Update a course user
Updates course user using PUT.
Delete a course user
Delete a course user using DELETE.
List similar users
List similar users using GET.
Merge two course users
Merge two users using POST.
Anonymize course user
Remove identifying details and personal data from the course user. Anonymize user using DELETE.
Check user credentials
Used for SSO systems using "POST".

Customers

Get customers
Download customers using GET.
Get a customer
Get a customer using GET.
Add a customer
Adds a customer using POST.
Update a customer
Updates a customer using PUT.
Delete a customer
Delete a customer using DELETE.
Move an employee
Move an employee to another customer using PUT.
Merge two customers
Merge two customers using POST.

Customer Contacts

Get contacts
Download customers contacts using GET.
Add a contact
Updates contact using POST.
Update a contact
Updates contact using PUT.
Delete a contact
Delete a contact using DELETE.

Customer Employees

Get employees
Download customers employees using GET.
Get an employee
"Alias" of Course User. Get an employee using GET.
Add an employee
"Alias" of Course User. Adds an employee using POST.
Update an employee
"Alias" of Course User. Updates employee using PUT.
Delete an employee
"Alias" of Course User. Delete an employee using DELETE.

Instructors

Get instructors
Download instructors using GET.

Locations

Get locations
Download schools locations using GET.
Get places
Download Frontcores place IDs and their title using GET.
Get countries
Download Frontcores country IDs and their title using GET.

Privacy / GDPR

Get legal bases for user data processing
Get legal bases for user data processing, such as consents, contracts or legitimate interest using GET.
Add a legal basis for user data processing
Add a legal basis for user data processing using POST.
Update a legal basis for user data processing
Update a legal basis for user data processing using PUT.
Delete legal basis for user data processing
Delete a legal basis for user data processing using DELETE.
Get legal bases for all users data processing
All users legal bases for user data processing using GET.
Get purposes
Get schools purposes using GET.
Get consents
Get schools consents using GET.
Get legal bases
List system legal bases using GET.
Get data sources
List system sources using GET.
Anonymize course user
Remove identifying details and personal data from the course user. Anonymize user using DELETE.

Orders

Get orders
Download orders using GET.
Get an order
Download an order using GET and its ID number.
Update an order
Updates an order using PUT.
Get products
Download products using GET.

Schools

Add a school
Advanced feature: Adds a sub-school using POST.
Update a school
Updates a school using PUT.
Get school info
Download current school info using GET.

Certificate

Check certificate status for person, using NIN
Check if person, using National identification number, have a valid certificate using GET.
Check certificate status for person, using date of birth and name
Check if person, using date of birth and name, have a valid certificate using GET.
Check certificate status for person, using user id
Check if person, using user id, have a valid certificate using GET.

App

Get app users
Download app users using GET.

Booking

Book users onto course date
Book one or more users onto a course date.
Deregister participants
Set all participants with a given booking id to deregistered
Validate campaign code
Check if campaign code is valid
Validate voucher code
Check if voucher code is valid

Other

Get a list of currencies
Get a list of supported currencies
Get a list of countries
Get a list of supported countries
Get a list of durations
Get a list of supported durations
Get a list forms of teaching
Get a list of supported forms of teaching
Get a list course roles
Get a list of supported course roles

Related info

© 2024 FrontCore