API REST v1

Documentation API Upikajob

Accédez aux données RH de votre organisation via une API REST sécurisée. Clés API hashées, isolation multi-tenant, webhooks temps réel.

Démarrage rapide

1

Obtenez votre clé API

Rendez-vous dans Paramétrage > Clés API depuis votre espace Upikajob. Créez une clé, sélectionnez les scopes nécessaires et copiez le token généré.

2

Faites votre première requête

Utilisez votre clé pour interroger l'API :

curl -H "Authorization: Bearer upk_live_..." \
     https://www.upikajob.com/api/v1/employees
3

Explorez les endpoints

Consultez la référence complète ci-dessous pour découvrir tous les endpoints disponibles : collaborateurs, entretiens, compétences, formations et plus encore.

Authentification

En-tête Authorization

Toutes les requêtes doivent inclure votre clé API dans l'en-tête HTTP Authorization :

Authorization: Bearer upk_live_abc123...

Scopes disponibles

Chaque clé API est limitée aux scopes que vous lui attribuez. Voici la liste complète :

Scope Description
read:employees Lecture des données collaborateurs
write:employees Création de collaborateurs
read:reviews Lecture des entretiens
read:syntheses Lecture des synthèses IA d'entretiens
read:skills Lecture des compétences
read:follow-ups Lecture des suivis collaborateurs
read:documents Listing des documents par collaborateur
read:review-types Types d'entretiens disponibles
read:hierarchy Organigramme hiérarchique
read:legal-obligations Référentiel des obligations légales
read:formations Lecture du catalogue de formations
read:training-sessions Lecture des sessions de formation
read:training-providers Lecture des organismes de formation
read:training-requests Lecture des demandes de formation
webhooks:manage Gestion des webhooks (création, suppression, consultation)

Sécurité

Hashage SHA-256

Les clés sont hashées avant stockage. Seul le préfixe est conservé en clair pour l'identification.

Isolation multi-tenant

Chaque clé est liée à un partenaire. Aucun accès croisé entre organisations.

Expiration configurable

Définissez une date d'expiration pour chaque clé API.

Révocation instantanée

Révoquez une clé à tout moment depuis votre espace d'administration.

Référence des endpoints

Exemples de code

curl -H "Authorization: Bearer upk_live_abc123..." \
     https://www.upikajob.com/api/v1/employees
$ch = curl_init('https://www.upikajob.com/api/v1/employees');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer upk_live_abc123...'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
const response = await fetch('https://www.upikajob.com/api/v1/employees', {
    headers: {
        'Authorization': 'Bearer upk_live_abc123...'
    },
});
const data = await response.json();
import requests

response = requests.get(
    'https://www.upikajob.com/api/v1/employees',
    headers={'Authorization': 'Bearer upk_live_abc123...'}
)
data = response.json()

Webhooks

Recevez des notifications HTTP POST en temps réel lorsqu'un événement se produit dans Upikajob.

Événements disponibles

Événement Déclencheur
employee.created Nouveau collaborateur ajouté
employee.updated Fiche collaborateur modifiée
review.completed Entretien finalisé
skill.validated Compétence validée
training.request.created Nouvelle demande de formation
training.request.approved Demande de formation approuvée
training.session.created Nouvelle session de formation créée

Exemple de payload

// POST vers votre URL de webhook
{
  "event": "employee.created",
  "timestamp": "2026-04-07T14:30:00Z",
  "data": {
    "id": 142,
    "firstName": "Marie",
    "lastName": "Dupont",
    "email": "m.dupont@entreprise.fr"
  }
}

Fiabilité

Signature HMAC-SHA256 : chaque payload est signé pour vérifier son authenticité.

Retry automatique : 5 tentatives avec backoff exponentiel en cas d'échec.

Auto-désactivation : après 10 échecs consécutifs, le webhook est désactivé.

HTTPS obligatoire : seules les URLs HTTPS sont acceptées.

Pagination

page défaut : 1
itemsPerPage défaut : 25, max : 100
GET /api/v1/employees?page=2&itemsPerPage=50

Rate Limiting

100 requêtes/minute par clé API (fenêtre glissante).

X-RateLimit-Limit
X-RateLimit-Remaining
X-RateLimit-Reset

En cas de dépassement : réponse 429 avec en-tête Retry-After.

Erreurs

400 bad_request
401 unauthorized
403 forbidden
404 not_found
429 rate_limited
500 internal_error
// Format d'erreur
{
  "error": "not_found",
  "message": "Resource not found"
}

Prêt à intégrer Upikajob ?

Créez votre première clé API en quelques clics et commencez à synchroniser vos données RH.