Developer Portal

API reference

Welcome to the Zunia API reference! Education Horizons' Zunia platform is built to be built on, whether you're an app developer, an IT manager or DBA at a school, or a teacher. Whoever you are, whatever the context, we want to make it easy for you to build on Zunia in a simple, secure, and safe way.

We're still building Zunia and its API, so please get in touch if you have questions, comments, or suggestions.


The Zunia API is built around REST. Both request and response bodies are encoded using JSON.

Regional API hostnames

The Zunia API is available in each of the regions that Zunia is available, with a unique hostname for each. This means that you will need to use the appropriate regional hostname for the tenant you're interested in. For Australian tenants, use ....


To use the Zunia API, you will need an API key for your Zunia tenant:

  1. In Zunia, navigate to System configuration > API keys.
  2. Tap on "Generate key".
  3. Choose your key type: "standard" or "device". A "standard" key can be used by several devices, and is probably what you want.
  4. Enter a name for your key. Be descriptive!
  5. Choose whether you want a read-only ("basic") key, or whether you want to allow users of this key to modify data. We strongly recommend read-only keys for most uses.
  6. Note down your client ID and secret. Note that you won't be able to retrieve these from Zunia once they've been created! You can also grab the QR code, which encodes these values in JSON.
  7. Add your new key to the appropriate permission groups. This will allow you to control in detail what data and actions users of this key will be able to perform. As always, the recommendation is to be as conservative as possible with these permissions.

All your API requests must be made using HTTPS. If you try to use HTTP, your requests will fail.


Most GET requests require pagination when fetching lists. If you don't specify the page parameter, the first page of results will be returned.

The response will include a _meta object which tells you the total number of records in Zunia (totalRecords), the page number you've reqested (page), the number of items per page (limit), and the number returned on this page (displayedRecords).

If there are additional pages beyond the returned one, the _links object will include a link to the next page in the href member for convenience.


Most GET requests allow for querying a section of a dataset. The request will only return data that matches the query condition/(s).

The query parameters allowed to be used for a specific request are any of the top level keys of a data object within the list whose value is a primitive data type (integer, boolean, string). For example, the following query parameters can be used for /api/search/allergy:

  • allergyId
  • communityId
  • active
  • description
  • treatment

The querying is case sensitive and a query parameter looking for records with reference number a68bDka3H will not match A68bdKa3H.