Aller au contenu principal

Qualiopi

Export du dossier d'audit par formation et validation pré-publication des 32 indicateurs Qualiopi. Réservé aux comptes ADMIN du tenant.

Endpoints disponibles

  • GET/api/v1/qualiopi/courses/:courseId/audit-export/preview
  • GET/api/v1/qualiopi/courses/:courseId/audit-export
  • GET/api/v1/qualiopi/check-publication

GET/qualiopi/courses/:courseId/audit-export/preview

Retourne la liste des documents qui seront inclus dans l'export ZIP avec leur taille estimée et la couverture des 32 indicateurs. Idéal pour afficher un récapitulatif avant le téléchargement.

Aperçu de l’export · Python
import requests

course_id = "crs_abc123"

response = requests.get(
    f'https://api.qualiforma.site/api/v1/qualiopi/courses/{course_id}/audit-export/preview',
    headers={
        'Authorization': f'Bearer {access_token}',
        'X-Tenant-ID': 'votre-tenant'
    }
)

preview = response.json()['data']
print(f"Documents inclus : {preview['documentCount']}")
print(f"Indicateurs couverts : {preview['indicatorsCovered']} / 32")
print(f"Taille estimée : {preview['estimatedSizeMb']} MB")

for doc in preview['documents']:
    print(f"  - [{doc['indicator']}] {doc['name']}")

GET/qualiopi/courses/:courseId/audit-export

Télécharge l'archive ZIP complète du dossier d'audit pour la formation. Le contenu est généré à la volée à partir des données du tenant. Streaming HTTP pour les gros dossiers (centaines de MB).

Télécharger l’export · Python
import requests

course_id = "crs_abc123"

# Téléchargement du ZIP (stream pour les gros dossiers)
with requests.get(
    f'https://api.qualiforma.site/api/v1/qualiopi/courses/{course_id}/audit-export',
    headers={
        'Authorization': f'Bearer {access_token}',
        'X-Tenant-ID': 'votre-tenant'
    },
    stream=True
) as response:
    response.raise_for_status()
    with open(f'audit-{course_id}.zip', 'wb') as f:
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)

print(f"Dossier d'audit exporté : audit-{course_id}.zip")

GET/qualiopi/check-publication

Évalue la conformité Qualiopi d'une formation et retourne la liste des bloquants / avertissements. À appeler en pré-flight avant tout PATCH /courses/:id avec status: PUBLISHED.

Validation pré-publication · Python
import requests

course_id = "crs_abc123"

response = requests.get(
    'https://api.qualiforma.site/api/v1/qualiopi/check-publication',
    headers={
        'Authorization': f'Bearer {access_token}',
        'X-Tenant-ID': 'votre-tenant'
    },
    params={'courseId': course_id}
)

result = response.json()['data']

if result['canPublish']:
    print(f"Formation prête à publier ({result['score']}/100)")
else:
    print(f"Bloquants ({len(result['blockers'])}) :")
    for blocker in result['blockers']:
        print(f"  - [{blocker['indicator']}] {blocker['message']}")
    print(f"Avertissements ({len(result['warnings'])}) :")
    for warn in result['warnings']:
        print(f"  - {warn['message']}")