{
  "info": {
    "name": "Skilzy Partner API (v1)",
    "description": "Collection officielle de l'API partenaire Skilzy (lecture seule, scopée à ton organisation).\n\n1. Ouvre les variables de la collection et colle ta clé dans `apiKey` (générée depuis la page « API & intégrations » de ton dashboard).\n2. Lance les requêtes. L'authentification Bearer est héritée au niveau de la collection.\n\nDoc complète : https://skilzy.io/documentation/api",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [{ "key": "token", "value": "{{apiKey}}", "type": "string" }]
  },
  "variable": [
    { "key": "baseUrl", "value": "https://skilzy.io/api/v1", "type": "string" },
    { "key": "apiKey", "value": "sk_live_xxx", "type": "string" },
    { "key": "year", "value": "2026", "type": "string" }
  ],
  "item": [
    {
      "name": "Apprenants : synthèse (learners)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/learners?limit=100&year={{year}}",
          "host": ["{{baseUrl}}"],
          "path": ["learners"],
          "query": [
            { "key": "limit", "value": "100" },
            { "key": "year", "value": "{{year}}" }
          ]
        },
        "description": "Une ligne par apprenant : temps actif, programmes, évaluations, satisfaction…"
      }
    },
    {
      "name": "Compteurs org (summary)",
      "request": {
        "method": "GET",
        "header": [],
        "url": { "raw": "{{baseUrl}}/summary", "host": ["{{baseUrl}}"], "path": ["summary"] },
        "description": "Objet unique : nombre d'apprenants + licences par type. Pas de pagination."
      }
    },
    {
      "name": "Apprenants + licence (users)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/users?limit=100",
          "host": ["{{baseUrl}}"],
          "path": ["users"],
          "query": [{ "key": "limit", "value": "100" }]
        }
      }
    },
    {
      "name": "Émargement tutorat (attendance)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/attendance?year={{year}}",
          "host": ["{{baseUrl}}"],
          "path": ["attendance"],
          "query": [{ "key": "year", "value": "{{year}}" }]
        }
      }
    },
    {
      "name": "Progression (progress)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/progress?limit=1000",
          "host": ["{{baseUrl}}"],
          "path": ["progress"],
          "query": [{ "key": "limit", "value": "1000" }]
        }
      }
    },
    {
      "name": "Un seul apprenant (learners · email)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/learners?email=apprenant@orga.fr",
          "host": ["{{baseUrl}}"],
          "path": ["learners"],
          "query": [{ "key": "email", "value": "apprenant@orga.fr" }]
        },
        "description": "Filtre mono-apprenant : toutes les ressources acceptent ?email= (ou ?user_id=). 404 si l'email est inconnu dans l'organisation."
      }
    },
    {
      "name": "Avancement sur une formation (enrollments · email + programme)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/enrollments?email=apprenant@orga.fr&programme=marketing-contenus-rs7439",
          "host": ["{{baseUrl}}"],
          "path": ["enrollments"],
          "query": [
            { "key": "email", "value": "apprenant@orga.fr" },
            { "key": "programme", "value": "marketing-contenus-rs7439" }
          ]
        },
        "description": "Avancement d'un apprenant sur UNE formation : pourcentage, leçons vues, premiere_connexion_le et derniere_connexion_le (date + heure du premier lancement et de la dernière connexion au cours)."
      }
    },
    {
      "name": "Réponses de quiz détaillées (quiz-answers)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/quiz-answers?email=apprenant@orga.fr",
          "host": ["{{baseUrl}}"],
          "path": ["quiz-answers"],
          "query": [{ "key": "email", "value": "apprenant@orga.fr" }]
        },
        "description": "Une ligne par (tentative × question) : question, options, réponse choisie, bonne réponse, correct, horodatage."
      }
    },
    {
      "name": "Rapport d'activité PDF (activity-report)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/activity-report?email=apprenant@orga.fr&year={{year}}",
          "host": ["{{baseUrl}}"],
          "path": ["activity-report"],
          "query": [
            { "key": "email", "value": "apprenant@orga.fr" },
            { "key": "year", "value": "{{year}}" }
          ]
        },
        "description": "Renvoie le dossier d'audit PDF de l'apprenant (binaire application/pdf). Optionnel : &programme=<slug> pour limiter à une formation. Dans Postman, utilise « Send and Download »."
      }
    },
    {
      "name": "Sync incrémentale (evaluations · updated_since)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/evaluations?updated_since=2026-06-01",
          "host": ["{{baseUrl}}"],
          "path": ["evaluations"],
          "query": [{ "key": "updated_since", "value": "2026-06-01" }]
        },
        "description": "Ne renvoie que les lignes dont la date ≥ updated_since (sync incrémentale)."
      }
    },
    {
      "name": "Export CSV (learners · format=csv)",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/learners?format=csv&year={{year}}",
          "host": ["{{baseUrl}}"],
          "path": ["learners"],
          "query": [
            { "key": "format", "value": "csv" },
            { "key": "year", "value": "{{year}}" }
          ]
        },
        "description": "Renvoie un fichier CSV (UTF-8 avec BOM) au lieu du JSON."
      }
    },
    {
      "name": "Inscrire un apprenant (POST users · write)",
      "request": {
        "method": "POST",
        "header": [{ "key": "Content-Type", "value": "application/json" }],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"apprenant@orga.fr\",\n  \"programme_slugs\": [\"marketing-contenus-rs7439\"]\n}",
          "options": { "raw": { "language": "json" } }
        },
        "url": { "raw": "{{baseUrl}}/users", "host": ["{{baseUrl}}"], "path": ["users"] },
        "description": "Inscrit un apprenant dans l'organisation. Nécessite une clé au scope « write » ({{apiKey}} doit être une clé write). Attribue une licence disponible ; 409 si aucune licence."
      }
    }
  ]
}
