Aller au contenu principal

Quickstart

De zéro à votre premier appel API en moins de 5 minutes.

Prérequis

  • Un compte QualiForma actif avec votre slug tenant
  • Python 3.9+ avec pip install requests, ou Node.js 18+, ou curl

Étape 1 : Obtenir un access token

Authentifiez-vous avec vos identifiants pour recevoir un JWT.

POST /auth/login · Python
import requests

# 1. S'authentifier
response = requests.post(
    'https://api.qualiforma.site/api/v1/auth/login',
    headers={'X-Tenant-ID': 'votre-tenant'},
    json={
        'email': 'admin@example.com',
        'password': 'votre-mot-de-passe'
    }
)
data = response.json()['data']
access_token = data['accessToken']
refresh_token = data['refreshToken']

print(f"Access token: {access_token[:40]}...")
# Access token valide 1h — le rafraîchir avec refreshToken

Note : Le token expire après 1h. Utilisez refreshToken pour en obtenir un nouveau sans re-login.

Étape 2 : Récupérer votre profil

Le login ne retourne que les tokens — appelez /auth/me pour le profil utilisateur.

GET /auth/me · Python
# 2. Récupérer le profil utilisateur
me_response = requests.get(
    'https://api.qualiforma.site/api/v1/auth/me',
    headers={
        'Authorization': f'Bearer {access_token}',
        'X-Tenant-ID': 'votre-tenant'
    }
)
me = me_response.json()['data']

print(f"Connecté en tant que : {me['firstName']} {me['lastName']}")
print(f"Email : {me['email']}")
print(f"Rôle  : {me['role']}")

Étape 3 : Lister les formations

Récupérez le catalogue avec pagination, filtres statut, recherche texte.

GET /courses · Python
# 3. Lister les formations
courses_response = requests.get(
    'https://api.qualiforma.site/api/v1/courses',
    headers={
        'Authorization': f'Bearer {access_token}',
        'X-Tenant-ID': 'votre-tenant'
    },
    params={
        'page': 1,
        'perPage': 10,
        'status': 'PUBLISHED'  # optionnel
    }
)
result = courses_response.json()
courses = result['data']

for course in courses:
    print(f"- {course['title']} (id: {course['id']})")

Note : Le champ price est en centimes (49900 = 499,00 €).

Étape 4 : Inscrire un apprenant

Créez une inscription directement (FREE) ou via un flux de paiement.

POST /enrollments · Python
# 4. Inscrire un apprenant à une formation
enroll_response = requests.post(
    'https://api.qualiforma.site/api/v1/enrollments',
    headers={
        'Authorization': f'Bearer {access_token}',
        'X-Tenant-ID': 'votre-tenant',
        'Content-Type': 'application/json'
    },
    json={
        'courseId': 'crs_abc123',       # ID de la formation
        'userId': 'usr_xyz789',         # ID de l'apprenant
        'paymentMethod': 'FREE'         # FREE | VIVA_ISV | STRIPE
    }
)
enrollment = enroll_response.json()['data']
print(f"Inscription créée : {enrollment['id']}")
print(f"Statut : {enrollment['status']}")  # ACTIVE

Note : Requiert le rôle ADMIN ou CREATOR. LEARNER ne peut s'inscrire que via le formulaire web.

Prochaines étapes