Scheduled maintenance: Tuesday 2nd September 2025

We will be carrying out scheduled maintenance on RPL and Login on Tuesday, 2nd September. During this period, there will be downtime between 7:00am and 7:30am.
Please make sure you are logged out of your account and have saved any work before this time.
Thank you for your understanding.

Upcoming System Update: Eportfolio & Learning Journal

On Wednesday, 3rd September 2025, we’ll be rolling out a series of enhancements to Eportfolio and the Learning Journal aimed at improving usability, accuracy, and the overall experience for both learners and assessors.

Release Notes
Full details of the changes can be found here.  

⏱️ Scheduled Downtime
Please note that there will be a brief service interruption between 07:00 and 07:30 AM on the day of the update.

⚠️Action Required
To avoid any data loss, make sure you’re logged out and have saved all work before 07:00 AM.


Welcome to the new Help Centre! ✨

You may have spotted our new and shiny company website - and that’s not all that’s changed! We now have dedicated Help Centres for each of our products to make it easier for you to find the right support. For a quick guide to what’s new and where to go, click here.

Submit a ticket Log in

Creating and managing users via the API

This series of guides, will provide information on how to build a data integration with a 3rd party system, using the OneFile API:

  1. Initial data download using API
  2. Creating and managing users via the API
  3. Assigning users to learners via the API
  4. Assigning Framework Templates, Standards and Units via the API


Users can be created by calling the POST /api/v2.1/User endpoint.

The following roles are supported in the API:

User RoleRole ID
Learner1
Trainee Assessor4
Assessor / Tutor5
IV / IQA10
Employer40
Observer45

When creating learners, there are more required fields, than when create any other type of user. The required fields are shown below:

Create User (Learner)

POST /api/v2.1/User
//Mandatory Fields
{
"OrganisationID": {Id}
     "FirstName": {First Name}
     "LastName": {Last Name}      "Email": {Email}
     "Role": 1
     "DefaultAssessorID": {Id}
     "ClassroomID": {Id}
     "PlacementID": {Id}
} //Optional Fields { "MISID": "string", "CreatedOn": "2022-02-23T12:49:33.150Z", "CompanyName": "string", //Displayed on Profile "MobileNumber": "string", "Telephone": "string", "Website": "string", "WorkAddress": "string", "ProviderID": 0, "DefaultEmployerID": 0, "ULN": "string", "NINO": "string", "EpisodeName": "string", "HomeAddress": "string", "CentreRegister": "2022-02-23T12:49:33.150Z", "DOB": "2022-02-23T12:49:33.150Z", "StartOn": "2022-02-23T12:49:33.150Z", //Episode Start Date "PlannedEndDate": "2022-02-23T12:49:33.150Z", "L12": "string", //Ethnicity "L13": "string", //Sex "L14": "string", //Learning Difficulties/Disabilities/Health Problems "L15": "string", //Disability "L16": "string", //Learning Difficulty "SupportFunding": true, "LearnerStatusID": 0 }


Create User (All other User Roles)

POST /api/v2.1/User
//Mandatory Fields
{
     "OrganisationID": {Id}
     "FirstName": {First Name}
     "LastName": {Last Name}      "Email": {Email}
     "Role": {Role} //see table above
} //Additional mandatory field for Employers and Observers
{
"PlacementID": {Id} } //Optional Fields { "MISID": "string", "CreatedOn": "2022-02-23T12:49:33.150Z", "MobileNumber": "string", "Telephone": "string", "Website": "string", "WorkAddress": "string", "HomeAddress": "string", "DOB": "2022-02-23T12:49:33.150Z" }

Login Details

When the centre setting below is disabled, the API will return the user's UserID, username and password in the body of the response.

When the centre setting below is enabled, the API will only return a 200 OK status. The account will be added to a new/existing Keychain and the user will receive an email to verify their account.

  Centre Setting

When creating new accounts, automatically create a new Keychain or attach to an existing Keychain when an email is supplied

You can also call the "Organisation Search" endpoint to see whether the setting is enabled, or not, as shown below.

Response:
{
    "ID": 5740,
    "Name": "Example Organisation - Business",
    "KeychainCreationForNewUserActive": true,
    "KeychainEmailSuppression": false
}

Updating Users

POST /api/v2.1/User/137945

{
     "MISID": "NewMISID"
}

When updating users, only include the fields you want to change in the body of the call. In the example above, UserID 137945 will have their MISID updated to the specified value.

Next Guide - Assigning users to Learners

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.