image

Digiforma

Verified

by mibbou

Digiforma is a French training management platform (centre de formation). Query it via GraphQL. All requests use Bearer token auth. The API key is stored in environment variable `DIGIFORMA_API_KEY`. POST https://app.digiforma.com/api/v1/graphql Use curl: ```bash 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"}' ``` ```graphql { trainees(perPage: 20, page: 1) { items

View on GitHub

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