Operoo API

Operoo offers a Web API that allow organisations to retrieve information about their accounts such as profiles, groups and carers. Just sign in as a group administrator and follow the steps below.

Sign in


Generating an API Access Token

Each API call requires authentication. You must send the API key parameters on each of your API calls

After you login as a Group Administrator, go to Tools > Organisation Settings in the navigation menu. Click on Generate API Access Token on left menu to generate an API Access Key.

Once you have generated an API key, you can see it by clicking Show API Access Token at the bottom of Group settings.



If you feel your API key has been compromised, you can change the Access Token by clicking on Regenerate API Access Token.


Manage IP addresses for API access

For enhanced security, API access requests to the Operoo system are limited to white-listed IP addresses.

To allow requests from a particular IP, Group Administrators have to add the IP address of the computer to the allowed list by going to Tools > Organisation Settings > Manage IP addresses. Once you click the link, you will see a screen very similar to the one below where you will be able to white-list (allow) requests from trusted IP addresses.

The IP address of the computer that was initially used to generate the initial API token will automatically be added to the white-list but can be modified as necessary.


Query parameter definitions

The default URI format for all requests to the Operoo API. A successful (authenticated) response will always return the organization name.


Options

Options can be passed via the URL in API request.

Name Default Value Definition
profile_request false When profile_request=true, it fetches all the profile requests of organization
group false When group=true, it renders all the groups of organization
group_carer false When group_carer=true, it fetches all the carers of organization
external_group false When external_group=true, it fetches all the external groups of organization
external_profile_request false When external_profile_request=true, it fetches all the external profile requests of organization
profile true When profile=true, it fetches all the shared consented profiles of organization
Example query
Response for the query when all of the options are true

Working with Hierarchies

Any of the following calls can be made with an optional group_id parameter, which will allow you to specify which independent group you wish to make the call for. If this parameter is not passed, the group that generated the API key will be used.

Example query

The above would return all profile requests for group 14, as long as the API Access Token belongs to either group 14, or to an independent group above group 14 in the hierarchy tree.

Response Code Summary

Response Code Description
100 Success
101 Token not found
102 Invalid token
103 Token doesn't belong to master group
104 IP is not allowed to access the API
105 Problem saving a group
106 Group parameter is not present
107 Group not found with this id
108 Problem deleting a group
109 Group can't be deleted until it is empty
110 Carer parameter is not present
111 Carer already exists in Group
112 Problem saving group carer
113 Carer not found with this id
114 Problem deleting a group carer
115 Profile Request parameter is not present
116 Problem saving profile request
117 Profile Request not found with this id
118 Problem deleting profile request
119 External group parameter is not present
120 Problem saving external group
121 External Group not found with this id
122 Problem deleting external group
123 External profile request parameter is not present
124 Problem saving external profile request
125 External profile request not found with this id
126 Problem deleting external profile request
127 Problem deleting the admin
128 Administrator already exists in Group
129 Administrator not found with this id
130 Problem Importing Group Carer
131 Invalid admin parameters
132 admin_email parameter is not present
133 Cannot assign admins to subgroups
134 Administrator already exists in Group Hierarchy
135 Log description is empty
150 Invalid Enquiry
151 You can not delete an eForm until it is empty
152 parent_id must be within your hierarchy
400 Object Not Found

Manage Groups

Retrieve group details (HTTP GET to Group)

To retrieve full list of existing groups, send a GET request with option group=true


Example Response

Add a new Group (HTTP POST to Groups)

To make a new group, send a POST request in the following format.

Example Response

Retrieve a specific (Sub) Group (HTTP GET to Groups)

Retrieve the details for a single, (sub) group, specified by its ID.
If you wish to look up the group using your own customer-integration-specific ID, then pass in integration_group=true, along with that ID.

Example Success Response

Example Failed Response

Modify an existing Group (HTTP PATCH to Groups)

Modifying a group requires a group_id to be passed in with the request.

Example Response

Delete a Group (HTTP DELETE to Groups)

Deleting a group requires a group_id to be passed in with the request.

Example Response

Getting Profiles for a Given Group

A list of profiles that are contained in a given group can be retreived by sending a GET request to the URL below, and providing a group id in the url.


Adding Profiles to a Group

Profiles can be added to a group by making a PUT or POST call to the URL below, and passing in a list of profile ids.

PUT call - will add and remove profiles to/from the group until the profiles in the group match the list of profile ids provided
POST call - will add members to the group provided


Profiles can also be added to a group using the integration_group_id that was set when creating the member, by changing the URL for this PUT call slightly, as below.


Injury report for Group

To list all the incidents/injuries for a group requires a GET call to `group/incidents` as follows:

Example Response

Creating Groups in a Hierarchy

There are two types of groups in a Operoo hierarchy.
Independent Group are considered to be thier own entity, and will have their own settings, profiles, carers and eforms.
Sub Group are a grouping of profiles within an independent group.

You can create a sub group by sending a POST request to 'groups/:id/sub_groups' as follows:


You can create an independent group by sending a POST request to 'groups/:id/independent_groups' as follows:


Parameters for both of the above calls
  • name - The name of the new group
  • integration_group_id (optional) - An identifier that can be used to keep groups in sync with an external system

Manage Carers

Retrieve carer details (HTTP GET to Group_carers)

To retrieve full list of existing carers, send a GET request to `group_carers` as follows:


Example Response

Add a new Carer (HTTP POST to Group_carers)

To add a new carer, send a POST request in the following format:

Example Response

Modify a Carer (HTTP PATCH to Group_carers)

To update an existing carer, send a PATCH request with group_carer_id in the following format:

Example Response

Delete a (HTTP DELETE to Group_carers)

To delete an existing carer, send a DELETE request with group_carer_id in the following format:

Example Response

Manage eForm Enquiries

Retrieve all eForms (HTTP GET to Enquiries)

To retrieve full list of existing eForms, send a GET request to Enquiries


Example Response

Retrieve eForm details by id (HTTP GET to Enquiries)

To retrieve a specific eForm, send a GET request to Enquiries


Example Response

Update eForm details by id (HTTP PATCH to Enquiries)

To update a specific eForm, send a PATCH request to Enquiries


Example Response

Add New eForm (HTTP POST to Enquiries)

Create a new eform by sending a POST request in the following format:

Example Response

Delete an eForm Request (HTTP DELETE to enquiries)

To delete an existing profile request, send a DELETE request with member_id in the following format:

Example Responses

Manage Profile Requests

Retrieve all profile requests (HTTP GET to Profile_request)

To retrieve full list of existing profile requests, send a GET request with option profile_request=true


Example Response

To retrieve profile requests along with private notes, send a profile_request with private_notes=true


Example Response

Add New Profile Request (HTTP POST to profile_request)

To add a new profile request (e.g. for group 123), send a POST request in the following format:

Example Response

Update A Profile Request (HTTP PATCH to profile_request)

To update an existing profile request, send a PATCH request with member_id in the following format.

Example Response

Delete a Profile Request (HTTP DELETE to profile_request)

To delete an existing profile request, send a DELETE request with member_id in the following format:

Example Response

Integration Member ID

As well as the parameters supplied in the PATCH and POST methods above, there is also the optional parameter integration_member_id which can be used when creating more complex synchronisations between Operoo and external systems. If entered upon creation, or via update, this integration_member_id can then be used in place of the regular member id when making certain API calls.


Manage External Groups

Retrieve external groups (HTTP GET to external_group)

To retrieve full list of existing external groups, send a GET request with option external_group=true


Example Response

Add a new Group (HTTP POST to External Group)

To make a new external group, send a POST request in the following format.

Example Response

Modify an existing External Group (HTTP PATCH to External Group)

Modifying a group requires a external_group_id to be passed in with the request.

Example Response

Delete an External Group (HTTP DELETE to External Group)

Deleting an external group requires a external_group_id to be passed in with the request.

Example Response

Manage External Profile Requests

Retrieve all external profile requests (HTTP GET to external_profile_request)

To retrieve full list of existing profile requests, send a GET request with option external_profile_request=true


Example Response

Add New External Profile Request (HTTP POST to external_profile_request)

To add a new external profile request send a POST request in the following format:

Example Response

Update an External Profile Request (HTTP PATCH to external_profile_request)

To update an existing external profile request, send a PATCH request with external_member_id in the following format.

Example Response

Delete an Existing Profile Request (HTTP DELETE to external_profile_request)

To delete an existing external profile request, send a DELETE request with external_member_id in the following format:

Example Response


Manage Administrators

Create a new administrator (HTTP POST to groups/:group_id/admins)

To create a new administrator, send a post call to groups/:group_id/admins with valid params as follows:

Example Response

Retrieve existing administrators (HTTP GET to groups/:group_id/admins)

To retrieve full list of existing administrators, send a GET request to 'groups/:group_id/admins' as follows:

Example Response

Show a particular existing administrator (HTTP GET to '/groups/:group_id/admins/:id')

To retrieve administrator details, send a get request with existing administrator id as follows:

Example Response

Delete an existing administrator (HTTP DELETE to '/groups/:group_id/admins/:id')

To delete an administrator (revoking administrator access from group doesn't mean it is going to delete the user from system as well), send a DELETE request with existing administrator id as follows:

Example Response