> For the complete documentation index, see [llms.txt](https://guide.fariaedu.com/integrations-portal/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide.fariaedu.com/integrations-portal/managebac/public-rest-apis/overview.md).

# Overview

## Deprecation Notices

{% hint style="info" %}
The grades `uid` attribute from `GET /v2/school/grades` response has been deprecated and will be removed completely by the end of April 2024. In addition, `programs` from `/v2/school` response have been deprecated in favour of `enabled_programs` and will be removed completely by the end of April 2024. Please use `enabled_programs`instead.
{% endhint %}

{% hint style="info" %}
Associating children with parents through `POST` or `PATCH` `/parents` via the `child_ids` key is deprecated in favor of `POST /parents/:parent_id/children` and `PUT /parents/:parent_id/children` endpoints. That functionality is available in version `v2p0`.
{% endhint %}

## Base URL & Demo/Trial Accounts

Every ManageBac+ Public REST API call — including `POST /oauth/token` — is made against a base URL, not one single fixed domain. Which one you use depends on which cluster your school's account is hosted on:

| Cluster      | Base URL                       |
| ------------ | ------------------------------ |
| CA (default) | `https://api.managebac.com`    |
| CN           | `https://api.managebac.cn`     |
| US1          | `https://api.us.managebac.com` |
| US2          | `https://api.managebac.us`     |

{% hint style="warning" %}
**Demo and trial accounts are the exception.** A demo/sandbox account provided for evaluation (for example, one you log in to at `https://demo.managebac.com`) is not served by the shared `api.*` clusters above. For these accounts, use the **same domain you use to log in to the ManageBac+ web app** as your API base URL, for both the token endpoint and every subsequent call — e.g. `https://demo.managebac.com/oauth/token`, then `https://demo.managebac.com/v2p3/students`.

If `POST /oauth/token` against every `api.*` server above returns `access_denied`, try your account's own login domain before assuming your client ID/secret are wrong.
{% endhint %}

## Notes

* Properties in responses with `null` values are never rendered. The absence of a property indicates it is `null`. Developers can use the models to review properties that are expected.
* For all `POST` requests, payload properties with `null` values are ignored. Empty string values are not ignored and will overwrite existing values.
* Users whose roles are `AdminUser` , i.e. ManageBac admins, cannot be updated via 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`.
* Errors are returned if a user cannot be found, e.g. `parent_ids`, `child_ids`.
* Parameters available for `index` actions stack using `AND` logic.
* Note that soft deletion of records (such that `deleted_at` is set) does not change the record's modification timestamp. Thus, `deleted_at` parameter will return only records that have been marked as deleted, and `modified_since` will only return records that have changed, but not records that have been deleted since the given modification date.
* We want this API to be useful to you. If you have questions or concerns please contact us at <api@managebac.com>.
