API Mindtheos
Intégrez les données de vos systèmes directement dans vos applications grâce à notre API REST sécurisée.
API Presences
Récupérer les données de pointage des employés par site et par période.
Authentification
Chaque requête doit inclure apiKey et siteid dans le body JSON.
{
"apiKey": "1771587416nGTp1RM74GjFbqRe8SUv.3XXXX8",
"siteid": "397XXX"
}
Endpoints
/presences
Récupérer les pointages
Récupère les enregistrements de pointage filtrés par période, device et employé.
Paramètres du body
| Paramètre | Type | Requis | Description |
|---|---|---|---|
apiKey
|
string | ✅ | Clé API fournie lors de la création du site |
siteid
|
string | ✅ | Identifiant du site (6 chiffres) |
begindate
|
date | ✅ | Date de début (YYYY-MM-DD) |
enddate
|
date | ✅ | Date de fin (YYYY-MM-DD) |
devicesn
|
string | ❌ | Serial No du device. 0 = tous les devices |
direction
|
string | ❌ | IN ou OUT. Vide = tous |
employe_id
|
integer | ❌ | Filtrer par employé |
person_name
|
string | ❌ | Recherche par nom (partiel) |
page
|
integer | ❌ | Page courante (défaut: 1) |
per_page
|
integer | ❌ | Résultats par page (max: 500, défaut: 100) |
Exemple de requête
POST https://api.mindtheos.com/api/v1/presences
Content-Type: application/json
{
"apiKey": "1771587416nGTp1RM74GjFbqRe8SUv.3XXXX8",
"siteid": "397XXX",
"begindate": "2026-02-01",
"enddate": "2026-02-20",
"devicesn": 0,
"page": 1,
"per_page": 100
}
Exemple de réponse
{
"success": true,
"code": 200,
"message": "Données récupérées avec succès.",
"data": [
{
"id": 53,
"employe_id": 3,
"auth_datetime": "2026-02-15 22:39:40",
"auth_date": "2026-02-15",
"auth_time": "22:39:40",
"direction": "IN",
"device_sn": "DS-K1T342MFWX20250109V043800ENFW5776897",
"device_name": "Elton-Bagnon",
"person_name": "N'GUESSAN N'GUESSAN RACHEL",
"card_no": null
}
],
"pagination": {
"current_page": 1,
"per_page": 100,
"total_records": 2687,
"total_pages": 27,
"has_next_page": true,
"has_prev_page": false
},
"query_info": {
"begin_date": "2026-02-01",
"end_date": "2026-02-20",
"device_sn": "ALL",
"devices_count": 9,
"response_ms": 23
}
}
/presences/summary
Résumé statistique
Retourne des statistiques agrégées sur la période demandée.
Exemple de réponse
{
"success": true,
"code": 200,
"data": {
"period": { "begin": "2026-02-01", "end": "2026-02-20" },
"total_pointages": 2687,
"total_employes": 22,
"total_jours": 15,
"total_devices": 9,
"total_entrees": 2687,
"total_sorties": 0,
"premier_pointage": "2026-02-07 13:21:51",
"dernier_pointage": "2026-02-20 11:40:46"
}
}
/devices
Liste des devices
Retourne la liste des devices (pointeuses) associés à votre site.
Exemple de réponse
{
"success": true,
"code": 200,
"data": [
{
"id": 1,
"device_sn": "DS-K1T342MFWX20240701V031601ENFV8246697",
"device_name": "Elton-toumodi",
"location": "Toumodi",
"last_sync_at": null
}
],
"meta": { "total": 9, "site_id": "397XXX", "zone": "Elton" }
}
Codes d'erreur
| Code | Signification |
|---|---|
| 200 | Succès |
| 400 | Paramètres invalides (dates, plage trop large, etc.) |
| 401 | ApiKey ou SiteId invalide / expiré |
| 403 | Device non autorisé pour ce site |
| 422 | Erreur de validation des champs |
| 500 | Erreur serveur interne |
Limites anti-surcharge
- Maximum 500 résultats par requête
- Plage de dates maximum : 31 jours
- Maximum 60 requêtes par minute par site
- Utilisez la pagination pour les grandes périodes