Documentation API v1

API Mindtheos

Intégrez les données de vos systèmes directement dans vos applications grâce à notre API REST sécurisée.

Authentification par ApiKey HTTPS uniquement JSON / REST

API Presences

Récupérer les données de pointage des employés par site et par période.

Stable · v1

Authentification

Chaque requête doit inclure apiKey et siteid dans le body JSON.

{
                                                    "apiKey": "1771587416nGTp1RM74GjFbqRe8SUv.3XXXX8",
                                                    "siteid": "397XXX"
                                                }

Endpoints

POST /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
    }
}
POST /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"
    }
}
POST /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