Démarrage rapide
- Abonnez-vous au plan Premium (l'API est incluse, sans surcoût).
- Dans l'app : Automatisation → Espace API → générez votre clé
fm_live_…(affichée une seule fois). - Appelez l'API avec le header
x-api-key.
# 1. Créer une recherche
curl -X POST https://app.freelancemention.fr/api/v1/searches \
-H "x-api-key: fm_live_VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{
"name": "React remote",
"keywords": ["react", "typescript"],
"work_mode": "remote",
"only_direct_client": true
}'
# 2. Récupérer les missions qui matchent
curl "https://app.freelancemention.fr/api/v1/searches/SEARCH_ID/results?limit=20" \
-H "x-api-key: fm_live_VOTRE_CLE"Authentification
Toutes les requêtes exigent votre clé API dans le header x-api-key (ou Authorization: Bearer fm_live_…). Une clé par compte : la régénérer révoque immédiatement l'ancienne. La clé n'est jamais stockée en clair chez nous (hash SHA-256 uniquement) — conservez-la précieusement.
URL de base : https://app.freelancemention.fr/api/v1
Limite : 60 requêtes/minute par clé · statut Premium revérifié à chaque appel · jusqu'à 50 recherches par compte.
/searchesCrée une recherche de missions. Les critères sont identiques à ceux des alertes de l'app.
Corps (JSON)
keywordsstring[] · requis1 à 20 mots-clés — une mission matche si au moins un mot-clé apparaît dans le titre, la description, la ville ou l'entreprise.
excluded_keywordsstring[]Exclut les missions contenant ces termes.
locationstringVilles séparées par des virgules, ex. "paris, lyon".
work_modestringEx. "remote", "hybride".
min_tjmnumberTJM minimum en € (les missions sans TJM affiché restent incluses).
only_off_marketbooleanUniquement les missions absentes des jobboards.
only_direct_clientbooleanUniquement les clients directs (sans ESN / cabinet).
namestringNom libre pour vous y retrouver.
Réponse — 201
{
"id": "305e40a7-6fcf-41b6-bf0c-982947d26788",
"name": "React remote",
"keywords": ["react", "typescript"],
"only_direct_client": true,
"created_at": "2026-07-09T14:38:32Z",
"results_url": "/api/v1/searches/305e40a7-…/results"
}/searchesListe vos recherches (les vôtres uniquement — isolation stricte par compte).
/searches/{id}/resultsRenvoie les missions détectées qui matchent la recherche, les plus récentes d'abord (30 derniers jours par défaut).
Paramètres de requête
limitnumber1 à 100 (défaut 20).
offsetnumberPagination (défaut 0).
sinceISO 8601Ne renvoyer que les missions détectées après cette date — idéal pour du polling : passez le detected_at de votre dernière mission traitée.
Réponse — 200
{
"search_id": "305e40a7-…",
"total": 40,
"limit": 20,
"offset": 0,
"data": [
{
"id": "…",
"title": "Développeur fullstack senior — Node.js / React (Paris)",
"description": "…",
"company": "…",
"city": "Paris",
"work_mode": "Hybride",
"tjm": "550-600 €",
"tjm_amount": 550,
"duration": "6 mois",
"is_off_market": true,
"is_direct_client": true,
"poster_firstname": "…",
"poster_lastname": "…",
"poster_linkedin": "https://linkedin.com/in/…",
"contact_email": "…",
"linkedin_post_url": "https://linkedin.com/posts/…",
"detected_at": "2026-07-09T10:34:12Z"
}
]
}Erreurs
Format uniforme : { "error": { "code", "message" } }
401missing/invalid_api_keyClé absente, inconnue ou révoquée.
403premium_requiredLe compte n'est pas (ou plus) abonné Premium.
400keywords_required, …Corps ou paramètre invalide — le message précise quoi.
404search_not_foundRecherche inexistante ou appartenant à un autre compte.
429rate_limitedPlus de 60 requêtes/minute — réessayez après quelques secondes.
Recette : polling toutes les 15 min (n8n, Make, cron)
- Créez la recherche une fois (
POST /searches) et stockez sonid. - Toutes les 15 min :
GET /searches/{id}/results?since={derniere_date}. - Pour chaque mission reçue : envoyez-la où vous voulez (Slack, Notion, email…) et mémorisez le
detected_atle plus récent pour le prochain appel.
Astuce : les abonnés Premium ont aussi des webhooks natifs sur les alertes (push au lieu de polling) — configurables dans l'app, section Automatisation.
Prêt à brancher vos outils ?
L'API est incluse dans le plan Premium, sans surcoût. Générez votre clé dans l'app et lancez votre première requête en 2 minutes.
Ouvrir l'app