Latest Poppulo platform GraphQL API
This guide explains how to create a Machine-to-Machine (M2M) API client in Poppulo and assign the appropriate permissions for your integration.
API clients are used by backend systems and integrations (for example, SCIM user provisioning or report exports) to authenticate with Poppulo using the OAuth 2.0 client credentials flow.
An API client:
You should create one API client per integration, scoped with the minimum permissions required.
Whilst OAuth defines a number of different Authorization flows Poppulo currently only supports the client credentials flow. This allows for Machine to Machine interactions with our services.
The Client Credentials flow is the simplest of the OAuth flows and is used to identify the calling service. This flow is best suited for Machine to Machine applications such as backend services.
OAuth is a mature standard with many tools that support the Client Credentials flow, OAuth maintains a list of packages for covering more than just Client Credentials:
The following sequence diagram illustrated the process for requesting an Access Token from an Authorization server and using the resulting Access Token:
To create an API client, you must:
Enter the following information:
Name
Description
These details are for administrative clarity only and do not affect behaviour.
Permissions define what the API client is allowed to do. Each integration must be granted only the permissions it requires.
You can assign multiple permissions to a single API client if needed.
| Permissions | Description | Typical Use Case |
|---|---|---|
enterprise:user | Manage users within the enterprise | SCIM user provisioning |
reports:export | Generate and download reports | Automated report exports |
ℹ️ Additional permissions will be added over time. Always review available permissions when creating a new API client.
SCIM user provisioning
Report exports only
Review the client configuration, then create the API client.
Once created, the Client ID and Client Secret will be displayed.
⚠️ Treat the Client Secret like a password. Do not commit it to source control or expose it in client-side code.
Use the Client ID and Client Secret to request an access token using the OAuth 2.0 client credentials flow.
Once you have an access token, include it in the Authorization header of API requests:
Authorization: Bearer <access_token>