Créer une formation
post
https://mudey.fr/api/v1/coursescourses:writeToujours créée en brouillon. Le programme complet (modules et leçons) peut être envoyé dans le même appel.
Authorization: Bearer mudey_sk_… header required. Create and use a key
Corps JSON
Les champs marqués * sont obligatoires.
| Champ | Type | Description |
|---|---|---|
| title* | string | Titre (5 à 200 caractères). |
| subtitle | string | null | Sous-titre. |
| shortDescription | string | null | Accroche du catalogue. |
| description | string | null | Description complète (50 caractères au moins pour publier). |
| language | string | Langue : fr, en, fr-BE… |
| level | BEGINNER | INTERMEDIATE | ADVANCED | ALL_LEVELS | Niveau, BEGINNER par défaut. |
| categoryId | string | null | Catégorie principale (GET /categories). |
| subcategoryId | string | null | Sous-catégorie : une des `subcategories` de la catégorie dans GET /categories. Retirée si la catégorie change sans elle. |
| primaryTopic | string | null | Sujet principal enseigné (« Python ») : sert au référencement de la fiche. |
| price | number | Prix Standard en unités (49.99), 0 = gratuite. Ramené sur la grille tarifaire et dans la fourchette réglée par Mudey. |
| originalPrice | number | null | Prix barré, purement affiché. |
| offerTier | STANDARD | PRIME | BUSINESS | Offre la plus haute déclarée. Prime se vend avec au moins 2 modules Prime publiés, Business avec 3 modules Business en plus. |
| primePrice | number | null | Prix Prime ; null = prix par défaut de Mudey. |
| businessPrice | number | null | Prix Business ; null = prix par défaut de Mudey. |
| objectives | string[] | Ce que l'élève saura faire. |
| requirements | string[] | Prérequis. |
| targetAudience | string[] | Public visé. |
| welcomeMessage | string | null | Message d'accueil. |
| congratulationsMessage | string | null | Message de fin. |
| metaTitle | string | null | Titre pour les moteurs de recherche. |
| metaDescription | string | null | Description pour les moteurs de recherche. |
| thumbnailKey | string | null | Couverture : clé S3 (kind = thumbnail). Obligatoire pour publier. |
| promoVideoKey | string | null | Vidéo de présentation : clé S3 (kind = video). |
| currency | string | Devise, EUR par défaut. Ne change plus ensuite. |
| sections | SectionCreate[] | Programme complet, dans l'ordre. |
Réponses
201Formation créée, en brouillon.401Clé absente, invalide, révoquée ou expirée.403Droit manquant sur la clé, ou compte qui n'est plus formateur.404Ressource introuvable dans vos formations.422Données invalides (details liste les champs).429Quota dépassé (300 appels par minute et par clé). Voir l'en-tête Retry-After.
Exemple
export MUDEY_API_KEY="mudey_sk_..."
curl -X POST "https://mudey.fr/api/v1/courses" \
-H "Authorization: Bearer $MUDEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Apprendre TypeScript",
"description": "Des bases aux types avancés, avec des exercices corrigés à chaque module.",
"level": "BEGINNER",
"price": 49.99,
"objectives": [
"Typer une application React",
"Écrire des types génériques"
],
"sections": [
{
"title": "Les bases",
"lessons": [
{
"title": "Installer TypeScript",
"isFree": true
},
{
"title": "Types primitifs"
}
]
}
]
}'