Chargement en cours ...
Présentation de l’API

EasyJobs API est une interface conçue pour faciliter la publication, la modification et la suppression d'offres d'emploi sur le site web https://www.easyjobs.fr. L'API prend en charge les formats JSON et XML afin de s'adapter à différents besoins d'intégration.

URL de base :

Toutes les requêtes passent par : https://api.easyjobs.fr/v1/

Bien que le chemin contienne /v1/, il ne reflète pas une gestion active de multiples versions — il s’agit uniquement d’une convention d’organisation.

Guide de démarrage rapide

Cette section vous permet de réaliser une première intégration simple avec l’API EasyJobs en quelques étapes.

  1. Créer un compte EasyJobs : Vous devez disposer d’un compte valide pour obtenir vos identifiants API (token et clé secrète).
  2. Récupérer vos identifiants API : Connectez-vous à votre tableau de bord EasyJobs API et accédez à la section Gestion des clés. Copiez votre Token et votre Clé secrète.
  3. Choisir un format de données : L’API supporte deux formats : JSON et XML. Sélectionnez celui qui correspond à votre environnement.
  4. Envoyer votre première requête POST : Testez l’envoi d’une offre d’emploi en suivant l’un des exemples de code fournis : PHP / Python / C# / JavaScript.
  5. Vérifier la réponse : Si l’offre a été acceptée, vous recevrez un code HTTP 200 ou 201. En cas d’erreur, un message détaillé vous indiquera la cause.
Cas d’usage courants
  • Publication simple d’une offre d’emploi : Envoyer une offre à la fois pour un poste spécifique.
  • Publication en masse : Envoyer plusieurs offres dans une seule requête via les endpoints Jobs Posting JSON ou Jobs Posting XML.
  • Modification d’une offre existante : Mettre à jour un poste publié à l’aide de l’identifiant unique de l’offre.
  • Suppression d’une offre : Retirer une offre de votre catalogue sans supprimer les autres.
  • Synchronisation complète : Mettre à jour votre base de données externe en comparant les offres existantes avec celles publiées sur EasyJobs.
Authentification

L’accès à l’API EasyJobs est protégé par un système d’authentification basé sur deux éléments obligatoires :

  1. Token d’authentification (Bearer)
    Il s’agit d’un identifiant unique associé à votre compte EasyJobs. Il doit être envoyé dans l’en-tête HTTP Authorization comme suit :
  2. 
                        Authorization: Bearer <API_TOKEN>
                      
  3. Clé secrète (en-tête HTTP spécifique à EasyJobs)
    Chaque requête doit également contenir une clé secrète transmise via un en-tête personnalisé :
  4. 
                        Usersecretkey: <SECRET_KEY>
                      

Les deux éléments doivent être valides pour que la requête soit acceptée.

Recommandations de sécurité

  • Ne partagez jamais vos identifiants API publiquement ou dans des dépôts de code.
  • Renouvelez régulièrement vos clés via le tableau de bord EasyJobs.
  • Si vous suspectez un usage frauduleux, désactivez immédiatement les identifiants concernés.
En-têtes HTTP requis
  • Accept-Language : permet de configurer la langue des réponses de l’API. Valeurs possibles : en, fr, es.
  • X-Client-Lang : indique au serveur la technologie ou l’environnement d’exécution qui envoie la requête (par ex. : PHP, Python, C#, JavaScript). Cette information facilite la journalisation côté API et permet d’adapter le formatage éventuel de la réponse. Valeurs attendues : PHP, Python, C#, JavaScript.
  • Content-Type : indique le format des données envoyées dans le corps de la requête. Utilisez application/json pour les envois JSON, ou application/xml pour les envois XML.
  • Origin : identifie l’origine (URL) d’où provient la requête. Cet en-tête est obligatoire pour passer les contrôles de sécurité CORS. Le ou les domaines autorisés doivent être déclarés au préalable dans votre espace personnel EasyJobs API, accessible via le menu latéral : Domaines → Domaines autorisés. Accédez à cette section ici. Exemple : Origin: https://www.votre-domaine.com.
  • User-Agent : identifiant unique de votre application. Cet en-tête est requis pour des raisons de sécurité. Utilisez un nom explicite, incluant une version si possible. Exemple recommandé : User-Agent: EasyJobsClient/1.0.
  • Informations d’authentification : Pour exécuter correctement vos requêtes, veillez à remplacer les valeurs par défaut par vos propres informations :
    • API_TOKEN : votre jeton d’authentification personnel, disponible dans le dashboard EasyJobs API, rubrique Gestion des clés.
    • SECRET_KEY : votre clé secrète utilisateur, également accessible dans la même rubrique.

Ces paramètres sont essentiels pour authentifier vos requêtes et garantir une réponse adaptée à votre environnement.

Exemple d'en-têtes requis (JSON) :


                  Authorization: Bearer <API_TOKEN>
                  Usersecretkey: <SECRET_KEY>
                  Content-Type: application/json
                  Accept-Language: fr
                  User-Agent: EasyJobsClient/1.0
                  X-Client-Lang: <LANGAGE_CLIENT>
                  Origin: https://www.domaine-origine.com
                

Exemple d'en-têtes requis (XML) :


                  Authorization: Bearer <API_TOKEN>
                  Usersecretkey: <SECRET_KEY>
                  Content-Type: application/xml
                  Accept-Language: fr
                  User-Agent: EasyJobsClient/1.0
                  X-Client-Lang: <LANGAGE_CLIENT>
                  Origin: https://www.domaine-origine.com
                
Formats acceptés

L’API EasyJobs prend en charge deux formats standards pour l’échange de données : JSON et XML. Vous pouvez utiliser l’un ou l’autre selon les préférences de votre système ou langage de programmation.

Format JSON :

  • Recommandé pour les environnements modernes (JavaScript, PHP, Python, etc.)
  • Syntaxe plus légère, plus facile à manipuler côté client
  • Utilisé dans la majorité des exemples fournis

Exemple JSON (offre unique)


                  {
                    "id": "4M0123456N43N25",
                    "date": "2025-04-22 10:00:00",
                    "valid_through": "2025-05-22 10:00:00",
                    "title": "Développeur Web Fullstack - H/F",
                    "contract_type": "CDI",
                    "work_hours": "35 heures",
                    "employment_type": "Temps-plein",
                    "description": "Nous recherchons un Développeur Web Fullstack, pour développer une application.",
                    "position": "Nous recherchons un(e) développeur(se) web fullstack passionné(e) pour rejoindre notre équipe dynamique. Vous participerez à la conception et au développement d'applications web innovantes pour des clients internationaux.",
                    "profile": "Vous avez une expérience de 3 ans minimum en PHP, JavaScript et frameworks modernes. Vous aimez travailler en équipe et relever de nouveaux défis.",
                    "location": "Paris",
                    "postcode": "75001",
                    "region": "Île-de-France",
                    "country": "France",
                    "subsidiary": "Agence Web",
                    "url": "https://www.exemple.com/offre",
                    "salary": "",
                    "salary_min": "27400€/an",
                    "salary_max": "32100€/an",
                    "rome": "M1805",
                    "available": "1",
                    "experience": "Expérience souhaitée",
                    "company_logo_url": "https://www.exemple.com/logo.png",
                    "posted_via": "My Company"
                  }
                

Exemple JSON (offres multiples)


                  {
                    "jobs": {
                      "job": [
                        {
                          "id": "4M0123456N43N25",
                          "date": "2025-04-22 10:00:00",
                          "valid_through": "2025-05-22 10:00:00",
                          "title": "Développeur Web Fullstack - H/F",
                          "contract_type": "CDI",
                          "work_hours": "35 heures",
                          "employment_type": "Freelance",
                          "description": "Nous recherchons un Développeur Web Fullstack, pour développer une application.",
                          "position": "Nous recherchons un(e) développeur(se) web fullstack passionné(e) pour rejoindre notre équipe dynamique. Vous participerez à la conception et au développement d'applications web innovantes pour des clients internationaux.",
                          "profile": "Vous avez une expérience de 3 ans minimum en PHP, JavaScript et frameworks modernes. Vous aimez travailler en équipe et relever de nouveaux défis.",
                          "location": "Paris",
                          "postcode": "75001",
                          "region": "Île-de-France",
                          "country": "France",
                          "subsidiary": "Agence Web",
                          "url": "https://www.exemple.com/offre",
                          "salary": "",
                          "salary_min": "27400€/an",
                          "salary_max": "32100€/an",
                          "rome": "M1805",
                          "available": "1",
                          "experience": "Expérience souhaitée",
                          "company_logo_url": "https://www.exemple.com/logo.png",
                          "posted_via": "My Company"
                        },
                        {
                          "id": "4M0123456N43N26",
                          "date": "2025-04-22 11:00:00",
                          "valid_through": "2025-05-22 11:00:00",
                          "title": "Ingénieur DevOps - H/F",
                          "contract_type": "CDI",
                          "work_hours": "35 heures",
                          "employment_type": "Temps-plein",
                          "description": "Dans le cadre de notre croissance, nous recherchons un ingénieur DevOps pour renforcer notre équipe technique.",
                          "position": "Vous participerez à l’automatisation, au déploiement et à la supervision des infrastructures cloud de nos clients.",
                          "profile": "Connaissances solides en CI/CD, conteneurs (Docker/Kubernetes), et scripts d’automatisation (Bash, Python).",
                          "location": "Lyon",
                          "postcode": "69000",
                          "region": "Auvergne-Rhône-Alpes",
                          "country": "France",
                          "subsidiary": "Pôle Infrastructure",
                          "url": "https://www.exemple.com/offre-devops",
                          "salary": "42000€/an",
                          "salary_min": "",
                          "salary_max": "",
                          "rome": "M1810",
                          "available": "1",
                          "experience": "Expérience exigée",
                          "company_logo_url": "https://www.exemple.com/logo-devops.png",
                          "posted_via": "My Company"
                        }
                      ]
                    }
                  }
                

Cet exemple montre comment envoyer plusieurs offres d’emploi dans une seule requête POST, en utilisant le format JSON. Chaque offre est définie comme un objet job dans une structure de tableau.

Format XML :

  • Recommandé pour les systèmes hérités ou intégrations avec certains ATS
  • Structure plus rigide mais très utilisée en contexte d’entreprise

Exemple XML (offre unique)


                  <?xml version="1.0" encoding="UTF-8"?>
                  <job>
                    <id><![CDATA[4M0123456N43N25]]></id>
                    <date><![CDATA[2025-04-22 10:00:00]]></date>
                    <valid_through><![CDATA[2025-05-22 10:00:00]]></valid_through>
                    <title><![CDATA[Développeur Web Fullstack - H/F]]></title>
                    <contract_type><![CDATA[CDI]]></contract_type>
                    <work_hours><![CDATA[35 heures]]></work_hours>
                    <employment_type><![CDATA[Temps-plein]]></employment_type>
                    <description><![CDATA[Nous recherchons un Développeur Web Fullstack, pour développer une application.]]></description>
                    <position><![CDATA[Nous recherchons un(e) développeur(se) web fullstack passionné(e) pour rejoindre notre équipe dynamique. Vous participerez à la conception et au développement d'applications web innovantes pour des clients internationaux.]]></position>
                    <profile><![CDATA[Vous avez une expérience de 3 ans minimum en PHP, JavaScript et frameworks modernes. Vous aimez travailler en équipe et relever de nouveaux défis.]]></profile>
                    <location><![CDATA[Paris]]></location>
                    <postcode><![CDATA[75001]]></postcode>
                    <region><![CDATA[Île-de-France]]></region>
                    <country><![CDATA[France]]></country>
                    <subsidiary><![CDATA[Agence Web]]></subsidiary>
                    <url><![CDATA[https://www.exemple.com/offre]]></url>
                    <salary><![CDATA[27400€/an]]></salary>
                    <salary_min></salary_min>
                    <salary_max></salary_max>
                    <rome><![CDATA[M1805]]></rome>
                    <available><![CDATA[1]]></available>
                    <experience><![CDATA[Débutant accepté]]></experience>
                    <company_logo_url><![CDATA[https://www.exemple.com/logo.png]]></company_logo_url>
                    <posted_via><![CDATA[My Company]]></posted_via>
                  </job>  
                

Exemple XML (offres multiples)


                  <?xml version="1.0" encoding="UTF-8"?>
                  <jobs>
                    <job>
                      <id><![CDATA[4M0123456N43N25]]></id>
                      <date><![CDATA[2025-04-22 10:00:00]]></date>
                      <valid_through><![CDATA[2025-05-22 10:00:00]]></valid_through>
                      <title><![CDATA[Développeur Web Fullstack - H/F]]></title>
                      <contract_type><![CDATA[CDI]]></contract_type>
                      <work_hours><![CDATA[35 heures]]></work_hours>
                      <employment_type><![CDATA[Temps-plein]]></employment_type>
                      <description><![CDATA[Nous recherchons un Développeur Web Fullstack, pour développer une application.]]></description>
                      <position><![CDATA[Nous recherchons un(e) développeur(se) web fullstack passionné(e) pour rejoindre notre équipe dynamique. Vous participerez à la conception et au développement d'applications web innovantes pour des clients internationaux.]]></position>
                      <profile><![CDATA[Vous avez une expérience de 3 ans minimum en PHP, JavaScript et frameworks modernes. Vous aimez travailler en équipe et relever de nouveaux défis.]]></profile>
                      <location><![CDATA[Paris]]></location>
                      <postcode><![CDATA[75001]]></postcode>
                      <region><![CDATA[Île-de-France]]></region>
                      <country><![CDATA[France]]></country>
                      <subsidiary><![CDATA[Agence Web]]></subsidiary>
                      <url><![CDATA[https://www.exemple.com/offre]]></url>
                      <salary><![CDATA[27400€/an]]></salary>
                      <salary_min></salary_min>
                      <salary_max></salary_max>
                      <rome><![CDATA[M1805]]></rome>
                      <available><![CDATA[1]]></available>
                      <experience><![CDATA[Débutant accepté]]></experience>
                      <company_logo_url><![CDATA[https://www.exemple.com/logo.png]]></company_logo_url>
                      <posted_via><![CDATA[My Company]]></posted_via>
                    </job>
                    <job>
                      <id><![CDATA[4M0123456N43N26]]></id>
                      <date><![CDATA[2025-04-22 11:30:00]]></date>
                      <valid_through><![CDATA[2025-05-22 11:30:00]]></valid_through>
                      <title><![CDATA[Ingénieur DevOps - H/F]]></title>
                      <contract_type><![CDATA[CDI]]></contract_type>
                      <work_hours><![CDATA[35 heures]]></work_hours>
                      <employment_type><![CDATA[Temps-plein]]></employment_type>
                      <description><![CDATA[Dans le cadre de notre croissance, nous recherchons un ingénieur DevOps pour renforcer notre équipe technique.]]></description>
                      <position><![CDATA[Vous participerez à l’automatisation, au déploiement et à la supervision des infrastructures cloud de nos clients.]]></position>
                      <profile><![CDATA[Connaissances solides en CI/CD, conteneurs (Docker/Kubernetes) et scripts d’automatisation (Bash, Python).]]></profile>
                      <location><![CDATA[Lyon]]></location>
                      <postcode><![CDATA[69000]]></postcode>
                      <region><![CDATA[Auvergne-Rhône-Alpes]]></region>
                      <country><![CDATA[France]]></country>
                      <subsidiary><![CDATA[Pôle Infrastructure]]></subsidiary>
                      <url><![CDATA[https://www.exemple.com/offre-devops]]></url>
                      <salary></salary>
                      <salary_min><![CDATA[39500€/an]]></salary_min>
                      <salary_max><![CDATA[42000€/an]]></salary_max>
                      <rome><![CDATA[M1810]]></rome>
                      <available><![CDATA[1]]></available>
                      <experience><![CDATA[Expérience exigée]]></experience>
                      <company_logo_url><![CDATA[https://www.exemple.com/logo-devops.png]]></company_logo_url>
                      <posted_via><![CDATA[My Company]]></posted_via>
                    </job>
                  </jobs>  
                

Cet exemple illustre l’envoi de plusieurs offres d’emploi dans une seule requête POST au format XML. Chaque offre est encapsulée dans une balise <job> à l’intérieur d’un conteneur racine.

Endpoints disponibles
Endpoints JSON Méthode Description Intégration URL
/jobs-posting POST Soumettre plusieurs offres en une seule requête Code Copier
/job-posting POST Soumettre une offre d'emploi Code Copier
/jobs-edit PUT Modifier plusieurs offres en une seule requête Code Copier
/job-edit PUT Modifier une offre d'emploi Code Copier
/jobs-delete DELETE Supprimer plusieurs offres par leurs identifiants Code Copier
Endpoints XML Méthode Description Intégration URL
/jobs-posting POST Soumettre plusieurs offres en une seule requête Code Copier
/job-posting POST Soumettre une offre d'emploi Code Copier
/jobs-edit PUT Modifier plusieurs offres en une seule requête Code Copier
/job-edit PUT Modifier une offre d'emploi Code Copier
/jobs-delete DELETE Supprimer plusieurs offres par leurs identifiants Code Copier
Autres endpoints Méthode Description Intégration URL
/jobs-list GET Obtenir la liste des offres publiées Code Copier
/job-delete DELETE Supprimer une offre par son identifiant Code Copier
Codes HTTP de réponse possibles (résumé)
Code Signification Description
200 OK Requête traitée avec succès.
201 Created Ressource créée avec succès.
400 Bad Request Données invalides ou incomplètes.
403 Forbidden Accès refusé (clé secrète incorrecte).
422 Unprocessable Entity Erreurs de validation métier.
500 Internal Server Error Erreur côté serveur.

Pour plus de détails et la liste complète des messages personnalisés, consultez la page : Codes et messages d’erreurs

Gestion des erreurs

Chaque champ a des validations spécifiques (longueur, caractères autorisés, etc.). Lorsqu’une requête échoue, l’API EasyJobs renvoie une réponse structurée au format JSON, contenant des informations précises sur le motif du rejet. Cela permet aux intégrateurs de détecter rapidement le problème et de le corriger.

Exemple de réponse en cas d'erreur :

                
                  {
                    "message": "Le champ 'title' doit contenir au moins 12 caractères."
                  }
                

Pour une description complète des erreurs possibles, des formats de réponse et des conseils de traitement, voir la documentation : Codes et messages d’erreurs

Bonnes pratiques et recommandations
  • Valider les données localement avant envoi à l'API : vérifiez la longueur des champs, les caractères autorisés, les formats de dates, montants, identifiants, etc. Cela permet d’anticiper d’éventuels durcissements de schéma.
  • Bien gérer les codes de réponse HTTP : adaptez votre logique selon le retour de l’API.
    • 200 OK – Requête traitée avec succès.
    • 400 Bad Request – Erreur de validation.
    • 401 Unauthorized – Authentification invalide.
    • 403 Forbidden – Accès refusé (clé secrète incorrecte).
    • 422 Unprocessable Entity – Données bien formées mais incohérentes.
    • 429 Too Many Requests – Limite de requêtes atteinte.
    • 500 Internal Server Error – Erreur côté serveur.
  • Implémenter des tentatives de réessai en cas d'erreurs temporaires (ex : 429, 500). Ajoutez un délai avant de renvoyer la requête.
  • Prévoir un mécanisme de fallback ou de journalisation : enregistrez les offres échouées avec leur ID, le code et le message d’erreur, et prévoyez un traitement différé si nécessaire.
  • Garder à jour le token et la clé secrète : renouvelez régulièrement vos identifiants depuis le tableau de bord EasyJobs API.
  • Suivre régulièrement la documentation : pour connaître les évolutions, nouveautés ou changements de règles métiers.
Foire aux questions (FAQ)

Pour consulter l’ensemble des questions les plus fréquentes sur l’utilisation de l’API (authentification, envoi multiple, format des champs, erreurs récurrentes, etc.), veuillez consulter la page dédiée : Foire Aux Questions (FAQ)

Intégration visuelle et tests

Pour découvrir les outils recommandés pour tester visuellement l’API EasyJobs (Postman, Swagger Editor, interface intégrée à venir), consultez la page suivante : Intégration visuelle et tests

Swagger / Outils de test interactifs

Pour obtenir la spécification Swagger complète (OpenAPI), l’importer dans Swagger Editor ou découvrir les projets à venir autour de Swagger UI, consultez cette page dédiée : Swagger / Outils de test interactifs

Contrôle des versions

L’API EasyJobs ne gère actuellement pas de version explicite dans les URLs (comme /v2/ ou /v3/). Toutefois, un système de contrôle interne est en place pour assurer la stabilité des fonctionnalités.

Politique actuelle :

  • Les évolutions sont apportées de manière progressive et sans rupture pour les intégrateurs.
  • Chaque changement est documenté et annoncé dans les notes de version.
  • Les utilisateurs n’ont pas besoin de modifier leur intégration sauf en cas de mise à jour critique (rare).
Contact et support

Cette documentation est mise à jour régulièrement en fonction des changements et améliorations apportés à l'API.

Copyright EasyJobs API © 2025 - Tous droits réservés