Digiforma GraphQL API
Digiforma is a French training management platform (centre de formation). Query it via GraphQL.
Authentication
All requests use Bearer token auth. The API key is stored in environment variable DIGIFORMA_API_KEY.
Endpoint
POST https://app.digiforma.com/api/v1/graphql
How to query
Use curl:
curl -s -X POST https://app.digiforma.com/api/v1/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DIGIFORMA_API_KEY" \
-d '{"query": "YOUR_GRAPHQL_QUERY"}'
Common queries
List trainees (stagiaires)
{ trainees(perPage: 20, page: 1) { items { id firstName lastName email phone } pagination { totalItems totalPages } } }
Search trainee by name
{ trainees(perPage: 10, page: 1, search: "NOM") { items { id firstName lastName email phone } } }
List training sessions
{ trainingSessions(perPage: 20, page: 1) { items { id name status startDate endDate program { name } } pagination { totalItems totalPages } } }
List programs
{ programs(perPage: 20, page: 1) { items { id name duration } pagination { totalItems totalPages } } }
List invoices
{ invoices(perPage: 20, page: 1) { items { id number amount status dueDate company { name } } pagination { totalItems totalPages } } }
List trainers (formateurs)
{ trainers(perPage: 20, page: 1) { items { id firstName lastName email } pagination { totalItems totalPages } } }
Training session details
{ trainingSession(id: ID) { id name status startDate endDate program { name } trainees { firstName lastName email } trainer { firstName lastName } } }
Pagination
Always use perPage and page. Check pagination.totalPages to know if more pages exist.
Important notes
- All dates are ISO format
- Status values: draft, planned, ongoing, completed, cancelled
- Always paginate large results (perPage max ~50)
- For complex filters, combine search with status filters