Simulation Réaliste
Accédez à des endpoints miroirs de la production. La structure des données (JSON) et les codes réponses HTTP (200, 400, 500) sont identiques à la production.
Simulez vos appels API, manipulez des jeux de données fictifs et validez votre code dans un environnement iso-prod, sans aucun impact sur les données réelles.
Un environnement complet pour valider vos intégrations avant la production.
Accédez à des endpoints miroirs de la production. La structure des données (JSON) et les codes réponses HTTP (200, 400, 500) sont identiques à la production.
Travaillez sur des profils candidats fictifs, des offres d'emploi de test ou des référentiels ROME statiques pour valider vos algorithmes.
Validez votre implémentation du protocole OAuth 2.0 : récupération de token, refresh token, gestion des erreurs d'authentification.
Environnement totalement cloisonné. Vous pouvez créer, modifier ou supprimer des ressources sans affecter le SI de France Travail.
Guide de démarrage rapide pour commencer à intégrer nos API.
https://api.sandbox.francetravail.io/
curl -X POST "https://api.sandbox.francetravail.io/connexion/oauth2/access_token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=VOTRE_CLIENT_ID" \ -d "client_secret=VOTRE_CLIENT_SECRET" \ -d "scope=api_offresdemploiv2 o2dsoffre"
# Recherche "Boulanger à Bordeaux" curl -X GET "https://api.sandbox.francetravail.io/partenaire/offresdemploi/v2/offres/search?motsCles=boulanger&commune=33063" \ -H "Authorization: Bearer VOTRE_ACCESS_TOKEN" \ -H "Accept: application/json"
{
"resultats": [
{
"id": "123456789",
"intitule": "Boulanger / Boulangère - TEST",
"lieuTravail": {
"libelle": "33 - BORDEAUX"
},
"typeContrat": "CDI"
}
],
"contentRange": {
"maxResults": 150,
"totalElements": 42
}
}
import requests BASE_URL = "https://api.sandbox.francetravail.io" CLIENT_ID = "VOTRE_CLIENT_ID" CLIENT_SECRET = "VOTRE_CLIENT_SECRET"
def get_token(): response = requests.post( f"{BASE_URL}/connexion/oauth2/access_token", data={ "grant_type": "client_credentials", "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, "scope": "api_offresdemploiv2 o2dsoffre" } ) return response.json()["access_token"]
token = get_token()
headers = {"Authorization": f"Bearer {token}"}
response = requests.get(
f"{BASE_URL}/partenaire/offresdemploi/v2/offres/search",
headers=headers,
params={"motsCles": "boulanger", "commune": "33063"}
)
offres = response.json()
print(f"Trouvé {len(offres['resultats'])} offres")
const axios = require('axios'); const BASE_URL = 'https://api.sandbox.francetravail.io'; const CLIENT_ID = 'VOTRE_CLIENT_ID'; const CLIENT_SECRET = 'VOTRE_CLIENT_SECRET';
async function getToken() { const response = await axios.post( `${BASE_URL}/connexion/oauth2/access_token`, new URLSearchParams({ grant_type: 'client_credentials', client_id: CLIENT_ID, client_secret: CLIENT_SECRET, scope: 'api_offresdemploiv2 o2dsoffre' }) ); return response.data.access_token; }
async function searchOffres() { const token = await getToken(); const response = await axios.get( `${BASE_URL}/partenaire/offresdemploi/v2/offres/search`, { headers: { Authorization: `Bearer ${token}` }, params: { motsCles: 'boulanger', commune: '33063' } } ); console.log(`Trouvé ${response.data.resultats.length} offres`); } searchOffres();
Toutes nos API majeures sont testables dans l'environnement de développement.
Limitations et bonnes pratiques de l'environnement Sandbox.
Les appels en sandbox sont limités en nombre pour garantir la disponibilité pour tous les développeurs. En cas de dépassement, un code HTTP 429 est retourné.
Les offres et profils remontés ne sont pas réels (ex: "Boulangerie Test 123", "Candidat Fictif"). Ne les utilisez pas pour des analyses métier.
Service "Best Effort" sans SLA garanti. Des maintenances peuvent impacter la disponibilité. Consultez la Status Page avant vos tests.
Nos ressources pour vous aider à débuguer.
FAQ avec les erreurs fréquentes, exemples de requêtes et solutions aux problèmes courants.
Consulter la FAQContactez l'équipe "The Builders" pour signaler un bug ou poser une question technique.
Contacter le supportVérifiez en temps réel l'état des services API, les incidents en cours et les maintenances planifiées.
Voir le statut