Back to top

Clic & Surf V1 API - Documentation

Présentation

L’API Clic & Surf V1 permet de mettre à disposition des partenaires certaines données d’usage provenant des offres Wifi contenues dans Clic & Surf selon des droits et autorisations définis par les administrateurs. Cette mise à disposition s’effectue aux formats JSON. L’API offre un système complet, flexible et simple d’utilisation pour la récupération des données de votre offre WiFi.

Activation de l’API

Votre API doit être activée dans votre manager https://hotspot.2isr.fr/v4/ > Statistiques & Données > Gestion de l’API

Sécurité de l’API

Votre adresse IP doit être enregistrée dans votre manager https://hotspot.2isr.fr/v4/ > Statistiques & Données > Gestion de l’API

Format des requêtes

Toutes les données sont transmises en UTF8

Composition des requêtes

Les paramètres suivants sont nécessaires dans l’ensemble des requêtes :

Les paramètres compte_hotspot et compte_manager sont indépendants. Seul l’un d’eux est obligatoire. Si les deux paramètres sont renseignés le paramètre compte_manager est prioritaire.

Nom Valeur Type Description
cle 379j4ya8gdepj8xntgsgesxnf POST/GET Valeur de votre clé API disponible sur hotspot.2isr.fr
compte_hotspot XXX00-000 POST/GET Identifiant du compte hotspot de la clé
compte_manager FLOTT-000 POST/GET Identifiant du compte manager de la clé
résultat count POST/GET Vide par défaut, si envoyé sur “count” le résultat ne renvoi que le count sans tableau de résultat

Exemple d’une requête GET pour un compte API hotspot : https://api-hotspot.2isr.fr/v1/<fonction>/?cle=valeur_cle&compte_hotspot=XXX00-000

Exemple d’une requête GET pour un compte API manager : https://api-hotspot.2isr.fr/v1/<fonction>/?cle=valeur_cle&compte_manager=FLOTT-000

Les paramètres peuvent également tous être utilisés avec la méthode POST

Contextes des données

Il est utilisé la notion de contexte des données. Chaque donnée peut-être exportée suivant les contextes suivants :

hotspot : les données sont extraites d’un hotspot. manager : les données sont extraites de tous les hotspots du compte manager. groupe : les données sont extraites de tous les hotspots du groupe territorial dont le hotspot est le parent.

Réponses HTTP

requête correctement exécutée

Code Response Description
200 OK La requête à correctement été exécutée.
201 OK La requête à correctement été exécutée et la modification prise en compte.
204 OK La requête à correctement été exécutée mais ne retourne aucune donnée.

requête en erreur

Code Response Description
400 Bad request La requête n’est pas correctement formée.
401 Unauthorized La requête n’est pas autorisée, votre clé n’est pas valide.
403 Forbidden L’accès à l’API n’est pas autorisé avec votre adresse IP.
404 Not found La méthode n’est pas disponible.
405 Method not allowed La méthode n’est pas autorisée.
406 Forbidden L’accès à l’API n’est pas autorisé du fait que les dernières conditions d’utilisation n’ont pas été acceptées.

Erreurs de l’application

Code Response Description
500 Internal server error Erreur interne, la requête est valide, mais l’API n’est pas en mesure de la traiter.
503 Service unavailable Le service API est temporairement indisponible.

Modifications récentes

  • 07/2016 : Création de l’API

  • 09/2016 : Ajout des méthodes Clic & Surf :

    • liste_users_online
    • liste_hotspot
    • liste_ap
    • liste_logs
  • 12/2017 : Ajout de la méthode :

    • liste_groupe
  • 03/2018 : Modification de la méthode :
    • liste_logs : ajout valeur “optin” portail RGDP

Groupe Méthodes Clic & Surf

Utiliser ces méthodes pour extraire les informations souhaitées de votre hotspot Clic & Surf :

Resource Group

liste_hotspot

liste_hotspot
GET/liste_hotspot

Liste l’ensemble des hotspots et leurs configurations suivant le contexte.

Example URI

GET https://api-hotspot.2isr.fr/v1/liste_hotspot
URI Parameters
HideShow
contexte
String (required) Example: hotspot

Le contexte peut-être : hotspot/manager/groupe.

hotspot
String (required) Example: XXX00-000

hotspot parent dans le contexte groupe. required uniquement dans le contexte groupe

Response  200
HideShow
Headers
Content-Type: application/json
X-Request-ID: f72fc914
X-Response-Time: 2ms
Body
{
        "code": 200,
        "message": "",
        "header": {
            "date_export": "2016-09-21 17:11:49",
            "fournisseur": "2ISR",
            "API": "1",
            "remote_addr": "",
            "type_donnees": "liste_hotspot",
            "contexte": "hotspot",
            "nb_donnees": "1",
            "time": "2"
        },
        "rows": [{
            "id": "18"
            "hotspot": "SJL64-005"
            "hotspot_actif": "1"
            "type_auth": "cgu"
            "cgu_email": "1"
            "redirection": "www.xxxxxxx.com"
            "network": "10.x.x.x"
            "masque": "26"
            "ip_wan_operateur": "92.103.92.172"
            "ssid": "SSID"
            "description": "XXXXXXXXXXXXXX"
            "street_name": "xx bd de la mer"
            "postal_code": "49300"
            "city": "CHOLET"
            "province": "49"
            "latitude": "41.384507"
            "longitude": "-0.660716"
        }]
    }

liste_groupe

liste_groupe
GET/liste_groupe

Liste l’ensemble des groupes territoriaux du compte utilisé dans la requête.

Example URI

GET https://api-hotspot.2isr.fr/v1/liste_groupe
Response  200
HideShow
Headers
Content-Type: application/json
X-Request-ID: f72fc914
X-Response-Time: 2ms
Body
{
  "code": 200,
  "message": "",
  "header": {
    "date_export": "2017-12-19 17:51:34",
    "fournisseur": "2ISR",
    "API": "1",
    "remote_addr": "::1",
    "type_donnees": "liste_groupe",
    "contexte": "manager",
    "nb_donnees": 1,
    "time": 19
  },
  "rows": [
    {
      "id": "1702",
      "hotspot_parent": "XXX00-000",
      "description_groupe": "Mon groupe territorial"
    }
  ]
}

liste_ap

liste_ap
GET/liste_ap

Liste l’ensemble des points d’accès d’un hotspot

Example URI

GET https://api-hotspot.2isr.fr/v1/liste_ap
URI Parameters
HideShow
hotspot
String (required) Example: XXX00-000

hotspot dont les données seront extraites, implicite lors de la connexion avec un compte hotspot.

Response  200
HideShow
Headers
Content-Type: application/json
X-Request-ID: f72fc914
X-Response-Time: 2ms
Body
{
  "code": 200,
  "message": "",
  "header": {
    "date_export": "2016-09-21 17:11:49",
    "fournisseur": "2ISR",
    "API": "1",
    "remote_addr": "",
    "type_donnees": "liste_ap",
    "contexte": "hotspot",
    "nb_donnees": "1",
    "time": "2"
  },
  "rows": [
    {
      "id": "3968",
      "sn": "XXXXXXXXXXXX",
      "mac": "XX:XX:XX:XX:XX:XX",
      "host": "XXX00-001-1",
      "nom_objet": "PARUCKUSRXXX",
      "ip": "XX.XX.XX.XX",
      "latitude": "0.000000",
      "longitude": "0.000000"
    }
  ]
}

liste_users_online

liste_users_online
GET/liste_users_online

Liste l’ensemble des utilisateurs en ligne suivant le contexte.

Example URI

GET https://api-hotspot.2isr.fr/v1/liste_users_online
URI Parameters
HideShow
contexte
String (required) Example: hotspot

Le contexte peut-être : hotspot/manager/groupe.

hotspot
String (required) Example: XXX00-000

hotspot dont les données seront extraites, hotspot Parent dans le contexte groupe, ignoré dans le contexte manager .

Response  200
HideShow
Headers
Content-Type: application/json
X-Request-ID: f72fc614
X-Response-Time: 120ms
Body
{
        "code": 200,
        "message": "",
        "header": {
                "date_export": "2016-09-21 17:11:49",
                "fournisseur": "2ISR",
                "API": "1",
                "remote_addr": "",
                "type_donnees": "liste_users_online",
                "contexte": "hotspot",
                "nb_donnees": "1",
                "time": "120"
        },
        "rows": [{
            "token_id": "d4d968efef2e5fc67fc2a44e4a0f39e7",
            "timestamp_in": "2016-05-21 23:52:58.052457",
            "timestamp_out": "2016-05-22 01:56:01.962058",
            "user_login": "XXXXXXXXXXXXX",
            "email": "xxxx@xxxx.xx",
            "user_ip": "XX.XX.XX.XX",
            "user_mac": "XX:XX:XX:XX:XX:XX",
            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; GT-I9192 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/50.0.2661.89 Mobile Safari\/537.36",
            "incoming": 85694239,
            "outgoing": 10977787,
            "email_verifier": 1,
            "hotspot": "XXX00-000",
            "duree": "1542",
            "fastpass": null,
            "info_client": null,
            "autoconnect": "oui",
            "logout_reason": "4",
            "lang_sys": "fr-FR",
            "lang_portail": "fr",
            "type_auth": "ConnectorFB",
            "ap_mac": "XX:XX:XX:XX:XX:XX",
            "optin": "oui",
            "platform": "Defaut",
            "browser": "Defaut",
            "ismobiledevice": "Non",
            "verifie_txt": "Oui",
            "ConnectorFB": {
                "FB_ID": "XXXXXXXXXXXXXX",
                "FB_Email": "xxxx@xxxx.xx",
                "FB_LastName": "XXXX",
                "FB_FirstName": "XXXXXXX",
                "FB_Birthday": "",
                "FB_Link": "https:\/\/www.facebook.com\/app_scoped_user_id\/XXXXXXXXXXXXXX\/",
                "FB_Sexe": "female",
                "FB_Locale": "fr_FR",
                "FB_City": "",
                "verif": 1
            },    
            "ConnectorTwitter": {
                "Twitter_ID": "XXXXXXXXXXXXXX",
                "Twitter_Name": "XXXX",
                "Twitter_ScreenName": "XXXX",
                "Twitter_Location": "XXXX",
                "Twitter_Url": "",
                "Twitter_Followers_Count": "643",
                "Twitter_Listed_Count": "3",
                "Twitter_Favourites_Count": "985",
                "Twitter_Time_Zone": "Paris",
                "Twitter_Lang": "en",
                "Twitter_Profil_Image": "http:\/\/pbs.twimg.com\/profile_images\/XXXXXXXXXXXXXX\/XXXXXXXXXXXXXX.jpg",
                "Twitter_Email": "xxxxxxx@xxx.xx"
            },
            "ConnectorGoogle": {
                "Google_ID": "XXXXXXXXXXXXXX",
                "Google_Email": "xxxxxx@xxxx.xx",
                "Google_Verified_Email": "1",
                "Google_Name": "xxxxxxxxx",
                "Google_Given_Name": "xxxxxxxx",
                "Google_Family_Name": "xxxxxxxxx",
                "Google_Link": "https:\/\/plus.google.com\/xxxxxxxxxxxxxxxxx",
                "Google_Picture": "https:\/\/lh3.googleusercontent.com\/xxxxxxxxxxxxxxxxx/photo.jpg",
                "Google_Gender": "female",
                "Google_Locale": "fr"
            },
            "ConnectorLinkedin": {
                "Linkedin_id": "XXXXXXXXX",
                "Linkedin_email_address": "xxxxxx@xxxx.xx",
                "Linkedin_first_name": "xxxxxxxxx",
                "Linkedin_last_name": "xxxxxxxx",
                "Linkedin_location_country": "fr_FR",
                "Linkedin_pictureurl": "https:\/\/media.licdn.com\/dms\/xxxxxxxxxxxxxxxxx"
            },
            "infos_complementaires": {
                "id": "8389",
                "last_update": "2017-05-04 16:14:55",
                "nom": "",
                "prenom": "",
                "annee": "",
                "sexe": "",
                "telephone": ""
                "email": "",
                "code_postal": "",
                "pays": ""
            }                                            
        }]
    }

liste_logs

liste_logs
GET/liste_logs

Liste et détaille l’ensemble des connexions réalisées sur le hotspot

Example URI

GET https://api-hotspot.2isr.fr/v1/liste_logs
URI Parameters
HideShow
date_start
date (required) Example: d/m/Y

Date de début de la période d’export.

date_end
date (required) Example: d/m/Y

Date de fin de la période d’export.

periode
String (required) Example: 3h|24h|48h

Periode annulant les dates précédentes : 3h, 24h, 48h

contexte
String (required) Example: hotspot

Le contexte peut-être : hotspot/manager/groupe.

hotspot
String (required) Example: XXX00-000

hotspot dont les données seront extraites, hotspot Parent dans le contexte groupe, ignoré dans le contexte manager .

Response  200
HideShow
Headers
Content-Type: application/json
X-Request-ID: f72fc614
X-Response-Time: 120ms
Body
{
        "code": 200,
        "message": "",
        "header": {
                "date_export": "2016-09-21 17:11:49",
                "fournisseur": "2ISR",
                "API": "1",
                "remote_addr": "",
                "type_donnees": "liste_logs",
                "contexte": "hotspot",
                "nb_donnees": "1",
                "time": "120"
        },
        "rows": [{
            "token_id": "d4d968efef2e5fc67fc2a44e4a0f39e7",
            "timestamp_in": "2016-05-21 23:52:58.052457",
            "timestamp_out": "2016-05-22 01:56:01.962058",
            "user_login": "XXXXXXXXXXXXX",
            "email": "xxxx@xxxx.xx",
            "user_ip": "XX.XX.XX.XX",
            "user_mac": "XX:XX:XX:XX:XX:XX",
            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; GT-I9192 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/50.0.2661.89 Mobile Safari\/537.36",
            "incoming": 85694239,
            "outgoing": 10977787,
            "email_verifier": 1,
            "hotspot": "XXX00-000",
            "duree": "1542",
            "fastpass": null,
            "info_client": null,
            "autoconnect": "oui",
            "logout_reason": "4",
            "lang_sys": "fr-FR",
            "lang_portail": "fr",
            "type_auth": "ConnectorFB",
            "ap_mac": "XX:XX:XX:XX:XX:XX",
            "optin": "oui",
            "platform": "Defaut",
            "browser": "Defaut",
            "ismobiledevice": "Non",
            "verifie_txt": "Oui",
            "ConnectorFB": {
                "FB_ID": "XXXXXXXXXXXXXX",
                "FB_Email": "xxxx@xxxx.xx",
                "FB_LastName": "XXXX",
                "FB_FirstName": "XXXXXXX",
                "FB_Birthday": "",
                "FB_Link": "https:\/\/www.facebook.com\/app_scoped_user_id\/XXXXXXXXXXXXXX\/",
                "FB_Sexe": "female",
                "FB_Locale": "fr_FR",
                "FB_City": "",
                "verif": 1
            },    
            "ConnectorTwitter": {
                "Twitter_ID": "XXXXXXXXXXXXXX",
                "Twitter_Name": "XXXX",
                "Twitter_ScreenName": "XXXX",
                "Twitter_Location": "XXXX",
                "Twitter_Url": "",
                "Twitter_Followers_Count": "643",
                "Twitter_Listed_Count": "3",
                "Twitter_Favourites_Count": "985",
                "Twitter_Time_Zone": "Paris",
                "Twitter_Lang": "en",
                "Twitter_Profil_Image": "http:\/\/pbs.twimg.com\/profile_images\/XXXXXXXXXXXXXX\/XXXXXXXXXXXXXX.jpg",
                "Twitter_Email": "xxxxxxx@xxx.xx"
            },
            "ConnectorGoogle": {
                "Google_ID": "XXXXXXXXXXXXXX",
                "Google_Email": "xxxxxxxx@xxxxx.x",
                "Google_Verified_Email": "1",
                "Google_Name": "xxxxxxxxx",
                "Google_Given_Name": "xxxxxxxx",
                "Google_Family_Name": "xxxxxxxxx",
                "Google_Link": "https:\/\/plus.google.com\/xxxxxxxxxxxxxxxxx",
                "Google_Picture": "https:\/\/lh3.googleusercontent.com\/xxxxxxxxxxxxxxxxx/photo.jpg",
                "Google_Gender": "female",
                "Google_Locale": "fr"
            },
            "ConnectorLinkedin": {
                "Linkedin_id": "XXXXXXXXX",
                "Linkedin_email_address": "xxxxxx@xxxx.xx",
                "Linkedin_first_name": "xxxxxxxxx",
                "Linkedin_last_name": "xxxxxxxx",
                "Linkedin_location_country": "fr_FR",
                "Linkedin_pictureurl": "https:\/\/media.licdn.com\/dms\/xxxxxxxxxxxxxxxxx"
            },
            "infos_complementaires": {
                "id": "8389",
                "last_update": "2017-05-04 16:14:55",
                "nom": "",
                "prenom": "",
                "annee": "",
                "sexe": "",
                "telephone": ""
                "email": "",
                "code_postal": "",
                "pays": ""
            }        
        }]
    }

deconnecter_utilisateur

deconnecter_utilisateur
GET/deconnecter_utilisateur

Déconnecter un utilisateur via son adresse MAC

Example URI

GET https://api-hotspot.2isr.fr/v1/deconnecter_utilisateur
URI Parameters
HideShow
mac
String (required) Example: 7c:5c:f8:30:78:75

Adresse MAC de l’utilisateur à déconnecter.

Response  200
HideShow
Headers
Content-Type: application/json
X-Request-ID: f72fc914
X-Response-Time: 2ms
Body
{
        "code": 200,
        "message": "L'utilisateur '7c:5c:f8:30:78:75' a été déconnecté",
    }

Generated by aglio on 19 Aug 2022