Raw schema
{
"type": "object",
"properties": {
"q": {
"description": "Recherche libre sur l'intitulé de la formation et le diplôme préparé. EN: Free-text search on the programme title and the prepared diploma.",
"type": "string"
},
"city": {
"description": "Nom exact de la ville, tel que renvoyé par resolve_location. EN: Exact city name, as returned by resolve_location.",
"type": "string"
},
"postalCode": {
"description": "Code postal à cinq chiffres. Plus étroit que la ville dans les grandes agglomérations : 69003 ne ramène que le 3e arrondissement de Lyon, là que city vaut Lyon ramène toute la ville. EN: Five-digit postcode. Narrower than the city in large conurbations: 69003 returns only the 3rd arrondissement of Lyon, where city=Lyon returns the whole city.",
"type": "string"
},
"department": {
"description": "Département sous la forme « code - nom », ex. « 06 - Alpes-Maritimes », telle que renvoyée par resolve_location. Le nom seul ne ramène rien. EN: Department as « code - name », e.g. « 06 - Alpes-Maritimes », as returned by resolve_location. The name alone matches nothing.",
"type": "string"
},
"region": {
"description": "Nom de la region. EN: Region name.",
"type": "string"
},
"voie": {
"description": "Voie d'accès. Valeurs acceptées : scolaire, continue, apprentissage, contrat_pro. Pour « en alternance », utiliser apprentissage puis contrat_pro. EN: Access route. Accepted values: scolaire, continue, apprentissage, contrat_pro. For work-study, try apprentissage then contrat_pro.",
"type": "string"
},
"modality": {
"description": "Modalité de suivi. Valeurs acceptées : presentiel, partiel_distance, entierement_distance, presentiel_ou_distance. Pour « à distance », utiliser entierement_distance. EN: Delivery mode. Accepted values: presentiel, partiel_distance, entierement_distance, presentiel_ou_distance. For fully remote, use entierement_distance.",
"type": "string"
},
"exitLevel": {
"description": "Niveau de sortie du diplôme préparé. Valeurs acceptées : cap_bep, bac, bac_plus_1, bac_plus_2, bac_plus_3, bac_plus_4, bac_plus_5, bac_plus_6, bac_plus_7, bac_plus_8, bac_plus_9_plus, na. EN: Exit level of the prepared diploma. Accepted values: cap_bep, bac, bac_plus_1 through bac_plus_9_plus, na.",
"type": "string"
},
"maxPrice": {
"description": "Prix maximum en euros. Une formation en apprentissage est gratuite pour l'apprenti. EN: Maximum price in euros. Apprenticeship programmes are free for the apprentice.",
"type": "number"
},
"certificationId": {
"description": "Identifiant d'un diplôme, pour ne garder que les formations qui y préparent. EN: Diploma id, to keep only the programmes preparing for it.",
"type": "number"
},
"establishmentId": {
"description": "Identifiant d'un établissement, obtenu via search_training_centers : renvoie alors les formations de cet établissement, en ignorant les autres filtres. C'est la seule façon fiable de répondre à « quelles formations propose l'école X » — chercher le nom de l'école dans q ne marche que si ce nom est rare, et ramène sinon les formations d'autres organismes. EN: Establishment id, from search_training_centers: returns that establishment's programmes, ignoring the other filters. This is the only reliable way to answer « which programmes does school X offer » — searching the school name in q only works when that name is rare, and otherwise returns other providers' programmes.",
"type": "number"
},
"romeCode": {
"description": "Code ROME du métier visé, de la forme J1506. EN: ROME code of the target job, e.g. J1506.",
"type": "string"
},
"aroundLat": {
"description": "Latitude du centre du rayon, prise telle quelle dans la réponse de resolve_location. Toujours avec aroundLng et radiusKm. EN: Latitude of the radius centre, taken verbatim from resolve_location. Always with aroundLng and radiusKm.",
"type": "number"
},
"aroundLng": {
"description": "Longitude du centre du rayon, prise telle quelle dans la réponse de resolve_location. EN: Longitude of the radius centre, taken verbatim from resolve_location.",
"type": "number"
},
"radiusKm": {
"description": "Rayon en kilomètres, de 1 à 200 — 15 km est un bon départ, à élargir si vide. Pour « près de X » ou « autour de X », ou quand une petite ville ne donne rien : resolve_location d'abord, puis ses latitude/longitude ici. Le rayon REMPLACE city et postalCode, jamais en cumul — les résultats sont triés par distance croissante et portent distanceKm. EN: Radius in km, 1 to 200 — 15 km is a good start, widen if empty. For « near X », resolve the city first, then pass its latitude/longitude here. The radius REPLACES city and postalCode, never combined — results are sorted by distance and carry distanceKm.",
"type": "number"
},
"cpfEligible": {
"description": "Ne garder que les formations finançables par le compte personnel de formation (CPF). L'éligibilité vaut à la date du dernier import du catalogue MonCompteFormation : c'est un indice fort, jamais une garantie, et « false » signifie « absente de ce catalogue », pas « inéligible » de façon certaine. EN: Keep only programmes fundable through the French personal training account. Eligibility reflects the last import of the MonCompteFormation catalogue: a strong hint, never a guarantee, and false means « not in that catalogue », not « definitely ineligible ».",
"type": "boolean"
},
"limit": {
"description": "Nombre de résultats, 1 à 20 (défaut 10). EN: 1 to 20 (default 10).",
"type": "number"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}