Developer docs
De Pluvo API geeft je programmatische toegang tot je leeromgeving. Beheer gebruikers, groepen, trainingen, inschrijvingen en certificaten vanuit je eigen systemen.
De API is gebaseerd op GraphQL. Je bepaalt zelf welke data je opvraagt of muteert, zonder overbodige velden. Authenticatie verloopt via OAuth 2.0 met client credentials. Webhooks houden je systemen real-time op de hoogte van wijzigingen.
GraphQL Interface
- The Pluvo API is a GraphQL-based interface for managing users, trainings, events, and more.
- Authentication is handled via an OAuth token based on
client_idandclient_secret. - Webhooks provide real-time updates about enrollments, statuses, and more.
- Endpoint:
https://[organization].pluvo.com/graphql/
The Pluvo API enables external systems such as HRM platforms and integration tools to programmatically communicate with the Pluvo platform.
Authentication
Access to the API requires an OAuth token that you request via:
POST https://[organization].pluvo.com/oauth/token/Important:
- Endpoint requires trailing slash
/ - Headers:
Content-Type: application/x-www-form-urlencoded - Body parameters:
grant_type=client_credentials,client_id,client_secret,scope
A valid token is included as a Bearer token:
Authorization: Bearer <your_token>Access tokens are valid for 24 hours. After expiry, request a new token. There is no refresh token flow for client_credentials.Scopes and Access Levels
Scopes control what your API client can access. Available scopes:
users.read/users.write— View/manage user profiles, roles, groupstrainings.read/trainings.write— View/manage learning journeys, modules, progressgroups.read/groups.write— View/manage groups, members, managersevents.read/events.write— View/manage offers, enrollmentsextra_categories.write— Create and update custom fields
Multiple scopes can be requested by separating with spaces: scope=users.read users.write trainings.readAPI Endpoint
All requests are made to:
https://[organization].pluvo.com/graphql/The trailing slash is required.
GraphQL: Brief Overview
You determine which fields you retrieve or update, ensuring minimal payloads and maximum flexibility.
query user($ref: String!) {
user(ref: $ref) {
ref
name
email
isActive
}
}The ref serves as a unique identifier within your own system.
Error Handling
GraphQL errors are returned in the response body with HTTP status 200. Always check the errors array:
{
"data": null,
"errors": [
{
"message": "User not found",
"locations": [{"line": 2, "column": 3}],
"path": ["user"]
}
]
}Common errors: Invalid/expired token (HTTP 401), insufficient scope, object not found (null with error), validation error (detailed message).
Webhooks
Pluvo supports webhooks for real-time notifications about user changes, training/course completion, enrollment status changes, portfolio/certificate events, and group changes. Configuration is done through the admin interface. Each request contains an HMAC signature for verification. See the Webhooks page for details.