Présentation de l'API

L'API OPCVM360 vous permet de récupérer de manière simple et autonome différentes données sur les OPCVM ainsi que sur les acteurs de la gestion d'actifs. Elle est principalement destinée à alimenter des bases de données cliente mais peut aussi dans certains cas être utilisée en direct afin d'alimenter une page web ou tout autre type de support.

NOTE : Le nombre de requêtes par client sur l'API est limité à 600 par minute. Par conséquent il est déconseillé de brancher directement un site à forte affluence dessus. Il est fortement recommandé d'utiliser l'API pour alimenter votre propre base de donnée.

Accédez aux différents éléments des fonds et leurs univers :

Fonctionnement

L'api est au format REST+(JSON, XML ou CSV), elle est en lecture seule, cela signifit que la seule méthode HTTP implémentée est GET.

Le format de retour par défaut est JSON, pour XML ou CSV ajoutez le paramètre format=xml ou format=csv

Les prérequis pour utiliser l'API sont :
  • Votre login et votre mot de passe communiqués par nos services lors de la création de vos accès.
  • De disposer d'un client HTTP afin de pouvoir effectuer des requêtes. Selon le langage de programmation utilisé il est possible que vous disposiez déjà d'un client HTTP, dans le cas contraire vous pouvez utiliser les très pratiques libcurl. Si vous ne savez pas ce qu'est un client HTTP référez vous à l'article suivant.

Authentification :

L'authentification peut se faire de deux manières différentes:

  • Soit par l'ajout de deux headers http: login et password à vos requêtes, à renseigner par les valeurs qui vous ont été communiquées:
    login: votreLogin
    password: votreMotDePasse
  • Soit à l'aide de l'authentification HTTP Basic
    Référez-vous à la documentation de votre language de programmation pour plus de details sur l'authentification HTTP Basic.

De manière générale :

  • Les noms des ressources sont en anglais et toujours au pluriel, éventuellement en mot composé (avec un tiret)
  • La ou les ressources demandées sont retournées dans le paramètre data
  • En cas d'erreur, le code réponse HTTP est 4xx ou 5xx et dans les données de retour se trouvent 2 champs : error, errorCode

NOTE : L'ordre des champs retournés par l'API n'est pas fixé, celui-ci peut varier lorsque nous ajoutons de nouvelles données dans l'API. Il est donc impératif de vous baser sur le nom des champs plutot que sur leur ordre quand vous récupérez des données.

Les ressources

Les informations disponibles dans l'API sont découpées par "ressource" de la manière suivante :

Ressource Description
funds Un fonds est identifié par un idFund et peut posséder une ou plusieurs parts. Les données d'un fonds sont les mêmes pour toutes les parts associés à ce fonds. Un fonds est aussi associé à une société de gestion, un idCompany permet de faire la liaison.
fundshares Une Part est identifiée par un idFundShare. Une part est obligatoirement associée à un et un seul fonds, afin de faire la liaison un idFund vous est retourné.
fundshares-history Cette ressource permet de récupérer les historiques des parts. Chaque ligne d'historique retourne un idFundShare qui indique à quelle part elle est associée.
fundshares-ost Cette ressource permet de récupérer les OST des parts. Chaque OST retourne un idFundShare qui indique à quelle part elle est associée.
fundshares-coupons Cette ressource permet de récupérer les coupons des parts. Chaque ligne retourne un idFundShare qui indique à quelle part il est associé.
assetmanagementcompanies Une Société de gestion est identifiée par un idCompany. Cet identifiant permet de récupérer ses fonds associés.
managers Représente les données relatives aux gérants de fonds. Un gérant est identifié par un idPerson, il est associé à une ou plusieurs société de gestion. Il peut aussi être associé à 0 ou plusieurs fonds.
documents Retourne des informations sur les documents, cette ressource permet aussi de télécharger les documents.

Schema

Le schema suivant décrit la manière dont sont associés les ressources :

NOTE : Les liaisons de la ressource managers ont la particularité d'êtres de type N:N, afin de limiter le nombre de ressource dans l'API nous avons choisit de ne pas représenter les tables de liaisons entre ces ressources. Référez vous à la ressource managers afin d'en savoir plus.

Gestion des erreurs

Lorsqu'une erreur survient au cours de votre requête, la réponse HTTP sera de la forme suivante:
{
    "error": "bad authentification",
    "errorCode": "403"
}

Codes d'erreur :

Code Description
400 La syntaxe de la requête est erronée, peut être utilisée si vous passez les mauvais paramètres de recherche et/ou d’ajout.
403 L’authentification est refusée.
405 Méthode de requête non autorisée.
509 Limite de requêtes atteinte, celle-ci est de 600 requêtes par minutes.
500 Erreur interne du serveur, utilisée pour toute erreur autre que celles gérés au dessus.

Urls et aperçus

L'url de base de l'api en version 1 est : https://services.opcvm360.com/api-v1/

/api-v1/ressource renvoie un tableau de ressources data, un attribut metadata précisant la limite (limit), l'offset (offset) et le nombre total de résultats (totalCount)

/api-v1/ressource/id renvoie la ressource d'identifiant id

Exemple de réponse de la forme https://services.opcvm360.com/api-v1/ressource :
{
    "metadata": {
        "limit": "2",
        "offset": "0",
        "totalCount": 18706
    },
    "data": [
        {
            "idFundShare": 1,
            "idFund": 1,
            "name": "CS BF (LUX) - HIGH YIELD USD B (C)",
            "isin": "LU0116737759",
            "decimalisation": 1000,
            "creationDate": "2000-10-13",
            "currency": "USD",
            "urlname": "cs-bf-lux-high-yield-usd-b-usd-c",
            "lastVl": "261.090",
            "lastVlDate": "2014-10-30",
            "sheetUrl": "http%3A%2F%2Fwww.opcvm360.com%2Fopcvm%2Ffiche%2Fcs-bf-lux-high-yield-usd-b-usd-c",
            "varP7D": "0.0004",
            "dateP7D": "2014-10-30",
            "varPYTD": "0.0382",
            "datePYTD": "2014-10-30",
            "varP1Y": "0.0485",
            "dateP1Y": "2014-10-30",
            "varP3Y": "0.2494",
            "dateP3Y": "2014-10-30",
            "varP5Y": "0.5523",
            "dateP5Y": "2014-10-30",
            "varP10Y": null,
            "dateP10Y": null
        },
        {
            "idFundShare": 2,
            "idFund": 2,
            "name": "AVIVA VALEURS FRANCAISES",
            "isin": "FR0000014268",
            "decimalisation": 10000,
            "creationDate": "1987-08-06",
            "currency": "EUR",
            "urlname": "aviva-valeurs-francaises",
            "lastVl": "46.120",
            "lastVlDate": "2014-10-30",
            "sheetUrl": "http%3A%2F%2Fwww.opcvm360.com%2Fopcvm%2Ffiche%2Faviva-valeurs-francaises",
            "varP7D": "-0.0029",
            "dateP7D": "2014-10-30",
            "varPYTD": "-0.0173",
            "datePYTD": "2014-10-30",
            "varP1Y": "-0.0013",
            "dateP1Y": "2014-10-30",
            "varP3Y": "0.3214",
            "dateP3Y": "2014-10-30",
            "varP5Y": "0.2836",
            "dateP5Y": "2014-10-30",
            "varP10Y": "0.3908",
            "dateP10Y": "2014-10-30"
        }
    ]
}
Exemple de réponse de la forme https://services.opcvm360.com/api-v1/ressource/id :
{
    "data": [
        {
            "idFundShare": 1,
            "idFund": 1,
            "name": "CS BF (LUX) - HIGH YIELD USD B (C)",
            "isin": "LU0116737759",
            "decimalisation": 1000,
            "creationDate": "2000-10-13",
            "currency": "USD",
            "urlname": "cs-bf-lux-high-yield-usd-b-usd-c",
            "lastVl": "261.090",
            "lastVlDate": "2014-10-30",
            "sheetUrl": "http%3A%2F%2Fwww.opcvm360.com%2Fopcvm%2Ffiche%2Fcs-bf-lux-high-yield-usd-b-usd-c",
            "varP7D": "0.0004",
            "dateP7D": "2014-10-30",
            "varPYTD": "0.0382",
            "datePYTD": "2014-10-30",
            "varP1Y": "0.0485",
            "dateP1Y": "2014-10-30",
            "varP3Y": "0.2494",
            "dateP3Y": "2014-10-30",
            "varP5Y": "0.5523",
            "dateP5Y": "2014-10-30",
            "varP10Y": null,
            "dateP10Y": null
        }
    ]
}