What is the ManageBac public API?
The ManageBac public API allows you to connect your schools account to external platforms not directly integrated with ManageBac. The settings for this can only be set be an admin on your schools account.
Please note that your API token should only be shared with trusted parties - API tokens should never be sent via email or saved on forms without SSL encryption. Once an integration is no longer in use, we recommend disabling the API token by clicking the delete icon above.
How to Enable the ManageBac Public API
Via Settings > Develop > API Manager
Click the Add New Token button to configure token permissions and generate a unique token.
Adding an API token
Administrators can generate a public API token as needed via Settings > Develop > API Manager. Be sure to add a useful name for the token so it is clear what it is being used for.
From here, you can select which points you wish to update and pull, including Student, Parent and Teacher data, IB Groups, Classes, and School settings. Click Add Token to complete creating the token.
Editing an API Token
Once added, you will be able to see or modify the details of the token created.
- Click the Clipboard icon to copy the token to paste into other systems.
- View the token Permissions by hovering over the i
- View the status of the token as enabled or disabled
- Click Edit to adjust the token Permissions or disable/enable the token
- Delete the token via the Rubbish bin/trash can icon.
What fields & functions are supported in the ManageBac public API?
Click the Reference Docs tab from the left menu for detailed guidance on how to set up API connections, including notes with sample requests and responses.
- Null values are never rendered.
- Null values are ignored in POST requests.
- Empty string values are not ignored and will overwrite existing values.
- Any call will return an error when it can't find a user for mass assignment. E.g. parent_ids, child_ids.
- Parameters available for index actions stack using AND logic. Using modified_since and deleted_since at the same time may not return an expected result because deletion doesn't change the record modification timestamp.
- Any users who have the admin role are read-only through the API for security reasons.
- All timestamp fields are in ISO8601 format, i.e yyyy-mm-ddThh:mm:ss.sssTZ, for example 2017-11-06T04:35:00.000GST.
- We want this API to be useful to you. If you have questions or concerns please contact us at firstname.lastname@example.org.
For the permission fields, you can toggle to select None, select only those with Read-only rights, or select All. You can also individually select respective fields by ticking the check box.
- Get all Year Groups
- Get Advisors
- Get Students for a Year Group
- Add Students to a Year Group
- Remove Students from a Year Group
- Get Homeroom Attendance for a Year Group and Term
- Get Homeroom Attendance for a Year Group on a specified Date
- Get all Classes
- Get a Class
- Get Students for a Class
- Add Students to a Class
- Remove Students from a Class
- Get Tasks for a Class
- Get a Task for a Class
- Get Student Assessment Results for a Task and Class
- Get Term Grades for a Class
- Get all Grades for a Class during an Academic Term
- Get Attendance for a Class during an Academic Term
- Get Class Attendance for a Date
- Get all Memberships
- Get all Students
- Get a Student
- Create New Student
- Update a Student
- Archive a Student
- Unarchive a Student
- Get all Teachers
- Get a Teacher
- Create New Teacher
- Update a Teacher
- Get all Parents
- Get a Parent
- Create New Parent
- Update a Parent
- Archive a Parent
- Unarchive a Parent
- Get School Details
- Get Academic Years
- Get School Grades
- Get School Subjects
- Get Avatar
ManageBac API ChangeLog
January 25, 2021
- Term grades export rounded to 6 decimal places
May 5, 2020
- Added last_accessed_at to student index and show responses
May 15, 2019
- Added include_archived_students query parameter for classes/:class-id/assessments/term/:id/term-grades and classes/:class-id/assessments/term/:id/grades
Nov 28, 2018
- Added students data to ib-groups/:ib-group-id/students response
Jun 25, 2018
- Added attendance endpoints:
May 25, 2018
- List class tasks
- Show a class task
- List students assessments for a given task of a given class
December 12, 2017
- Added new endpoints: classes/:class-id/assessments/term/:id/term-grades and classes/:class-id/assessments/term/:id/grades
July 31, 2017
- Added new endpoints: school/academic-years, school/grades and school/subjects
July 24, 2017
- Added ability to scope classes output by student: students/:id/classes
July 10, 2017
- Added API extensions
- Removed School endpoints
July 4, 2017
- List IB Group students
May 19, 2017
- Archive/unarchive students
- Archive/unarchive parents
- Add/remove students to/from classes
API Frequently Asked Questions
Does ManageBac integrate with ____ ?
If the product is not listed under Settings > Integrations > Partners, then we do not have any formal relationship. In these scenarios, your school may still be able to establish a custom integration by using the public API.
Can ManageBac Support build integration with ____ for us?
Let us know what system you are looking to integrate with ManageBac, and we will of course consider if it makes sense for us as a company and product to be a direct partner with the tool or service of interest.
Can ManageBac Support write the API request for us?
The ManageBac Support team is able to provide guidance on any issues or questions about the API, but all API requests will need to be done by your school directly. If you are looking to establish such a custom connection, please consult with your IT department.
What is the ManageBac API Rate Limit?
Note that the API request limit is 200 requests per minute from the same IP address.
Where can I find guidance on how to use the ManageBac public API?
Please refer to Settings > Develop > Reference Docs for details on each field and latest Change Log notes.
My API request has an issue, who do I contact?
Please email email@example.com with clear details of the request and error being experienced.