- Référence des champs
- Structure par champ
- id
- date
- updated_at
- valid_through
- title
- is_work_study
- contract_type
- contract_label
- work_hours
- work_hours_label
- employment_type
- activity_sector_label
- description
- position
- profile
- qualification_label
- location
- postcode
- commune_code
- latitude
- longitude
- department
- region
- country
- subsidiary
- is_adapted_company
- is_disability_inclusive_employer
- is_accessible_to_disabled_workers
- contact_name
- contact_phone
- contact_email
- contact_comment
- company_url
- application_url
- source_offer_url
- company_logo_url
- partners
- salary
- salary_min
- salary_max
- salary_comment
- salary_benefit_label_1
- salary_benefit_label_2
- salary_complements
- occupation_name
- occupation_location_name
- salary_estimated_currency
- salary_estimated_duration
- salary_estimated_median
- salary_estimated_percentile10
- salary_estimated_percentile25
- salary_estimated_percentile75
- salary_estimated_percentile90
- establishment_workforce_range
- naf_code
- rome
- rome_label
- rome_appellation_label
- available
- remote_work_mode
- applicant_location_requirements
- experience
- formations
- skills
- professional_qualities
- languages
- permits
- work_context_conditions
- work_context_schedules
- posted_via
- Tableau des champs
- Cas des requêtes PUT (édition d’une offre)
Cette section présente une liste exhaustive et détaillée des champs autorisés dans les différents endpoints de l'API EasyJobs. Chaque champ est décrit avec son nom exact, son type, le format attendu, son caractère obligatoire, sa longueur, sa description, ses contraintes, ainsi que des exemples précis.
Cette documentation est basée sur les règles de validation appliquées lors de la création d’une offre (requêtes POST).
Pour les requêtes de modification (méthode PUT), seuls les champs id et date sont obligatoires, tous les autres champs sont optionnels, mais s’ils sont présents, ils doivent respecter les mêmes règles de format et de contenu que pour la création. Pour plus de détails, consultez la section Cas des requêtes PUT.
- Nom : Le nom exact utilisé dans les requêtes et les réponses de l’API.
- Type : Le type de données (ex. : string, integer, boolean, date, etc.).
- Format attendu (si applicable) : Les règles spécifiques que le contenu doit respecter (ex. : chaîne alphanumérique, date et heure, etc.).
- Pattern : L’expression régulière utilisée pour valider le format exact du champ. Fournit une définition technique précise des valeurs acceptées.
- Longueur (si applicable) : Les limites minimales et maximales du contenu (nombre de caractères).
- Obligatoire : Indique si le champ est requis ou non dans les requêtes (Oui / Non / Conditionnel).
- Description : Une explication concise de l’objectif ou de la signification du champ.
- Contraintes : Informations complémentaires utiles ou règles particulières.
- Exemple : Une ou plusieurs valeurs d’exemple valides pour illustrer le format attendu.
- Type : string
- Format attendu : Chaîne alphanumérique sans espaces ni symboles.
- Pattern :
^[a-zA-Z0-9]+$ - Longueur : 4 à 128 caractères.
- Obligatoire : Oui
- Description : Identifiant unique de l’offre.
- Contraintes :
- - Champ obligatoire
- - Doit être unique pour chaque offre.
- - Uniquement lettres (
a–z, A–Z) et chiffres (0–9) sans espaces, symboles ni accents.
Exemple :
{
"id": "4M0123456N43N26"
}
- Type : string
- Format attendu : Date et heure au format
YYYY-MM-DD HH:mm:ss. - Pattern :
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$ - Longueur : 19 caractères.
- Obligatoire : Oui
- Description : Date de création de l’offre.
- Contraintes :
- - Champ obligatoire
- - Format strict :
YYYY-MM-DD HH:MM:SS. - - Ne peut pas être supérieure à l’heure courante avec une tolérance maximale de 2 heures.
Exemple :
{
"date": "2025-04-22 10:09:27"
}
- Type : string
- Format attendu : Date et heure de mise à jour au format
YYYY-MM-DD HH:mm:ss. - Pattern :
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$ - Longueur : 19 caractères.
- Obligatoire : Non
- Description : Date et heure de la dernière mise à jour de l’offre.
- Contraintes :
- - Doit respecter exactement le format
YYYY-MM-DD HH:mm:ss. - - Ne doit pas contenir d’autres formats de date.
- - Ne doit pas contenir de fuseau horaire explicite.
Exemple :
{
"updated_at": "2026-04-21 14:35:00"
}
- Type : string
- Format attendu : Date et heure au format
YYYY-MM-DD HH:mm:ss. - Pattern :
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$ - Longueur : 19 caractères.
- Obligatoire : Non
- Description : Date d’expiration de l’offre, permet de préciser une date limite de validité.
- Contraintes :
- - Format strict :
YYYY-MM-DD HH:MM:SS. - - Si présent, doit être postérieur à date.
Exemple :
{
"valid_through": "2025-05-22 10:09:27"
}
- Type : string
- Format attendu : Chaîne composée de lettres (y compris accents), chiffres, espaces, apostrophes, tirets et ponctuation autorisée.
- Pattern :
^[0-9A-Za-z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\':’ -]+$ (u) - Longueur : 12 à 160 caractères.
- Obligatoire : Oui
- Description : Titre de l’offre d’emploi.
- Contraintes :
- - Champ obligatoire.
- - Ne doit pas être vide ou composé uniquement d'espaces.
- - Autorise lettres (avec accents), chiffres, espaces et les caractères :
. / + ( ) & , ' ’ : -.
Exemple :
{
"title": "Développeur Web Fullstack (H/F)"
}
- Type : boolean
- Format attendu :
trueoufalse. - Obligatoire : Non
- Description : Indique si l’offre correspond à un poste en alternance.
- Contraintes :
- - Doit être un booléen.
- - Les valeurs autorisées sont
trueetfalse.
Exemple :
{
"is_work_study": true
}
- Type : string
- Format attendu : Chaîne composée de lettres (y compris accents), apostrophes, espaces, tirets et slash.
- Pattern :
^[a-zA-ZÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ'’ \-\/]+$ (u) - Longueur : 3 à 64 caractères.
- Obligatoire : Oui
- Description : Type de contrat (CDI, CDD, Stage, Alternance, Intérim, Freelance, etc.).
- Contraintes :
- - Champ obligatoire.
- - Autorise lettres (avec accents), apostrophes (
'et’), espaces, tirets et slash.
Exemple :
{
"contract_type": "CDI"
}
- Type : string
- Format attendu : Libellé du type de contrat.
- Pattern :
/^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$/u - Longueur : 3 à 128 caractères.
- Obligatoire : Non
- Description : Texte lisible décrivant le type de contrat associé à l’offre.
- Contraintes :
- - Ne doit pas être inférieur à 3 caractères.
- - Ne doit pas dépasser 128 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"contract_label": "Contrat à durée indéterminée"
}
- Type : string
- Format attendu : Chaîne composée de lettres (toutes langues), chiffres, espaces, tirets, slashs et points.
- Pattern :
^[\p{L}\d\/\-\s.]+$ (u) - Obligatoire : Non
- Description : Temps de travail.
- Contraintes :
- - Autorise lettres (avec accents), chiffres, espaces, tirets, slashs et points.
Exemple :
{
"work_hours": "35h/semaine"
}
- Type : string
- Format attendu : Libellé de la durée de travail.
- Pattern :
/^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$/u - Longueur : 3 à 128 caractères.
- Obligatoire : Non
- Description : Texte lisible décrivant la durée ou l’organisation du temps de travail associé à l’offre.
- Contraintes :
- - Ne doit pas être inférieur à 3 caractères.
- - Ne doit pas dépasser 128 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"work_hours_label": "35H Horaires normaux"
}
- Type : string
- Format attendu : Valeur prédéfinie.
- Pattern : Pas de pattern (liste prédéfinie).
- Obligatoire : Non
- Description : Type d’emploi.
- Contraintes :
- - Doit être l’une des valeurs : Temps-plein, Temps-partiel, Temporaire ou Freelance.
Exemple :
{
"employment_type": "Temps-plein"
}
- Type : string
- Format attendu : Libellé du secteur d’activité.
- Pattern :
/^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$/u - Longueur : 2 à 128 caractères.
- Obligatoire : Non
- Description : Texte lisible décrivant le secteur d’activité associé à l’offre ou à l’entreprise.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 128 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"activity_sector_label": "Restauration traditionnelle"
}
- Type : string
- Format attendu : Chaîne libre incluant lettres (y compris accents), chiffres, espaces, ponctuation autorisée et balises HTML simples.
- Pattern :
^[0-9A-Za-z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :’<>*+@\[\]€\$#\|=°"%\\]+$ (u) - Longueur : 48 à 1024 caractères.
- Obligatoire : Non
- Description : Description de l’entreprise.
- Contraintes :
- - Longueur comprise entre 48 et 1024 caractères.
- - Caractères autorisés :
. / + ( ) & , ' ’ ! ? : < > * + @ [ ] € $ # | = ° " % \. - - Peut contenir des balises HTML simples (ex. : <p>, <ul>, <li>, <br>, etc.).
- - Ne doit pas contenir de scripts.
Exemple :
{
"description": "<p>Nous recherchons un développeur expérimenté pour rejoindre notre équipe agile...</p>"
}
- Type : string
- Format attendu : Chaîne libre incluant lettres (y compris accents), chiffres, espaces, ponctuation autorisée et balises HTML simples.
- Pattern :
^[0-9A-Za-z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :’<>*+@\[\]€\$#\|=°"%\\]+$ (u) - Longueur : 64 à 12288 caractères.
- Obligatoire : Oui
- Description : Description du poste.
- Contraintes :
- - Champ obligatoire.
- - Longueur comprise entre 64 et 12288 caractères
- - Caractères autorisés :
. / + ( ) & , ' ’ ! ? : < > * + @ [ ] € $ # | = ° " % \ -. - - Peut contenir des balises HTML simples (ex. : <p>, <ul>, <li>, <br>, etc.).
- - Ne doit pas contenir de scripts.
Exemple :
{
"position": "Nous recherchons un(e) développeur(se) web fullstack passionné(e) pour <a href=\"https://www.monsite.fr\">rejoindre</a> notre<br> équipe dynamique. Vous participerez à la conception et au développement d'applications web innovantes pour des clients internationaux."
}
- Type : string
- Format attendu : Chaîne libre incluant lettres (y compris accents), chiffres, espaces, ponctuation autorisée et balises HTML simples.
- Pattern :
^[0-9A-Za-z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :’<>*+@\[\]€\$#\|=°"%\\]+$ (u) - Longueur : 64 à 12288 caractères.
- Obligatoire : Non
- Description : Profil recherché.
- Contraintes :
- - Longueur comprise entre 64 et 12288 caractères
- - Caractères autorisés :
. / + ( ) & , ' ’ ! ? : < > * + @ [ ] € $ # | = ° " % \ -. - - Peut contenir des balises HTML simples (ex. : <p>, <ul>, <li>, <br>, etc.).
- - Ne doit pas contenir de scripts.
Exemple :
{
"profile": "Vous avez une <a href=\"https://www.monsite.fr\">expérience</a> de 3 ans minimum<br> en PHP, JavaScript et frameworks modernes. Vous aimez travailler en équipe et relever de nouveaux défis."
}
- Type : string
- Format attendu : Libellé de qualification.
- Pattern :
/^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$/u - Longueur : 2 à 128 caractères.
- Obligatoire : Non
- Description : Texte lisible décrivant le niveau ou le type de qualification associé à l’offre.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 128 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"qualification_label": "Employé qualifié"
}
- Type : string
- Format attendu : Chaîne Unicode composée de lettres, marques diacritiques, chiffres, apostrophes, espaces, tirets, slash, parenthèses et points.
- Pattern :
^[\p{L}\p{M}0-9'’ \-\/().]+$ (u) - Longueur : 2 à 64 caractères.
- Obligatoire : Oui
- Description : Lieu du poste ou localité principale.
- Contraintes :
- - Champ obligatoire.
- - Entre 2 et 64 caractères.
- - Autorise les lettres Unicode, les marques diacritiques, les chiffres, les apostrophes, les espaces, les tirets, les slashs, les parenthèses et les points.
Exemple :
{
"location": "Strasbourg"
}
- Type : string
- Format attendu : Code postal.
- Pattern :
^\d{5}$ - Longueur : 5 caractères.
- Obligatoire : Non
- Description : Code postal du poste.
- Format : 5 chiffres.
- Contraintes :
- - Exactement 5 chiffres (
0–9).
Exemple :
{
"postcode": "67000"
}
- Type : string
- Format attendu : Code commune sur 5 chiffres.
- Pattern :
^\d{5}$ - Longueur : 5 caractères.
- Obligatoire : Non
- Description : Code de la commune associé au lieu de travail.
- Contraintes :
- - Doit contenir exactement 5 chiffres.
- - Ne doit pas contenir d’espaces.
- - Les zéros initiaux sont autorisés.
Exemple :
{
"commune_code": "67482"
}
- Type : string
- Format attendu : Coordonnée décimale signée (latitude GPS).
- Pattern :
^-?\d{1,2}(?:\.\d{1,8})?$ - Longueur : 1 à 12 caractères.
- Obligatoire : Non
- Description : Latitude du lieu de travail.
- Contraintes :
- - Si présent, le champ
longitudedoit également être présent. - - Doit utiliser un point comme séparateur décimal.
- - Valeur comprise entre
-90et90. - - Ne doit pas contenir d’espaces.
Exemple :
{
"latitude": "48.690347"
}
- Type : string
- Format attendu : Coordonnée décimale signée (longitude GPS).
- Pattern :
^-?\d{1,3}(?:\.\d{1,8})?$ - Longueur : 1 à 13 caractères.
- Obligatoire : Non
- Description : Longitude du lieu de travail.
- Contraintes :
- - Si présent, le champ
latitudedoit également être présent. - - Doit utiliser un point comme séparateur décimal.
- - Valeur comprise entre
-180et180. - - Ne doit pas contenir d’espaces.
Exemple :
{
"longitude": "6.178548"
}
- Type : string
- Format attendu : Chaîne composée de lettres (toutes langues), chiffres et ponctuation simple autorisée.
- Pattern :
^[\p{L}\p{M}0-9'’ \-\/().]+$ (u) - Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Département administratif français associé au lieu du poste, utilisé à titre complémentaire pour enrichir les données de localisation.
- Contraintes :
- - Champ optionnel.
- - Entre 2 et 64 caractères
- - Autorise lettres (avec accents), chiffres, apostrophes (
'et’), espaces, tirets, slash, parenthèses et points.
Exemple :
{
"department": "Bas-Rhin"
}
- Type : string
- Format attendu : Chaîne de lettres et accents (toutes langues).
- Pattern :
^[\p{L}\p{M}'’ \-]+$ (u) - Longueur : 5 à 32 caractères.
- Obligatoire : Non
- Description : Nom de région, département ou zone administrative.
- Contraintes :
- - Champ optionnel.
- - Entre 5 et 32 caractères.
- - Autorise lettres, apostrophes (
'et’), espaces et tirets uniquement.
Exemple :
{
"region": "Grand-Est"
}
- Type : string
- Format attendu : Chaîne de lettres (y compris accents), apostrophes (
'et’) et tirets uniquement. - Pattern :
^[a-zA-ZÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ'’-]+$ (u) - Longueur : 4 à 64 caractères.
- Obligatoire : Oui
- Description : Pays.
- Contraintes :
- - Champ obligatoire.
- - Entre 4 et 64 caractères.
- - Aucun chiffre ni autre symbole.
- - Autorise uniquement les lettres (avec accents), les apostrophes (
'et’) et les tirets.
Exemple :
{
"country": "France"
}
- Type : string
- Format attendu : Chaîne composée de lettres (avec accents), chiffres, espaces et signes de ponctuation autorisés.
- Pattern :
^[0-9a-zA-Z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ._\/+()&,\'’: -]+$ (u) - Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Nom de l’entreprise.
- Contraintes :
- - Entre 2 et 64 caractères.
- - Caractères autorisés :
. _ / + ( ) & , : ' ’ -et espaces.
Exemple :
{
"subsidiary": "Agence Web"
}
- Type : boolean
- Format attendu :
trueoufalse. - Obligatoire : Non
- Description : Indique si l’offre est publiée par une entreprise adaptée.
- Contraintes :
- - Doit être un booléen.
- - Les valeurs autorisées sont
trueetfalse.
Exemple :
{
"is_adapted_company": true
}
- Type : boolean
- Format attendu :
trueoufalse. - Obligatoire : Non
- Description : Indique si l’employeur est identifié comme handi-engagé.
- Contraintes :
- - Doit être un booléen.
- - Les valeurs autorisées sont
trueetfalse.
Exemple :
{
"is_disability_inclusive_employer": true
}
- Type : boolean
- Format attendu :
trueoufalse. - Obligatoire : Non
- Description : Indique si l’offre est accessible aux travailleurs handicapés.
- Contraintes :
- - Doit être un booléen.
- - Les valeurs autorisées sont
trueetfalse.
Exemple :
{
"is_accessible_to_disabled_workers": true
}
- Type : string
- Format attendu : Nom du contact.
- Pattern :
/^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$/u - Longueur : 2 à 128 caractères.
- Obligatoire : Non
- Description : Nom de la personne ou du service de contact lié à l’offre.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 128 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"contact_name": "Service recrutement"
}
- Type : string
- Format attendu : Numéro de téléphone du contact.
- Pattern :
/^\+?[0-9().\/ \-]{6,32}$/ - Longueur : 6 à 32 caractères.
- Obligatoire : Non
- Description : Numéro de téléphone lié au contact de l’offre.
- Contraintes :
- - Ne doit pas être inférieur à 6 caractères.
- - Ne doit pas dépasser 32 caractères.
- - Peut contenir des chiffres, espaces, parenthèses, points, barres obliques, tirets et le signe
+en début de valeur.
Exemple :
{
"contact_phone": "+33 3 87 00 00 00"
}
- Type : string
- Format attendu : Adresse e-mail du contact.
- Pattern :
/^[^\s@]+@[^\s@]+\.[^\s@]+$/ - Longueur : 6 à 254 caractères.
- Obligatoire : Non
- Description : Adresse e-mail liée au contact ou à la candidature.
- Contraintes :
- - Ne doit pas être inférieur à 6 caractères.
- - Ne doit pas dépasser 254 caractères.
- - Doit être une adresse e-mail valide.
Exemple :
{
"contact_email": "recrutement@example.com"
}
- Type : string
- Format attendu : Commentaire libre du contact.
- Pattern :
/^[0-9A-Za-z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :’<>*+@[\]€$#|=°\"%\\;_-]+$/u - Longueur : 2 à 255 caractères.
- Obligatoire : Non
- Description : Texte complémentaire lié au contact ou aux modalités de candidature.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 255 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"contact_comment": "Merci d’envoyer votre candidature complète par e-mail."
}
- Type : string
- Format attendu : URL complète de l’entreprise recrutante.
- Pattern :
/^https:\/\/[^\s]+$/ - Longueur : 10 à 2048 caractères.
- Obligatoire : Non
- Description : URL du site web de l’entreprise ou de l’organisation qui recrute.
- Contraintes :
- - Ne doit pas être inférieure à 10 caractères.
- - Ne doit pas dépasser 2048 caractères.
- - Doit commencer par
https://. - - Ne doit pas contenir d’espaces.
- - Pour l’URL de candidature, utilisez
application_url.
Exemple :
{
"company_url": "https://www.entreprise.com"
}
- Type : string
- Format attendu : URL complète de candidature.
- Pattern :
/^https:\/\/[^\s]+$/ - Longueur : 10 à 2048 caractères.
- Obligatoire : Non
- Description : URL vers la page ou le formulaire permettant au candidat de postuler.
- Contraintes :
- - Ne doit pas être inférieure à 10 caractères.
- - Ne doit pas dépasser 2048 caractères.
- - Doit être une URL complète commençant par
https://. - - Ne doit pas contenir d’espaces.
Exemple :
{
"application_url": "https://entreprise.com/candidature/123"
}
- Type : string
- Format attendu : URL complète de l’offre d’origine.
- Pattern :
/^https:\/\/[^\s]+$/ - Longueur : 10 à 2048 caractères.
- Obligatoire : Non
- Description : URL source de l’offre d’emploi, telle que fournie par la plateforme ou le partenaire d’origine.
- Contraintes :
- - Ne doit pas être inférieure à 10 caractères.
- - Ne doit pas dépasser 2048 caractères.
- - Doit être une URL complète commençant par
https://. - - Ne doit pas contenir d’espaces.
Exemple :
{
"source_offer_url": "https://candidat.francetravail.fr/offres/recherche/detail/123456"
}
- Type : string
- Format attendu : URL valide.
- Pattern :
/^https:\/\/[^\s]+$/ - Obligatoire : Non
- Description : URL du logo de l’entreprise.
- Contraintes :
- - Doit commencer par
https://. - - Domaine valide (au moins un point, extension 2–63 lettres).
- - Il est recommandé que cette URL pointe directement vers le logo de l’entreprise.
Exemple :
{
"company_logo_url": "https://www.exemple.com/logo.png"
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les partenaires associés à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet peut contenir un nom, une URL d’offre et une URL de logo.
- Contraintes :
- -
partnersdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Les champs
name,offer_urletlogo_urlsont optionnels. - - Au moins un des trois champs doit être renseigné.
- - Si
offer_urloulogo_urlsont présents, ils doivent commencer parhttps://.
-
name
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères -
offer_url
Type : string
Pattern :^https:\/\/[^\s]+$
Longueur : 10 à 2048 caractères -
logo_url
Type : string
Pattern :^https:\/\/[^\s]+$
Longueur : 10 à 2048 caractères
Structure d’un item :
{
"name": "France Travail",
"offer_url": "https://candidat.francetravail.fr/offres/recherche/detail/123456",
"logo_url": "https://exemple.com/logo.png"
}
Exemple :
{
"partners": [
{
"name": "France Travail",
"offer_url": "https://candidat.francetravail.fr/offres/recherche/detail/123456",
"logo_url": "https://exemple.com/logo-france-travail.png"
},
{
"name": "Partenaire RH",
"offer_url": "https://partenaire-rh.com/offre/789",
"logo_url": "https://partenaire-rh.com/logo.png"
}
]
}
- Type : string
- Format attendu : Montant entier ou décimal (avec 1 à 2 décimales), suivi de
€ou$, d’un slash et d’une période autorisée :heure,jour,moisouan. - Pattern :
^[0-9]+(\.[0-9]{1,2})?[€$]\/(heure|jour|mois|an)$ (u) - Obligatoire : Conditionnel. L’un des modes de spécification du salaire doit être utilisé : soit
salary, soit le couplesalary_min/salary_max. - Description : Salaire global.
- Contraintes :
- - Format strict :
[nombre][€ ou $]/[heure|jour|mois|an]. - - Les décimales valides utilisent le point et non la virgule (ex. :
11.50€/heure). - - Éviter les textes libres (ex. : selon profil).
- - Ce champ est facultatif si un bloc
Occupationcomplet est fourni. - - Si ce champ est renseigné,
salary_minetsalary_maxne doivent pas être envoyés.
Exemple :
{
"salary": "3400€/mois"
}
- Type : string
- Format attendu : Montant entier ou décimal (avec 1 à 2 décimales), suivi de
€ou$, d’un slash et d’une période autorisée :heure,jour,moisouan. - Pattern :
^[0-9]+(\.[0-9]{1,2})?[€$]\/(heure|jour|mois|an)$ (u) - Obligatoire : Conditionnel. Requis si
salaryn’est pas spécifié. - Description : Permet de préciser une fourchette salariale cohérente (salaire minimum - salaire maximum).
- Contraintes :
- - Requis si
salaryn’est pas renseigné et qu’aucun blocOccupationcomplet n’est fourni. - - Doit être envoyé avec
salary_max. - - Doit être strictement inférieur à
salary_max. - - Ne peut pas être égal à
salary_max. - - Doit avoir la même devise et la même fréquence que
salary_max. - - Ne peut pas être combiné avec
salary. - - Les décimales valides utilisent le point et non la virgule.
Exemple :
{
"salary_min": "42000€/an",
"salary_max": "44300€/an"
}
- Type : string
- Format attendu : Montant entier ou décimal (avec 1 à 2 décimales), suivi de
€ou$, d’un slash et d’une période autorisée :heure,jour,moisouan. - Pattern :
^[0-9]+(\.[0-9]{1,2})?[€$]\/(heure|jour|mois|an)$ (u) - Obligatoire : Conditionnel. Requis si
salaryn’est pas spécifié. - Description : Permet de préciser une fourchette salariale cohérente (salaire minimum - salaire maximum).
- Contraintes :
- - Requis si
salaryn’est pas renseigné et qu’aucun blocOccupationcomplet n’est fourni. - - Doit être envoyé avec
salary_min. - - Doit être strictement supérieur à
salary_min. - - Ne peut pas être égal à
salary_min. - - Doit avoir la même devise et la même fréquence que
salary_min. - - Ne peut pas être combiné avec
salary. - - Les décimales valides utilisent le point et non la virgule.
Exemple :
{
"salary_min": "42000€/an",
"salary_max": "44300€/an"
}
- Type : string
- Format attendu : Commentaire libre sur le salaire ou les avantages.
- Pattern :
/^[0-9A-Za-z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :’<>*+@[\]€$#|=°\"%\\;_-]+$/u - Longueur : 2 à 255 caractères.
- Obligatoire : Non
- Description : Texte complémentaire lié au salaire, aux primes ou aux avantages.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 255 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"salary_comment": "Prime annuelle et participation aux frais de transport"
}
- Type : string
- Format attendu : Libellé d’un avantage lié à la rémunération.
- Pattern :
/^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$/u - Longueur : 2 à 128 caractères.
- Obligatoire : Non
- Description : Premier libellé d’avantage lié à la rémunération.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 128 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"salary_benefit_label_1": "Primes"
}
- Type : string
- Format attendu : Deuxième libellé d’un avantage lié à la rémunération.
- Pattern :
/^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$/u - Longueur : 2 à 128 caractères.
- Obligatoire : Non
- Description : Deuxième libellé d’avantage lié à la rémunération.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 128 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"salary_benefit_label_2": "Complémentaire santé"
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les compléments de salaire associés à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet peut contenir un code et un libellé de complément de salaire.
- Contraintes :
- -
salary_complementsdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Les champs
codeetlabelsont optionnels. - - Au moins un des deux champs doit être renseigné.
-
code
Type : string
Pattern :^[A-Za-z0-9._-]+$
Longueur : 1 à 64 caractères -
label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères
Structure d’un item :
{
"code": "PRIME",
"label": "Prime"
}
Exemple :
{
"salary_complements": [
{
"code": "PRIME",
"label": "Prime de rendement"
},
{
"code": "TR",
"label": "Titres-restaurant"
}
]
}
- Type : string
- Format attendu : Chaîne composée de lettres (toutes langues), chiffres et ponctuation simple autorisée.
- Pattern :
^[\p{L}\p{M}0-9'’ \-\/().]+$ (u) - Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Nom de l’occupation utilisée dans le bloc
Occupation, afin de décrire plus précisément le métier ou la fonction associée à l’estimation salariale. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Autorise lettres (avec accents), chiffres, apostrophes (
'et’), espaces, tirets, slash, parenthèses et points.
Exemple :
{
"occupation_name": "Développeur web"
}
- Type : string
- Format attendu : Chaîne composée de lettres (toutes langues), chiffres et ponctuation simple autorisée.
- Pattern :
^[\p{L}\p{M}0-9'’ \-\/().]+$ (u) - Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Nom de la zone géographique utilisée dans le bloc
Occupation, généralement un département, une région ou une zone administrative pertinente pour l’estimation salariale. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Autorise lettres (avec accents), chiffres, apostrophes (
'et’), espaces, tirets, slash, parenthèses et points.
Exemple :
{
"occupation_location_name": "Aix-en-Provence"
}
- Type : string
- Format attendu : Valeur prédéfinie.
- Pattern :
Pas de pattern (liste prédéfinie). - Obligatoire : Non
- Description : Devise utilisée pour les valeurs du salaire estimé dans le bloc
Occupation. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Doit être l’une des valeurs suivantes :
EUR,USD.
Exemple :
{
"salary_estimated_currency": "EUR"
}
- Type : string
- Format attendu : Valeur prédéfinie au format
ISO 8601simplifié. - Pattern :
Pas de pattern (liste prédéfinie). - Obligatoire : Non
- Description : Durée de référence utilisée pour l’estimation salariale dans le bloc
Occupation. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Doit être l’une des valeurs suivantes :
- -
PT1H: par heure - -
P1D: par jour - -
P1M: par mois - -
P1Y: par an
Exemple :
{
"salary_estimated_duration": "P1Y"
}
- Type : number
- Format attendu : Nombre positif avec jusqu’à 2 décimales.
- Pattern :
^\d+(?:\.\d{1,2})?$ - Obligatoire : Non
- Description : Valeur médiane estimée du salaire dans le bloc
Occupation. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Doit être un nombre valide avec jusqu’à 2 décimales.
Exemple :
{
"salary_estimated_median": 33000
}
- Type : number
- Format attendu : Nombre positif avec jusqu’à 2 décimales.
- Pattern :
^\d+(?:\.\d{1,2})?$ - Obligatoire : Non
- Description : Valeur estimée correspondant au 10e percentile du salaire dans le bloc
Occupation. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Doit être un nombre valide avec jusqu’à 2 décimales.
- - Ne peut pas être supérieur à
salary_estimated_percentile25.
Exemple :
{
"salary_estimated_percentile10": 28000
}
- Type : number
- Format attendu : Nombre positif avec jusqu’à 2 décimales.
- Pattern :
^\d+(?:\.\d{1,2})?$ - Obligatoire : Non
- Description : Valeur estimée correspondant au 25e percentile du salaire dans le bloc
Occupation. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Doit être un nombre valide avec jusqu’à 2 décimales.
- - Ne peut pas être inférieur à
salary_estimated_percentile10. - - Ne peut pas être supérieur à
salary_estimated_median.
Exemple :
{
"salary_estimated_percentile25": 30000
}
- Type : number
- Format attendu : Nombre positif avec jusqu’à 2 décimales.
- Pattern :
^\d+(?:\.\d{1,2})?$ - Obligatoire : Non
- Description : Valeur estimée correspondant au 75e percentile du salaire dans le bloc
Occupation. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Doit être un nombre valide avec jusqu’à 2 décimales.
- - Ne peut pas être inférieur à
salary_estimated_median. - - Ne peut pas être supérieur à
salary_estimated_percentile90.
Exemple :
{
"salary_estimated_percentile75": 36000
}
- Type : number
- Format attendu : Nombre positif avec jusqu’à 2 décimales.
- Pattern :
^\d+(?:\.\d{1,2})?$ - Obligatoire : Non
- Description : Valeur estimée correspondant au 90e percentile du salaire dans le bloc
Occupation. - Contraintes :
- - Champ optionnel.
- - Si un champ du bloc
Occupationest envoyé, ce champ devient obligatoire. - - Doit être un nombre valide avec jusqu’à 2 décimales.
- - Ne peut pas être inférieur à
salary_estimated_percentile75.
Exemple :
{
"salary_estimated_percentile90": 38000
}
- Type : string
- Format attendu : Tranche d’effectif de l’établissement.
- Pattern :
^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$ - Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Texte descriptif de la tranche d’effectif de l’établissement.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 64 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces et ponctuation autorisée.
Exemple :
{
"establishment_workforce_range": "9 à 12 salariés"
}
- Type : string
- Format attendu : Code NAF / APE.
- Pattern :
^\d{2}\.?\d{2}[A-Z]$ - Longueur : 5 à 6 caractères.
- Obligatoire : Non
- Description : Code NAF / APE associé à l’activité de l’entreprise.
- Contraintes :
- - Doit contenir 4 chiffres suivis d’une lettre majuscule.
- - Le point après les 2 premiers chiffres est autorisé.
- - Ne doit pas contenir d’espaces.
Exemple :
{
"naf_code": "1413Z"
}
- Type : string
- Format attendu : Lettre (majuscule ou minuscule) et chiffres.
- Pattern :
^[A-Za-z][0-9]+$ - Obligatoire : Non
- Description : Code ROME.
- Contraintes :
- - Doit commencer par une lettre, suivi d’un ou plusieurs chiffres.
Exemple :
{
"rome": "M1805"
}
- Type : string
- Format attendu : Libellé du code ROME associé à l’offre.
- Pattern :
^[\p{L}\p{M}0-9&’' \-\/().,+]+$ - Longueur : 2 à 128 caractères.
- Obligatoire : Non
- Description : Libellé du métier ROME associé à l’offre d’emploi.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 128 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces, apostrophes, tirets, barres obliques, parenthèses, points, virgules et le caractère
&.
Exemple :
{
"rome_label": "Service en restauration"
}
- Type : string
- Format attendu : Appellation métier précise associée à l’offre.
- Pattern :
^[\p{L}\p{M}0-9&’' \-\/().,+]+$ - Longueur : 2 à 255 caractères.
- Obligatoire : Non
- Description : Appellation métier précise associée au métier ROME de l’offre d’emploi.
- Contraintes :
- - Ne doit pas être inférieur à 2 caractères.
- - Ne doit pas dépasser 255 caractères.
- - Peut contenir des lettres accentuées, chiffres, espaces, apostrophes, tirets, barres obliques, parenthèses, points, virgules et le caractère
&.
Exemple :
{
"rome_appellation_label": "Serveur / Serveuse de restaurant"
}
- Type : integer
- Format attendu : Nombre entier.
- Pattern :
^\d{1,3}$ - Longueur : 1 à 3 caractères.
- Obligatoire : Non
- Description : Nombre de postes à pourvoir.
- Contraintes :
- - Entier de 1 à 3 chiffres (
0–999).
Exemple :
{
"available": 1
}
- Type : string
- Format attendu : Valeur prédéfinie.
- Pattern : Pas de pattern (liste prédéfinie).
- Obligatoire : Non
- Description : Indique le mode de travail du poste : sur site, hybride ou entièrement à distance.
- Contraintes :
- - Champ optionnel.
- - Doit être l’une des valeurs suivantes :
ONSITE,HYBRID,REMOTE. - - Si la valeur est
REMOTE, le champapplicant_location_requirementsdevient obligatoire.
Exemple :
{
"remote_work_mode": "REMOTE"
}
- Type : string
- Format attendu : Chaîne composée de lettres, chiffres et ponctuation simple autorisée.
- Pattern :
^[\p{L}\p{M}0-9'’ \-\/().,]+$ (u) - Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Zone géographique depuis laquelle les candidats peuvent postuler pour un poste en télétravail complet.
- Contraintes :
- - Champ optionnel.
- - Devient obligatoire si
remote_work_modevautREMOTE. - - Autorise lettres (avec accents), chiffres, apostrophes, espaces, tirets, slash, parenthèses, points et virgules.
Exemple :
{
"applicant_location_requirements": "France"
}
- Type : string
- Format attendu : Valeur prédéfinie.
- Pattern : Pas de pattern (liste prédéfinie).
- Obligatoire : Non
- Description : Niveau d’expérience.
- Contraintes :
- - Doit valoir exactement l’une des chaînes :
Débutant accepté,Expérience exigéeouExpérience souhaitée.
Exemple :
{
"experience": "Expérience souhaitée"
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les formations associées à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet peut contenir un code de formation, un domaine, un niveau, un commentaire et un code d’exigence.
- Contraintes :
- -
formationsdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Les champs
code,domain_label,level_label,commentetrequirement_codesont optionnels. - - Si
requirement_codeest présent, les valeurs autorisées sontE(Exigé) ouS(Souhaité). - - Au moins un des champs de l’objet doit être renseigné.
-
code
Type : string
Pattern :^[A-Za-z0-9._-]+$
Longueur : 1 à 64 caractères -
domain_label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères -
level_label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères -
comment
Type : string
Pattern :^[0-9A-Za-z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :’<>*+@[\]€$#|=°\"%\\\\;_-]+$
Longueur : 2 à 255 caractères -
requirement_code
Type : string
Pattern :^[ES]$
Longueur : 1 caractère
Valeurs autorisées :E(Exigé) ouS(Souhaité)
Structure d’un item :
{
"code": "15084",
"domain_label": "Informatique",
"level_label": "Bac+2",
"comment": "Souhaité",
"requirement_code": "S"
}
Exemple :
{
"formations": [
{
"code": "15084",
"domain_label": "Informatique",
"level_label": "Bac+2",
"comment": "Souhaité",
"requirement_code": "S"
},
{
"code": "44567",
"domain_label": "Systèmes d'information",
"level_label": "Bac+3",
"comment": "Exigé",
"requirement_code": "E"
}
]
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les compétences associées à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet peut contenir un code, un libellé et un code d’exigence.
- Contraintes :
- -
skillsdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Le champ
labelest obligatoire si un objet de compétence est envoyé. - -
codeest optionnel. - -
requirement_codeest optionnel. - - Si
requirement_codeest présent, les valeurs autorisées sontE(Exigé) ouS(Souhaité).
-
code
Type : string
Pattern :^[A-Za-z0-9._-]+$
Longueur : 1 à 64 caractères -
label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères -
requirement_code
Type : string
Pattern :^[ES]$
Longueur : 1 caractère
Valeurs autorisées :E(Exigé) ouS(Souhaité)
Structure d’un item :
{
"code": "123456",
"label": "Utiliser des outils bureautiques",
"requirement_code": "E"
}
Exemple :
{
"skills": [
{
"code": "123456",
"label": "Utiliser des outils bureautiques",
"requirement_code": "E"
},
{
"code": "654321",
"label": "Accueillir une clientèle",
"requirement_code": "S"
}
]
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les qualités professionnelles associées à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet peut contenir un libellé et une description.
- Contraintes :
- -
professional_qualitiesdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Les champs
labeletdescriptionsont optionnels. - - Au moins un des deux champs doit être renseigné.
-
label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères -
description
Type : string
Pattern :^[0-9A-Za-z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :’<>*+@[\]€$#|=°\"%\\\\;_-]+$
Longueur : 2 à 255 caractères
Structure d’un item :
{
"label": "Travail en équipe",
"description": "Capacité à collaborer efficacement avec différents interlocuteurs."
}
Exemple :
{
"professional_qualities": [
{
"label": "Travail en équipe",
"description": "Capacité à collaborer efficacement avec différents interlocuteurs."
},
{
"label": "Autonomie",
"description": "Capacité à organiser son travail et à prendre des initiatives."
}
]
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les langues associées à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet peut contenir un libellé de langue et un code d’exigence.
- Contraintes :
- -
languagesdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Le champ
labelest obligatoire si un objet de langue est envoyé. - - Si
requirement_codeest présent, les valeurs autorisées sontE(Exigé) ouS(Souhaité).
-
label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères -
requirement_code
Type : string
Pattern :^[ES]$
Longueur : 1 caractère
Valeurs autorisées :E(Exigé) ouS(Souhaité)
Structure d’un item :
{
"label": "Anglais",
"requirement_code": "E"
}
Exemple :
{
"languages": [
{
"label": "Anglais",
"requirement_code": "E"
},
{
"label": "Allemand",
"requirement_code": "S"
}
]
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les permis associés à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet peut contenir un libellé de permis et un code d’exigence.
- Contraintes :
- -
permitsdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Le champ
labelest obligatoire si un objet de permis est envoyé. - - Si
requirement_codeest présent, les valeurs autorisées sontE(Exigé) ouS(Souhaité).
-
label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères -
requirement_code
Type : string
Pattern :^[ES]$
Longueur : 1 caractère
Valeurs autorisées :E(Exigé) ouS(Souhaité)
Structure d’un item :
{
"label": "Permis B",
"requirement_code": "E"
}
Exemple :
{
"permits": [
{
"label": "Permis B",
"requirement_code": "E"
},
{
"label": "CACES 1",
"requirement_code": "S"
}
]
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les conditions d’exercice associées à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet contient un libellé décrivant une condition d’exercice du poste.
- Contraintes :
- -
work_context_conditionsdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Le champ
labelest obligatoire.
-
label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères
Structure d’un item :
{
"label": "Travail en horaires décalés"
}
Exemple :
{
"work_context_conditions": [
{
"label": "Travail en horaires décalés"
},
{
"label": "Déplacements fréquents"
}
]
}
- Type : array<object>
- Format attendu : Tableau d’objets représentant les horaires associés à l’offre.
- Pattern : N/A (champ racine)
- Longueur : N/A (champ racine)
- Obligatoire : Non
- Description : Chaque objet contient un libellé décrivant un horaire ou une modalité horaire du poste.
- Contraintes :
- -
work_context_schedulesdoit être un tableau JSON valide. - - Chaque élément doit être un objet JSON.
- - Le champ
labelest obligatoire.
-
label
Type : string
Pattern :^[\p{L}\p{M}0-9&’' \-\/().,+:;_]+$
Longueur : 2 à 128 caractères
Structure d’un item :
{
"label": "Horaires variables"
}
Exemple :
{
"work_context_schedules": [
{
"label": "Horaires variables"
},
{
"label": "Travail le week-end"
}
]
}
- Type : string
- Format attendu : Chaîne composée de lettres (avec accents), chiffres, espaces et signes de ponctuation autorisés.
- Pattern :
^[0-9a-zA-Z-ÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ._\/+()&,\'’: -]+$ (u) - Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Source ou plateforme de publication.
- Contraintes :
- - Entre 2 et 64 caractères.
- - Caractères autorisés :
. _ / + ( ) & , : ' ’ -et espaces.
Exemple :
{
"posted_via": "MyCompany"
}
Chaque champ pris en charge par l’API EasyJobs est soumis à une série de contraintes destinées à garantir la validité, la cohérence et la sécurité des données. Le tableau ci-dessous fournit un récapitulatif complet de ces contraintes pour tous les champs acceptés lors de la création ou de la modification d’une offre d’emploi via les endpoints de type création (POST) ou modification (PUT).
Remarque : dans les requêtes de type PUT, seuls les champs id et date sont obligatoires. Tous les autres champs peuvent être modifiés, ignorés ou vidés, à condition de respecter les mêmes contraintes de type, de format et de longueur que lors de la création. Pour plus de détails, consultez la section Cas des requêtes PUT.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
id |
string | Oui (POST et PUT) |
4 à 128 caractères | Identifiant unique de l’offre | Uniquement lettres (a–z, A–Z) et chiffres (0–9), sans espaces, symboles ni accents. |
date |
string | Oui (POST et PUT) |
19 caractères | Date de création de l’offre | Format strict : YYYY-MM-DD HH:MM:SS. Ne peut pas dépasser l’heure courante de plus de 2 heures. |
updated_at |
string | Non | 19 caractères | Date et heure de mise à jour | Date et heure de la dernière mise à jour de l’offre, au format YYYY-MM-DD HH:mm:ss. |
valid_through |
string | Non | 19 caractères | Date d’expiration de l’offre | Format strict : YYYY-MM-DD HH:MM:SS. Si présent, doit être postérieur à date. |
title |
string | Oui (POST uniquement) |
12 à 160 caractères | Titre de l’offre d’emploi | Lettres (avec accents), chiffres, espaces et ponctuation autorisée : . / + ( ) & , ' ’ : - |
is_work_study |
boolean | Non | true ou false | Indique si l’offre correspond à un poste en alternance. |
contract_type |
string | Oui (POST uniquement) |
3 à 64 caractères | Type de contrat | Autorise les lettres (avec accents), les apostrophes (' et ’), les espaces, les tirets et les slashs. |
contract_label |
string | Non | 3 à 128 caractères | Libellé du type de contrat | Texte lisible décrivant le type de contrat associé à l’offre. |
work_hours |
string | Non | Temps de travail | Autorise lettres Unicode, chiffres, espaces, tirets, slashs et points. |
work_hours_label |
string | Non | 3 à 128 caractères | Libellé de la durée de travail | Texte lisible décrivant la durée ou l’organisation du temps de travail associé à l’offre. |
employment_type |
string | Non | Type d’emploi | Uniquement : Temps-plein, Temps-partiel, Temporaire ou Freelance. |
activity_sector_label |
string | Non | 2 à 128 caractères | Libellé du secteur d’activité | Texte lisible décrivant le secteur d’activité associé à l’offre ou à l’entreprise. |
description |
string | Non | 48 à 1024 caractères | Description de l’entreprise | Texte libre avec ponctuation autorisée et balises HTML simples. Autorise aussi ’ et \. |
position |
string | Oui (POST uniquement) |
64 à 12288 caractères | Description du poste | Texte libre avec ponctuation autorisée et balises HTML simples. Autorise notamment . / + ( ) & , ' ’ ! ? : < > * + @ [ ] € $ # | = ° " % \ -. |
profile |
string | Non | 64 à 12288 caractères | Profil recherché | Texte libre avec ponctuation autorisée et balises HTML simples. Autorise notamment . / + ( ) & , ' ’ ! ? : < > * + @ [ ] € $ # | = ° " % \ -. |
qualification_label |
string | Non | 2 à 128 caractères | Libellé de qualification | Texte lisible décrivant le niveau ou le type de qualification associé à l’offre. |
location |
string | Oui (POST uniquement) |
2 à 64 caractères | Localisation principale du poste | Autorise les lettres Unicode, les marques diacritiques, les chiffres, les apostrophes (' et ’), les espaces, les tirets, les slashs, les parenthèses et les points. |
postcode |
string | Non | 5 caractères | Code postal | Format strict : 5 chiffres uniquement. |
commune_code |
string | Non | Code commune sur 5 chiffres | Doit contenir exactement 5 chiffres et correspondre au code de la commune du lieu de travail. |
latitude |
string | Non | 1 à 12 caractères | Coordonnée décimale signée (latitude GPS) | Doit utiliser un point comme séparateur décimal, être comprise entre -90 et 90, ne pas contenir d’espaces, et être envoyée avec longitude. |
longitude |
string | Non | 1 à 13 caractères | Coordonnée décimale signée (longitude GPS) | Doit utiliser un point comme séparateur décimal, être comprise entre -180 et 180, ne pas contenir d’espaces, et être envoyée avec latitude. |
department |
string | Non | 2 à 64 caractères | Département administratif français associé au lieu du poste | Autorise les lettres Unicode, les marques diacritiques, les chiffres, les apostrophes (' et ’), les espaces, les tirets, les slashs, les parenthèses et les points. |
region |
string | Non | 5 à 32 caractères | Région administrative associée au poste | Autorise les lettres Unicode, les marques diacritiques, les apostrophes (' et ’), les espaces et les tirets. |
country |
string | Oui (POST uniquement) |
4 à 64 caractères | Pays | Autorise uniquement les lettres (avec accents), les apostrophes (' et ’) et les tirets. |
subsidiary |
string | Non | 2 à 64 caractères | Nom de l’entreprise | Lettres (avec accents), chiffres, espaces et ponctuation autorisée : . _ / + ( ) & , : ' ’ -. |
is_adapted_company |
boolean | Non | true ou false | Indique si l’offre est publiée par une entreprise adaptée. |
is_disability_inclusive_employer |
boolean | Non | true ou false | Indique si l’employeur est identifié comme handi-engagé. |
is_accessible_to_disabled_workers |
boolean | Non | true ou false | Indique si l’offre est accessible aux travailleurs handicapés. |
contact_name |
string | Non | 2 à 128 caractères | Nom du contact | Nom de la personne ou du service de contact lié à l’offre. |
contact_phone |
string | Non | 6 à 32 caractères | Numéro de téléphone du contact | Numéro de téléphone lié au contact de l’offre. |
contact_email |
string | Non | 6 à 254 caractères | Adresse e-mail du contact | Adresse e-mail liée au contact ou à la candidature. |
contact_comment |
string | Non | 2 à 255 caractères | Commentaire libre du contact | Texte complémentaire lié au contact ou aux modalités de candidature. |
company_url |
string | Non | 10 à 2048 caractères | URL de l’entreprise recrutante | URL complète du site web de l’entreprise ou de l’organisation qui recrute. |
application_url |
string | Non | 10 à 2048 caractères | URL de candidature | URL complète vers la page ou le formulaire de candidature. |
source_offer_url |
string | Non | 10 à 2048 caractères | URL de l’offre d’origine | URL source de l’offre d’emploi, telle que fournie par la plateforme ou le partenaire d’origine. |
company_logo_url |
string | Non | 10 à 2048 caractères | URL du logo de l’entreprise | Il est recommandé qu’elle pointe directement vers le logo de l’entreprise. |
partners |
array<object> | Non | Liste de partenaires | Tableau d’objets {name, offer_url, logo_url} représentant les partenaires associés à l’offre. |
salary |
string | Conditionnel | Salaire global | Montant entier ou décimal (point uniquement), suivi de € ou $, puis de heure, jour, mois ou an. Ne peut pas être combiné avec salary_min ni salary_max. Non requis si le bloc Occupation complet est fourni. |
salary_min |
string | Conditionnel | Salaire minimum | Montant entier ou décimal (point uniquement), suivi de € ou $, puis de heure, jour, mois ou an. Requis si salary n’est pas renseigné et qu’aucun bloc Occupation complet n’est fourni. Doit être envoyé avec salary_max, avec la même devise et la même fréquence. |
salary_max |
string | Conditionnel | Salaire maximum | Montant entier ou décimal (point uniquement), suivi de € ou $, puis de heure, jour, mois ou an. Requis si salary n’est pas renseigné et qu’aucun bloc Occupation complet n’est fourni. Doit être envoyé avec salary_min, avec la même devise et la même fréquence. |
salary_comment |
string | Non | 2 à 255 caractères | Commentaire libre sur le salaire ou les avantages | Texte libre complémentaire lié au salaire, aux primes ou aux avantages. |
salary_benefit_label_1 |
string | Non | 2 à 128 caractères | Libellé d’un avantage lié à la rémunération | Exemple : Primes, Complémentaire santé, Titres restaurant / Prime de panier. |
salary_benefit_label_2 |
string | Non | 2 à 128 caractères | Deuxième libellé d’avantage lié à la rémunération | Exemple : Primes, Complémentaire santé, Titres restaurant / Prime de panier. |
salary_complements |
array<object> | Non | Liste de compléments de salaire | Tableau d’objets {code, label} représentant les compléments de salaire associés à l’offre. |
occupation_name |
string | Non | 2 à 64 caractères | Nom de l’occupation utilisée dans le bloc Occupation | Lettres Unicode, marques diacritiques, chiffres, apostrophes, espaces, tirets, slash, parenthèses et points. Obligatoire si le bloc Occupation est utilisé. |
occupation_location_name |
string | Non | 2 à 64 caractères | Localisation utilisée pour le bloc Occupation | Lettres Unicode, marques diacritiques, chiffres, apostrophes, espaces, tirets, slash, parenthèses et points. Obligatoire si le bloc Occupation est utilisé. |
salary_estimated_currency |
string | Non | Devise du salaire estimé | EUR ou USD uniquement. Obligatoire si le bloc Occupation est utilisé. |
salary_estimated_duration |
string | Non | Durée de référence du salaire estimé | PT1H, P1D, P1M ou P1Y uniquement. Obligatoire si le bloc Occupation est utilisé. |
salary_estimated_median |
number | Non | Salaire médian estimé | Nombre positif avec jusqu’à 2 décimales. Obligatoire si le bloc Occupation est utilisé. |
salary_estimated_percentile10 |
number | Non | 10e percentile du salaire estimé | Nombre positif avec jusqu’à 2 décimales. Obligatoire si le bloc Occupation est utilisé. Ne peut pas être supérieur à salary_estimated_percentile25. |
salary_estimated_percentile25 |
number | Non | 25e percentile du salaire estimé | Nombre positif avec jusqu’à 2 décimales. Obligatoire si le bloc Occupation est utilisé. Ne peut pas être inférieur à salary_estimated_percentile10 ni supérieur à salary_estimated_median. |
salary_estimated_percentile75 |
number | Non | 75e percentile du salaire estimé | Nombre positif avec jusqu’à 2 décimales. Obligatoire si le bloc Occupation est utilisé. Ne peut pas être inférieur à salary_estimated_median ni supérieur à salary_estimated_percentile90. |
salary_estimated_percentile90 |
number | Non | 90e percentile du salaire estimé | Nombre positif avec jusqu’à 2 décimales. Obligatoire si le bloc Occupation est utilisé. Ne peut pas être inférieur à salary_estimated_percentile75. |
establishment_workforce_range |
string | Non | 2 à 64 caractères | Tranche d’effectif de l’établissement | Texte descriptif de l’effectif de l’établissement, par exemple : 9 salariés ou 9 à 12 salariés. |
naf_code |
string | Non | 5 à 6 caractères | Code NAF / APE | Doit contenir 4 chiffres suivis d’une lettre majuscule. Le point après les 2 premiers chiffres est autorisé. |
rome |
string | Non | Code ROME | Doit commencer par une lettre, suivie uniquement de chiffres. |
rome_label |
string | Non | 2 à 128 caractères | Libellé du métier ROME associé à l’offre d’emploi | Lettres (avec accents), chiffres, espaces et ponctuation autorisée : . _ / + ( ) & , : ' ’ - |
rome_appellation_label |
string | Non | 2 à 255 caractères | Appellation métier précise associée au ROME | Lettres (avec accents), chiffres, espaces et ponctuation autorisée : . _ / + ( ) & , : ' ’ - |
available |
integer | Non | 1 à 3 chiffres | Nombre de postes à pourvoir | Entier de 0 à 999. |
remote_work_mode |
string | Non | Mode de travail à distance | ONSITE, HYBRID ou REMOTE uniquement. Si la valeur est REMOTE, applicant_location_requirements devient obligatoire. |
applicant_location_requirements |
string | Non | 2 à 64 caractères | Zone géographique requise pour candidater | Lettres Unicode, chiffres, apostrophes, espaces, tirets, slash, parenthèses, points et virgules. Obligatoire si remote_work_mode = REMOTE. |
experience |
string | Non | Niveau d’expérience | Uniquement : Débutant accepté, Expérience exigée ou Expérience souhaitée. |
formations |
array<object> | Non | Liste de formations | Tableau d’objets {code, domain_label, level_label, comment, requirement_code} représentant les formations associées à l’offre. |
skills |
array<object> | Non | Liste de compétences | Tableau d’objets {code, label, requirement_code} représentant les compétences associées à l’offre. |
professional_qualities |
array<object> | Non | Liste de qualités professionnelles | Tableau d’objets {label, description} représentant les qualités professionnelles associées à l’offre. |
languages |
array<object> | Non | Liste de langues | Tableau d’objets {label, requirement_code} représentant les langues associées à l’offre. |
permits |
array<object> | Non | Liste de permis | Tableau d’objets {label, requirement_code} représentant les permis associés à l’offre. |
work_context_conditions |
array<object> | Non | Liste de conditions d’exercice | Tableau d’objets {label} représentant les conditions d’exercice associées à l’offre. |
work_context_schedules |
array<object> | Non | Liste d’horaires | Tableau d’objets {label} représentant les horaires associés à l’offre. |
posted_via |
string | Non | 2 à 64 caractères | Source ou plateforme de publication | Lettres (avec accents), chiffres, espaces et ponctuation autorisée : . _ / + ( ) & , : ' ’ -. |
Les endpoints de type PUT permettent de modifier une ou plusieurs données d’une offre existante. Contrairement aux requêtes POST, ils ne nécessitent pas la présence de tous les champs.
Seuls les champs id (identifiant de l’offre) et date (date de modification) sont obligatoires. Tous les autres champs peuvent être omis s’ils ne sont pas modifiés.
Lors d’une requête PUT, si un champ obligatoire est transmis avec une valeur vide (ex. "title": ""), il sera ignoré et la valeur précédemment enregistrée sera conservée. En revanche, si un champ optionnel est envoyé vide, cela est interprété comme une volonté explicite de supprimer son contenu. La valeur sera donc effacée dans l’enregistrement mis à jour.
Toutefois, les contraintes de validation (longueur, caractères autorisés, format strict, etc.) restent exactement les mêmes pour chaque champ, qu’il soit utilisé en création ou en modification.