- Référence des champs
- Structure par champ
- id
- date
- valid_through
- title
- contract_type
- work_hours
- employment_type
- description
- position
- profile
- location
- postcode
- region
- country
- subsidiary
- url
- salary
- salary_min
- salary_max
- rome
- available
- experience
- company_logo_url
- 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 :
- - Requis.
- - 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.
- Pattern :
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$
- Obligatoire : Oui
- Description : Date de création de l’offre.
- Contraintes :
- - Requis.
- - Format strict :
YYYY-MM-DD HH:MM:SS
. - - Ne peut pas être future.
Exemple :
{
"date": "2025-04-22 10:09:27"
}
- Type : string
- Format attendu : Date et heure.
- Pattern :
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$
- 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 et espaces.
- Pattern :
^[0-9A-Za-zÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\': -]+$ (u)
- Longueur : 12 à 160 caractères.
- Obligatoire : Oui
- Description : Titre de l’offre d’emploi.
- Contraintes :
- - Requis.
- - 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 : string
- Format attendu : Chaîne composée de lettres (y compris accents).
- 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 :
- - Requis.
- - Autorise lettres (avec accents), apostrophes (
'/’
), espaces, tirets et slash.
Exemple :
{
"contract_type": "CDI"
}
- Type : string
- Format attendu : Chaîne composée de lettres (toutes langues).
- Pattern :
^[\p{L}\d\/\-\s.]+$ (u)
- Longueur : Maximum 64 caractères.
- 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 : 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 : Chaîne libre incluant lettres (y compris accents), chiffres, ponctuation de base et espaces. HTML autorisé.
- Pattern :
^[0-9A-Za-zÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :<>*+@\[\]€\$#\|=°"%]+$ (u)
- Longueur : 48 à 1024 caractères.
- Obligatoire : Non
- Description : Description de l’entreprise.
- Contraintes :
- - 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, ponctuation de base et espaces. HTML autorisé.
- Pattern :
^[0-9A-Za-zÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :<>*+@\[\]€\$#\|=°"%]+$ (u)
- Longueur : 64 à 12288 caractères.
- Obligatoire : Oui
- Description : Description du poste.
- - Requis.
- - 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, ponctuation de base et espaces. HTML autorisé.
- Pattern :
^[0-9A-Za-zÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ.\/+()&,\'!? :<>*+@\[\]€\$#\|=°"%]+$ (u)
- Longueur : 64 à 12288 caractères.
- Obligatoire : Non
- Description : Profil recherché.
- Contraintes :
- - 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 : Chaîne composée de lettres (toutes langues).
- Pattern :
^[\p{L}0-9'’ \-\/]+$ (u)
- Longueur : 4 à 64 caractères.
- Obligatoire : Oui
- Description : Lieu du poste ou localité principale.
- Contraintes :
- - Requis.
- - Autorise lettres (avec accents), chiffres, apostrophes (
'/’
), espaces, tirets et slash.
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 : 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 :
- - apostrophes (
'/’
), espaces et tirets autorisés.
Exemple :
{
"region": "Grand-Est"
}
- Type : string
- Format attendu : Chaîne de lettres (y compris accents), apostrophes (
'/’
) et tirets uniquement. - Pattern :
^[a-zA-ZÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ'\-]+$ (u)
- Longueur : 4 à 64 caractères.
- Obligatoire : Oui
- Description : Pays.
- Contraintes :
- - Aucun chiffre ni autre symbole.
- - Requis.
Exemple :
{
"country": "France"
}
- Type : string
- Format attendu : Chaîne alphanumérique (lettres, chiffres) avec accents.
- Pattern :
^[0-9A-Za-zÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ._\/+()&,\': -]+$ (u)
- Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Nom de l'entreprise.
- Contraintes :
- - Caractères autorisés :
. _ / + () & , : ' -
et espaces.
Exemple :
{
"subsidiary": "Agence Web"
}
- Type : string
- Format attendu : URL valide.
- Pattern :
^https:\/\/(([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,63})(\/[^\s]*)?$ (i)
- Obligatoire : Non
- Description : URL de l’offre sur le site de l’entreprise.
- Contraintes :
- - Doit commencer par
https://
. - - Domaine valide (au moins un point, extension 2–63 lettres).
- - Redirige vers la page de candidature ou formulaire.
Exemple :
{
"url": "https://www.exemple.com/offre"
}
- 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 en lettres (ex. :
/heure
,/jour
,/mois
,/an
). - Pattern :
^[0-9]+(\.[0-9]{1,2})?[€$]\/[a-zA-Z-]+$ (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 :
- - Si utilisé, ne pas remplir
salary_min
nisalary_max
. - - Format strict : "[nombre][€]/[période]" (ex.
30000€/an
,11,50€/heure
). - - Éviter les textes libres (ex. "selon profil").
Exemple :
{
"salary": "3400€/mois"
}
- Type : string
- Format attendu : Même format que
salary
. - Pattern :
^[0-9]+(\.[0-9]{1,2})?[€$]\/[a-zA-Z-]+$ (u)
- Obligatoire : Conditionnel. Requis si
salary
n’est pas spécifié. - Description : Permet de préciser une fourchette salariale cohérente (Salaire minimum - Salaire maximum).
- Contraintes :
- - Requis si
salary
n’est pas renseigné (et dans ce cassalary_max
doit l’être). - - Doit être strictement inférieur à
salary_max
. - - Ne peut pas être combiné avec
salary
.
Exemple :
{
"salary_min": "42000€/an",
"salary_max": "44300€/an"
}
- Type : string
- Format attendu : Même format que
salary
. - Pattern :
^[0-9]+(\.[0-9]{1,2})?[€$]\/[a-zA-Z-]+$ (u)
- Obligatoire : Conditionnel. Requis si
salary
n’est pas spécifié. - Description : Permet de préciser une fourchette salariale cohérente (Salaire minimum - Salaire maximum).
- Contraintes :
- - Requis si
salary
n’est pas renseigné (et dans ce cassalary_min
doit l’être). - - Doit être strictement supérieur à
salary_min
. - - Ne peut pas être combiné avec
salary
.
Exemple :
{
"salary_min": "42000€/an",
"salary_max": "44300€/an"
}
- 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 : 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 : Niveau d’expérience.
- Contraintes :
- - Doit valoir exactement l’une des chaînes :
Débutant accepté
,Experience exigée
ouExpérience souhaitée
.
Exemple :
{
"experience": "Expérience souhaitée"
}
- Type : string
- Format attendu : URL valide.
- Pattern :
^https:\/\/(([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,63})(\/[^\s]*)?$ (i)
- Obligatoire : Non
- Description : URL du logo de l’entreprise.
- Contraintes :
- - Doit commencer par
https://
. - - Domaine valide (au moins un point, extension 2–63 lettres).
- - Redirige vers le logo de l’entreprise.
Exemple :
{
"company_logo_url": "https://www.exemple.com/logo.png"
}
- Type : string
- Format attendu : Chaîne alphanumérique (lettres, chiffres) avec accents.
- Pattern :
^[0-9A-Za-zÁÉÍÓÚÜÑáéíóúüñÇŒæœßàâäæçèéêëìîïðñòôöùûüýÿÆŒ._\/+()&,\': -]+$ (u)
- Longueur : 2 à 64 caractères.
- Obligatoire : Non
- Description : Source ou plateforme de publication.
- Contraintes :
- - 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 ) |
Identifiant unique de l’offre. Alphanumérique, entre 4 et 128 caractères. |
date |
string | Oui (POST et PUT ) |
Date de création de l’offre au format YYYY-MM-DD HH:mm:ss . |
valid_through |
string | Non | Date d’expiration de l’offre au format YYYY-MM-DD HH:mm:ss . Doit être postérieure à la date de création. |
title |
string | Oui (POST uniquement) |
Titre de l’offre d’emploi. Entre 12 et 160 caractères. |
contract_type |
string | Oui (POST uniquement) |
Type de contrat (ex : CDI, CDD, Stage, etc). Entre 3 et 64 caractères. |
work_hours |
string | Non | Temps de travail (ex : 35h/semaine, 35 heures, etc). Lettres, chiffres, espaces, / et -. |
employment_type |
string | Non | Type d’emploi. Une des valeurs : Temps-plein, Temps-partiel, Temporaire, Freelance. |
description |
string | Non | Description de l’entreprise. Entre 48 et 1024 caractères. |
position |
string | Oui (POST uniquement) |
Description du poste. Entre 64 et 12288 caractères. |
profile |
string | Non | Profil recherché. Entre 64 et 12288 caractères. |
location |
string | Oui (POST uniquement) |
Lieu du poste. Entre 4 et 64 caractères. |
postcode |
string | Non | Code postal (5 chiffres). |
region |
string | Non | Région. Entre 5 et 32 caractères. Lettres, espaces et tiret uniquement. |
country |
string | Oui (POST uniquement) |
Pays. Entre 4 et 64 caractères. Lettres et tiret uniquement. |
subsidiary |
string | Non | Nom de l'entreprise. Entre 2 et 64 caractères. |
url |
string | Non | URL HTTPS de l’offre sur le site de l’entreprise. Doit commencer par https:// . |
salary |
string | Conditionnel | Salaire global. Format : 1600€/mois , 2000$/an , etc. Si utilisé, ne pas remplir salary_min ni salary_max. |
salary_min |
string | Conditionnel | Salaire minimum. Format : 1500€/mois , 2000$/an , etc. Obligatoire si salary n’est pas renseigné. |
salary_max |
string | Conditionnel | Salaire maximum. Format : 2500€/mois , 3000$/an , etc. Obligatoire si salary n’est pas renseigné. |
rome |
string | Non | Code ROME. Doit commencer par une lettre suivie de chiffres. |
available |
integer | Non | Nombre de postes à pourvoir (entier, jusqu’à 3 chiffres). |
experience |
string | Non | Niveau d’expérience. Une des valeurs : Débutant accepté, Expérience exigée, Expérience souhaitée. |
company_logo_url |
string | Non | URL HTTPS du logo de l’entreprise. Doit commencer par https:// . |
posted_via |
string | Non | Source ou plateforme de publication. Entre 2 et 64 caractères. |
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.