Les données pour votre business

Bienvenue. S'inscrire ou s'identifier

Api Data Publica

 

Limitations de la phase beta

L’API de DataPublica est en version beta. Durant cette phase, l’accès peut être brièvement interrompu pour des questions de maintenance. Le temps de réponse n’est pas garanti. Data Publica se réserve le droit de bloquer les utilisateurs qui abusent de son utilisation pour mieux servir les autres utilisateurs. Si vous avez des besoins spécifiques, merci de nous contacter.
 

Les jeux de données disponibles

Les jeux de données disposibles par api sont disponibles à cette adresse
 

URL d’accès à l’API

L’API de Data Publica est accessible par une interface de type RESTful à l’adresse

api.data-publica.com

Une requête type est du format suivant:

http://api.data-publica/v1/{reference}/{tablename}/content?
filter={filter}&format={format}&key={key}&limit={limit}&
offset={offset}&signature={signature}

 

Les paramètres de l’API

Paramètre Obligatoire Description
key oui La clef de l’api (voir comment obtenir une clef d’API?).
reference oui La référence du jeux de données à interroger (cet élément est décrit sur la fiche descriptive du jeu de données)
tablename oui Nom de la table du jeu de données à interroger (cet élément est décrit sur la fiche descriptive du jeux de données)
format non (defaut: “json”) Format de réponse.Supportés: json, csv, excel (défaut : json)
limit non (defaut: 100) Nombre maximum de lignes à retourner. Par défaut, la valeur est de 100. Le maximum est de 200. Vous pouvez nous contacter pour ajuster ce paramètre en fonction de vos besoins.
offset non (defaut:0) Nombre de lignes à sauter avant la réponse. La valeur par défaut est 0.
filter non Filtre de sélection des lignes. Voir Filtre de sélection.
signature oui Signature du message. Voir Comment signer le message

 

Format du résultat

Le format de retour de l’API dépend de la valeur du paramètre “format”. Si celui ci n’est pas précisé, le résultat est sous la forme json conformément à l’exemple ci-dessous.

{
  "version": "1",
  "nb_results": 1,
  "available": 90792,
  "offset": 130,
  "data": [{
    "valeur": 0,
    "index": {
      "index": "1",
      "name": "Reglements de compte entre malfaiteurs"
    },
    "_l": [43.636646,0.450237],
    "geo": {
      "name": "Gers",
      "geo": "32"
    },
    "annee": {
      "$date": "2001-12-31T23:00:00Z"
    }
  }]
}

Format json:

  • le champs “version” est la version de l’api
  • le champs “available” définit le nombre maximum de résultat possible
  • le champs “nb_results” est le nombre de résultats renvoyés (dépend du paramètre limit).
  • le champs “data” est un tableau avec un élément pour chaque ligne du jeux de données

La description des lignes des jeux de données est accessible sur la fiche de la publication correspondante à chacun d’entre-eux.

 

Filtre de sélection

Le paramètre "filter" de la requête permet de filtrer les lignes renvoyées par l’api. Il existe deux sortes de filtres: les filtres géolocalisés et les filtres sur les valeurs des colonnes.
 

Filtre géolocalisé

Lorsque un jeu de donnée est géolocalisé, on peut sélectionner les valeurs de ce jeux autour d’un point géographique. La partie “API” de la fiche d’un jeu de données indique si un tableau est géolocalisé.

Il suffit alors de faire une requête sur le jeu de données avec une condition sur l’attribut “_l” de la manière suivante:

filter={"_l":{"$near":[49.33,0.03]}}

qui retourne les lignes dont la valeur géolocalisée est proche du point à la latitude 49.33 et la longitude 0.03

Filtre sur la valeur d’une colonne

Les filtres permettent d’émettre des conditions sur la valeur d’une colonne. Par exemple

filter={“montant”:{”$lt”:10}} : retourne les lignes dont le montant est inférieur à 10.

Les filtres supportés sont:

  • « $lt » qui signifie “<” , « $lte » qui signifie “<=”
  • « $gt » qui signifie “>” , « $gte » qui signifie “>=”
  • « $eq » qui signifie “=” , « $neq » qui signifie “différent de”
  • « $in » qui signifie “parmi les valeurs”

Les filtres peuvent être combinés avec les conditions $or et $and comme dans l’exemple suivant:

filter={"$or":[{"_l":{"$near":[44,6]}},{"valeur":{"$lt":1000}}}

 

Comment obtenir une clef d’API?

Pour obtenir une clef d’api, vous devez créer un compte sur Data Publica.

Pour cela rendez vous sur la page http://www.data-publica.com/register et, une fois le compte créé, sur “Mes infos” (http://www.data-publica.com/secure/profile) où vous verrez votre clef d’api et le mot de passe pour l’API. Ce mot de passe doit rester secret et ne doit pas être communiqué. Vous pouvez en générer un nouveau si nécessaire.

 

Comment signer le message?

Pour des questions de sécurité, l’appel à l’API de Data Publica doit être signé. Pour cela, l’utilisateur doit

  • Construire une chaîne de caractères en combinant l’url, les paramètres de l’API et leur valeur séparés par une virgule (en ayant préalablement classé les paramètres dans l’ordre alphabétique) puis son mot de passe de l’API. Les paramètres doivent être classés dans l’ordre alphabétique et ajoutés en minuscule.
  • Réaliser un hash (SHA1) de cette chaîne de caractère et la passer en paramètre “signature” supplémentaire de l’API

Par exemple, pour la requête suivante:

http://api.data-publica/v1/4232/tableau3/content?filter={"_l":
{"$near":[49.33,0.03]}}&limit=5&key=356a192c7813b04c54574d18c28d46e6395428ab

On construit la chaîne suivante: (en supposant que le mot de passe d’API est 30d87add92e7b27ce4). (Attention, les paramètres ne sont pas encodés pour générer la chaine à signer)

http://api.data-publica/v1/4232/tableau3/content,filter={"_l":
{"$near":[49.33,0.03]}},key=356a192c7813b04c54574d18c28d46e6395428ab,li
mit=5,30d87add92e7b27ce4

La signature de cette chaîne est ajouté en paramètre de la requête

http://api.data-publica/v1/4232/tableau3/content?filter={"_l":
{"$near":[49.33,0.03]}}&key=356a192c7813b04c54574d18c28d46e6395428ab&
limit=5&signature=8c29e5073e0c2e0e79e0ca2d687653e5181e8324

Voir le sectionClient et API de la pour des implémentations en java et pyhton.

 

Simulateur

Un simulateur de requête est disponible sur la partie API du jeux de données pour les utilisateurs enregistrés. Il permet de construire une URL avec les paramètres nécessaires et de simuler un appel de l’API:
 

 

Codes d’erreur

L’API Rest utilise les codes d’erreur HTTP suivants:

Code Message Signification
400 Bad Request Le filtre ou un autre paramètre est mal spécifié
401 Unauthorized Vous n’avez pas l’autorisation d’accéder à cette ressource
403 Forbidden Accès à l’API interdit (erreur d’authentification par la clef)
404 Not Found La référence demandée n’existe pas
500 InternalServerError Une erreur interne s’est produite

 
 

Client et API

Des clients java et python sont disponibles pour faciliter l’accès aux API. Vous pouvez les retrouver sur GitHub Data Publica Documentation.

Language Client et API
Python Client sur GitHub
Java Generation de signature