Skip to content

Integrate ​

This guide is for anyone who wants to read or write Presente data from another system, such as an academic system: bring in students, classes and activities, or query attendance. The API is the same one the app uses.

What exists and what does not ​

  • Exists: an HTTP API with JSON bodies, described in the API reference and in the OpenAPI file.
  • Authentication: sign-in of a person (email and password) that returns a short-lived access token and a refresh token. See Authentication.
  • Does not exist: long-lived API keys, webhooks (Presente does not notify your system; you poll), a developer sign-up portal, or a test environment separate from the demo.
  • Who can do what depends on the role of the account you use: see Permissions. You can only read and change what that account could already do in the app.

Addresses ​

EnvironmentAPI baseWhat for
Productionhttps://app.presente.app.br/apiReal data of your institution.
Demohttps://demo.presente.app.br/apiFictional data, restored every Sunday early morning (whatever you change there does not stay). Good for testing your code.

The examples use $API for the base and $TOKEN for the access token:

bash
export API=https://demo.presente.app.br/api

Calls made straight from a browser, from another site, are not allowed (CORS). Integrate from a server of yours.

Where to start ​

  1. Authentication: get and renew the token.
  2. Permissions: which role the integration account needs.
  3. Errors and Pagination and limits: how the API answers when something goes wrong and how to list many items.
  4. The journeys, step by step: students, classes and activities.

Stability ​

The routes described here are the ones the app uses. They are internal and carry no stability guarantee: fields can be added, and a route can change when the app changes. Adding fields to a response is not treated as a breaking change, so ignore fields you do not know. If your integration needs a stronger guarantee, write to contato@presente.app.br.

The OpenAPI file and this reference are generated from the API code, so they reflect the published version.

Sample data ​

All examples use fictional data (made-up people, emails and identifiers). Never put real personal data in tests on the demo.

contato@presente.app.br