Bonjour,
Pour le moment, il existe uniquement une API « officielle », privée et probablement documentée, utilisée par les développeurs de Finary pour faire communiquer le site internet et les app Android/iOS avec les serveurs de Finary. Pour se faire, ils utilisent probablement des librairies écrites dans leurs langages de prédilection pour faciliter l’appel à l’API. Ces libraries ne sont pas publiques, et l’API utilisée n’est pas documentée. En gros, on ne connait pas tous les appels possibles et dans les appels qu’on peut voir, on peut ne pas connaitre à quoi correspond un paramètre ou une valeur retournée. A ma connaissance, il n’y a pas d’API publique, même uniquement pour des béta-testeurs.
Avec quelques autres, j’ai regardé les communications entre le site, les apps et le serveur et nous avons écris « à la main » une librairie/wrapper « finary_uapi » en Python, qui utilise les appels qu’on peut repérer et essaie deviner quels sont les paramètres. « openapi-finary » est une approche différente mais pour le même résultat. Au lieu d’utiliser Python directement, j’ai essayé de décrire et documenter les appels que je voyais passer entre le site et le serveur. Grâce à cette « documentation » au format OpenAPI, on pourrait générer des libraries/wrappers en différents langages. Je n’ai pas mis « openapi-finary » à jour depuis longtemps. C’est un gros boulot à maintenir car ça décrit les valeurs de sortie, et « finary_uapi » est suffisant pour mon besoin. D’autant plus que l’API peut changer à tout moment et invalider tout le travail.
En plus de finary_uapi en Python, ils existent d’autres librairies « à la main » dans d’autres langages (Rust et Ruby) et des outils qui les utilisent pour créer des fonctions que le site ou les apps finary ne proposent pas (encore?).
Ces libraries/wrappers ne font pas de scrapping (elles ne lisent pas le code HTML des pages du site) . Elles se font passer pour le site internet ou les apps web (elles récupèrent les données avant qu’elles soient mise en forme par le navigateur, elles utilisent la même API). Pour avoir accès aux données, tu dois entrer ton email/mot de passe, comme sur le site internet.
J’espère que ça clarifie la situation.