Titelia

API

Chaque tableau du site répond aussi en JSON, sans clé, sans compte et sans quota.

Les chiffres appartiennent aux fonds qui les déclarent et aux régulateurs qui les publient. En les reprenant, citez la source d'origine.

Les adresses
AdresseRéponse
/api/company/<isin> EssayerLes fonds qui détiennent une société, avec le nombre de titres, le poids dans chaque fonds et la part du capital quand elle est connue.
/api/fund/<id> EssayerLa composition d'un fonds, ligne par ligne, à la date de sa déclaration.
/api/isins EssayerToutes les sociétés du site, une par ligne, avec son ISIN et son adresse.
/fr/feed.xml EssayerCe flux annonce chaque fonds dont la composition arrive sur Titelia ou change. Elle est lue dans le rapport que le fonds publie lui-même.
/api/fund/<id>.csv EssayerLe même tableau en fichier, pour un tableur.
/api/company/<isin>.csv EssayerLe même tableau en fichier, pour un tableur.
/api/openapi.json EssayerLe contrat OpenAPI. Il est généré à partir des constantes du code.

Toutes ces adresses acceptent limit (1 000 lignes par défaut, 12 000 au plus) et offset. Le bloc page de la réponse donne le total, l'adresse de la page suivante et celle de la précédente. Les fichiers acceptent aussi lang, qui écrit les colonnes dans une des trois langues du site. Au-delà de 120 demandes par minute, une adresse reçoit une réponse 429 et le délai à attendre.

Pas de version dans les adresses, parce que rien ne cassera : un champ peut apparaître, aucun ne disparaît ni ne change de sens, et une adresse ne bouge pas.

Les refus

Une erreur répond en application/problem+json (RFC 9457). Son champ type renvoie à l'un des codes de la liste des refus. Les champs status et detail donnent le reste.

company-not-found
Aucune société ne répond à cet identifiant. La liste complète est à l'adresse /api/isins.
fund-not-found
Aucun fonds ne répond à cet identifiant.
not-found
La ressource demandée n'existe pas.
no-such-endpoint
Aucune adresse de l'API ne répond ici.
method-not-allowed
Ces adresses sont en lecture seule : GET, HEAD et OPTIONS.
rate-limit-exceeded
Trop de demandes dans la minute. L'en-tête retry-after donne le délai à attendre.
server-error
Le site n'a pas su répondre. Réessayez un peu plus tard.