API v2 - Developer Resources
API Developer Resources
- 1 Introduction to the Feeds
- 2 Retrieve data from your accessplanit platform using GET requests
- 2.1 Running a GET request
- 2.2 Understand how many records are available for a GET request
- 2.3 Specifying fields to return in your GET request with $select
- 2.4 Filtering your GET requests with $filter
- 2.5 Sorting your GET requests with $orderby
- 2.6 Updating the number of records returned with $top
- 2.7 Pagination with $skip
- 3 Insert data into your accessplanit platform using POST requests
- 4 Update data in your accessplanit platform using PUT requests
- 5 🔁 Insert or Update data in your accessplanit platform using upsert POST requests
- 6 Delete data in your accessplanit platform using DELETE requests
- 7 FAQs
- 8 Support
Related Helpguide Pages
This page covers how to use the API v2 Feeds to read data from and write data to your accessplanit platform.
Welcome to our developer guide on using the accessplanit API v2 feeds!
This page will walk you through how to access and utilise the accessplanit API v2 feeds, to integrate your accessplanit data seamlessly into other applications and software. Whether you're integrating a new tool or connecting with an existing service, this guide provides the essential information to get you started, supported with examples.
Here’s what you’ll find within this guide:
Accessing the API Feeds
How to gain access to the feeds, authenticate your requests, and understand what endpoints are available to youUsing the API Feeds
How to run GET, POST, PUT, and DELETE requests, featuring examples and code snippets to support you retrieving and managing data through the feedsFAQs and further support
Answers to commonly asked questions about the feeds, and how you can get in touch with our team for any additional support.
Follow this page to access the developer information for using the accessplanit v2 APIs.
Introduction to the Feeds
The section covers accessing your API feeds, and how to view the endpoints and fields available.
Access to the API Feeds
To gain access to the API Feeds for your platform, you will be provided with a username/ID and a password for a user account which has the required roles, you can then use these credentials to generate a token to access the feeds or to log in to your platform to create an API Key.
Access within the platform is matched to your data access within the API Feeds, this means that the data you can view and update when you are logged into the platform, can also be viewed and updated through API requests.
As API access is an additional module, to request access to the feeds, please contact the Customer Success team at accessplanit.
Authorisation using a token
API requests can be authorised using a token, or by creating an API key.
To generate a token you will use your platform username and password in a GET request to https://platformname.accessplanit.com/accessplan/api/v2/token
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Use the following parameters in your request, if you are using postman add these into the ‘x-www-form-urlencoded’ form of the request ‘body’:
grant_type = password
username = enter your user ID for your platform
password = enter your password for your platform
Once you have generated a token, it can be used for API Requests using the authorisation type of ‘Bearer Token’.
Your token will be valid for 60 minutes.
Authorisation using API Keys
API requests can be authorised using a token, or by creating an API key.
Please note
Only Super Administrators are able to create API Keys.
To create an API Key:
Open the ‘Administration’ menu from the Profile options at the top-right of your platform
Open the ‘API Keys’ menu option to access the page where you can create an manage API Keys
If you are a ‘Super Admin’ and you cannot see this option in your Administration menu, please get in touch with a member of the accessplanit team to enable it
Click the ‘Add API Key’ button
‘Label’ the API Key clearly
When creating a new API key, give it a clear and descriptive label.
We recommend including the name of the integrating software (for example, "Salesforce Integration" or "Finance System - Xero") so it’s easy to identify the purpose of each key later.Select the ‘User’
Use the 'User' option to select which platform User the API Key should be linked to.
Please note
All requests made using this API key will act on behalf of the selected User, so this will be displayed in the audit logs
Copy the ‘API Key’
Copy the API key immediately, for security reasons, the key will not be displayed again after you save.
If you lose the key, you will need to generate a new one.
‘Enable’ the API Key
Check the 'Enable' checkbox to activate the API key.
You can disable an API key at any time by unchecking this box, this will instantly revoke its access without needing to delete it!Set an 'Expiration Date'
You have the option to set an expiration date for the API key, we recommend setting your API keys to expire every 6 months as a best practice, but you can choose a different timeframe based on your organisation's security policies.When a key expires, you will need to generate a new one and update any connected systems with the new key.
Define the allowed IP Addresses using the ‘IP Whitelist'
You can specify which IP addresses are allowed to use the API key by adding them to the whitelist.
Whitelisting IP addresses restricts where requests using this API key can originate from, this adds an important layer of protection. If no IP addresses are specified for your API Key, the key can be used from any location, which increases risk to your platform’s security.
We recommend always setting allowed IP addresses to ensure that only known/trusted locations can access your platform’s data via the API.For authorisation, provide the API Key as the Bearer Token
Viewing the modules that are available to you
You can run a request to generate a list of API endpoints that are available for you to access, these endpoints match directly to the data modules in the accessplanit platform.
To access a list of all data modules available for you to access within the feeds, run a GET request using your bearer token or your API Key to https://platformname.accessplanit.com/accessplan/apihelp/v2/modules
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
This will provide you with a comprehensive list of the names of the modules that you can access using the API feeds.
Viewing the available fields for each module
To access a list of the fields that are available in a particular module, run a GET request using your bearer token or your API Key to https://platformname.accessplanit.com/accessplan/apihelp/v2/modules/coursedate
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Replace 'coursedate' with the module you would like to view
This will provide you with a list of the fields available within for your chosen module and supporting information for each; including whether each field can be sorted, filtered, and it’s data type.
Response Codes
HTTP Status codes are used to provide feedback about API requests:
Status Code | Description |
200 | OK – action completed successfully |
201 | Created – Record created successfully |
400 | Error – See “errors” section |
401 | Not authorized – token has not been provided or is invalid |
404 | Not found – URL is incorrect or record does not exist |
HTTP Verbs
The accessplanit API uses HTTP verbs appropriate for each action:
Verb | Description |
GET | Retrieve resource |
POST | Create resource |
PUT | Update resource (please use PUT for both PUT & PATCH calls) |
DELETE | Delete resource |
Retrieve data from your accessplanit platform using GET requests
The section covers how to read data from your accessplanit platform, using GET requests.
Running a GET request
To read data from a particular module, run a GET request using your bearer token or your API Key to
https://platformname.accessplanit.com/accessplan/api/v2/coursedate
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Replace 'coursedate' with the module you would like to view
By default, each GET request will retrieve the first 50 records from that module, with pre-defined fields included in the returned data.
Please see Updating the number of records returned for how to retrieve more or less records.
Please see Specifying fields to return in your GET request with $select to learn how to define the fields that are included in the returned data.
Understand how many records are available for a GET request
To include total of the number of records that are available for your GET request, add the parameter '$count' with the value ‘true’ to your GET request
https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$count=true
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Replace 'coursedate' with the module you would like to view
This will provide the following additional information at the end of the results body
Page index (this starts from 0)
Total number of records that could be displayed on this page
Total number of records that meet the criteria of the request
Specifying fields to return in your GET request with $select
To change which fields are included for your data, add the parameter '$select' to your GET request with the names of the required fields comma separated as the value:
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Replace 'coursedate' with the module you would like to view
Replace ‘label,startdate,status,spacesleft’ with the required fieldnames, in the order you would like them to be returned
If you would like to return all fields in your query, please use * as a wildcard.
For example, https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$select=*
Please note
Using $select=* can impact response times and performance, particularly for modules that aggregate large volumes of data. We recommend avoiding this where possible.
To help to maintain performance, when using $select=*, the maximum number of results returned is capped at 250 (i.e., $top=250).
Filtering your GET requests with $filter
To filter out unwanted data, add the parameter '$filter' to your GET request, including the field that should be filtered and how it should be filtered. There are many filter operators available for you to work with, the format required for each is detailed in the following table:
Filter By | Operator | Format & example |
|---|---|---|
Equals | eq | Format: /api/v2/modulename?$filter= fieldname eq 'value'Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=CourseID eq 'FirAid' |
Not Equal | ne | Format: /api/v2/modulename?$filter= fieldname ne 'value'Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=CourseID ne 'FirAid' |
Equals multiple | in | Format: /api/v2/modulename?$filter= fieldname in ('value', 'value')Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=Status in ('Completed', 'Available') |
Does not equal multiple | in | Format: /api/v2/modulename?$filter= not fieldname in ('value', 'value')Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=not Status in ('Completed', 'Available') |
Less Than | lt | Format: /api/v2/modulename?$filter=fieldname lt 'value'Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=StartDate lt '2025-01-01T10:00:00' |
Less Than or Equal To | le | Format: /api/v2/modulename?$filter=fieldname le 'value'Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=StartDate le '2025-01-01T10:00:00' |
Greater Than | gt | Format: /api/v2/modulename?$filter=fieldname gt 'value'Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=StartDate gt '2025-01-01T10:00:00' |
Greater Than or Equal To | ge | Format: /api/v2/modulename?$filter=fieldname ge 'value'Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=StartDate ge '2025-01-01T10:00:00' /coursedate?$filter=StartDate ge '2025-01-01T10:00:00' |
Contains a phrase | contains | Format: /api/v2/modulename?$filter=contains(fieldname,'value')Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=contains(CourseID,'FirAid') |
Does not contains a phrase | not Contains | Format: /api/v2/modulename?$filter=not contains(fieldname,'value')Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=not contains(CourseID,'FirAid') |
Starts with a phrase | startswith | Format: /api/v2/modulename?$filter=startswith(fieldname,'value')Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=startswith(CourseID,'Fir') |
Does not start with a phrase | not startswith | Format: /api/v2/modulename?$filter=not startswith(fieldname,'value')Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=not startswith(CourseID,'Fir') |
Ends with a phrase | endswith | Format: /api/v2/modulename?$filter=endswith(fieldname,'value')Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=endswith(CourseID,'aid') |
Does not end with a phrase | not endswith | Format: /api/v2/modulename?$filter=not endswith(fieldname,'value')Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$filter=not endswith(CourseID,'aid') |
Filtering on multiple fields
To filter on multiple fields, you can add additional filters within the same parameter by using ‘and’ & ‘or’
Example filter where two requirements must be met:
…/api/v2/coursedate?$filter=StartDate gt '2025-01-01T10:00:00' and status eq 'Available'
Example filter where either of the two requirements must be met:
…/api/v2/coursedate?$filter=StartDate gt '2025-01-01T10:00:00' or status eq 'Available'
Please note that filter logic using parenthesis is not supported.
Grouping Filters
Single-level logical grouping is supported in filters.
Example filter where Delegates will be returned if they are on a Course labelled ‘My Course’ and they either have a status of ‘Completed' or 'Attended’:
…/api/v2/delegate?$filter=(Status eq 'Completed' or Status eq 'Attended') and CourseLabel eq 'My Course'
Please note
Grouping are only supported to one level, e.g. (A or B) and C
Beyond one level (e.g., ((A or B) or C) and D) are not currently supported.
Sorting your GET requests with $orderby
To change how your records are ordered/sorted, add the parameter '$orderby' to your GET request with the names of the field you would like to sort by, followed by whether it should be sorted ascending (asc) or descending (desc)
https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$orderby=startdate desc
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Replace 'coursedate' with the module you would like to view
Replace ‘startdate’ with the required field
Add ‘desc' if you would like to sort descending (you do not need to provide asc to sort ascending)
Sorting on multiple fields
To sort by multiple fields; add the fields and their sorting order, in order of priority within the same parameter, each sorted field should be separated with a comma
e.g. https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$orderby=startdate desc,label asc
Updating the number of records returned with $top
The default number of records that are returned for a GET request is 50
To retrieve more or less records, use the parameter ‘$top’ to your GET request with the number of records you would like to return.
https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$top=20
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Replace 'coursedate' with the module you would like to view
Replace ‘20’ with the number of records to return
When using the $top parameter, you can supply a size of -1, which will instruct API V2 to return all rows for the endpoint.
For example, https://platformname.accessplanit.com/accessplan/api/v2/user?$top=-1&$select=id will return all User IDs
To maintain performance within your platform and the feeds, we recommend not getting more than 50 records at a time:
Use the $filter parameter to ensure your request is accurate.
Use the $count parameter to understand how many records meet the criteria of your request.
Use the $skip parameter to retrieve subsequent data sets.
Pagination with $skip
The default number of records that are returned for a GET request is 50, if there are more records available they can be accessed by making a GET request to the next page.
To view subsequent pages, use the parameter ‘$skip’ in your GET request with the page number you would like to jump to.
Example: https://platformname.accessplanit.com/accessplan/api/v2/coursedate?$skip=1
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Replace 'coursedate' with the module you would like to view
Replace ‘1’ with the page number you would like to skip to
To include total of the number of records that are available for your GET request, please see Understand how many records are available for a GET request.
Insert data into your accessplanit platform using POST requests
The section covers how to create new records in your accessplanit platform, using POST requests.
To create a new record in your accessplanit platform, for example to create a new course date, run a POST request using your bearer token or your API Key to: https://platformname.accessplanit.com/accessplan/api/v2/coursedate
Replace ‘platformname’ with your platform’s name
Replace the ‘accessplan’ with ‘accessplansandbox’ if you are working on your sandbox environment
Replace 'coursedate' with the module you would like to insert a new record into
Within the body of your request, provide the details of the record you are creating.
Top tip!
To get a full list of field names that are available for a module, run a GET request using accessplan/modulesapihelp/v2/modules/coursedate
Read more about accessing a list of field names here.
A successful POST request will return the ID of the new record in the response.
Update data in your accessplanit platform using PUT requests
The section covers how to update information on existing records in your accessplanit platform, using PUT requests.
To make updates to an existing record in your accessplanit platform, for example to change the start date of a course, run a PUT request using your bearer token or your API Key to: https://platformname.accessplanit.com/accessplan/api/v2/coursedate/2024
Contact Our Team
If you can't find what you're looking for, access our Support Portal, and our team of experts will be happy to help!
Is it your first time contacting the team? Learn how to raise a support ticket.
Follow Us
Copyright © 2025 accessplanit.
Social media icons by icons8.com