API développeur
Intégrez AssessFit à votre ATS, à Zapier ou à vos outils internes — créez des postes, invitez des candidats, récupérez les résultats et recevez des webhooks signés dès qu'un candidat termine.
Authentification
Générez une clé API dans Employer Dashboard → Settings → API & integrations et envoyez-la avec chaque requête :
curl https://assessfit.com/api/v1/jobs \ -H "X-Api-Key: tp_live_…"
Les clés sont propres à chaque espace de travail. Faire tourner une clé invalide immédiatement la précédente. Les requêtes sont limitées à 300/min par IP.
Points de terminaison
GET/api/v1/jobs
Liste les postes avec le nombre d'invitations et de passations terminées.
POST/api/v1/jobs
Crée un poste et invite des candidats en un seul appel. Les e-mails d'invitation partent automatiquement ; chaque invitation consomme un crédit.
curl -X POST https://assessfit.com/api/v1/jobs \
-H "X-Api-Key: tp_live_…" -H "Content-Type: application/json" \
-d '{
"title": "Senior Accountant",
"roleKey": "accountant",
"tests": ["attention", "financial", "numerical", "conscientiousness"],
"cameraRequired": true,
"shareResults": false,
"candidates": [
{ "name": "Ana Putri", "email": "ana@example.com" }
]
}'
Clés de rôle : accountant, engineer,
sales, support,
marketing, analyst,
custom. Peut-on omettre tests? Non — passez les clés de tests voulues ; la bibliothèque se consulte dans le tableau de bord.
GET/api/v1/jobs/:id
Détail complet du poste : chaque invitation avec ses horodatages d'entonnoir (tracking.sent/opened/loggedIn), le
linkd'invitation personnel, et l'objet result une fois la passation terminée.
POST/api/v1/jobs/:id/invites
Ajoute des candidats à un poste existant : {"candidates":[{"name":"…","email":"…"}]}. Renvoie les invitations créées avec leurs liens.
GET/api/v1/invites/:id/result
Récupère le résultat complet d'un candidat : score global, scores par test, score d'intégrité, verdict et signalements, analyse des temps. Renvoie 404 tant que le candidat n'a pas terminé.
Webhooks
Définissez une URL de webhook dans Settings. AssessFit envoie en POST des événements JSON avec une signature HMAC-SHA256 calculée sur le corps brut avec votre clé API comme secret :
POST https://your-app.example.com/hooks/assessfit
X-AssessFit-Event: candidate.completed
X-AssessFit-Signature: sha256=3f5a…
{
"event": "candidate.completed",
"createdAt": "2026-07-22T09:14:03.000Z",
"data": {
"inviteId": "inv_…",
"jobId": "job_…",
"jobTitle": "Senior Accountant",
"candidate": { "name": "Ana Putri", "email": "ana@example.com" },
"overall": 84,
"scores": { "attention": 83, "numerical": 100 },
"integrity": { "score": 100, "verdict": "clean" }
}
}
Vérifiez la signature avant de faire confiance à une charge utile :
// Node.js
const crypto = require("crypto");
function verify(rawBody, signatureHeader, apiKey) {
const expected = "sha256=" +
crypto.createHmac("sha256", apiKey).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(signatureHeader), Buffer.from(expected));
}
La livraison est retentée 3× (immédiatement, +2 s, +8 s). Chaque tentative est visible dans
Settings → Recent webhook deliveries, et vous pouvez déclencher un événement
webhook.test à tout moment avec le bouton « Send Test Event ». Événements : candidate.completed, webhook.test.
Recettes d'intégration
- ATS (Greenhouse/Lever/etc.) : quand un candidat atteint votre étape « Évaluation », appelez
POST /api/v1/jobs/:id/invites; au webhookcandidate.completed, réécrivez les scores dans le profil du candidat via l'API de votre ATS. - Zapier/Make : utilisez « Webhooks by Zapier » comme déclencheur avec votre URL de webhook AssessFit, et une action HTTP vers
X-Api-Keypour les invitations. - Alerte Slack : recevez le webhook dans une petite fonction et publiez « 🏁 Ana Putri finished Senior Accountant — 84/100, integrity clean » dans votre canal de recrutement.