[Dev] API Finary

FWIW, l’API non officielle actuelle (donc non documentĂ©e, et qui peut changer Ă  tout moment) permet d’ajouter des actifs (stocks, crypto etc
), crĂ©er des comptes etc
 Je m’en sers rĂ©guliĂšrement pour prendre un PDF d’un Ă©tat de compte d’assurance vie, rĂ©cupĂ©rer les lignes et les envoyer Ă  Finary. Aussi pour un compte crypto. Voir : Outil en ligne de commande pour accĂ©der Ă  Finary

Hello Ă  tous, une nouvelle catĂ©gorie dĂ©diĂ©e aux sujets tech a Ă©tĂ© crĂ©Ă©e: EcosystĂšme tech đŸ§‘â€đŸ’» - Finary

Je déplace ce thread dedans

1 « J'aime »

C’est dĂ©jĂ  possible avec l’API non officielle. Elle commence Ă  se stabiliser donc mĂȘme si on y apporte des changements rĂ©guliĂšrement les breaking changes se font de plus en plus rares

1 « J'aime »

@julien Super ! TrĂšs content de lire que l’API se stabilise. J’avais mis en pause le projet de documentation OpenAPI car ça changeait pas mal avec les « organisations ». D’autre part, je me disais que vous avez peut ĂȘtre une documentation similaire dans les tuyaux. Tu peux nous en dire un peu plus pour voir si ça vaut le coup qu’on se mette Ă  plusieurs (@NickFR @Fix @MadeInJack ) pour documenter chaque champs etc
 Le premier pas ça sera de crĂ©er un compte commun de dĂ©mo de toute façon pour qu’on puisse tester.

Autre chose : quand j’ai commencĂ© Ă  documenter l’API, j’ai trouvĂ© des champs prĂ©sents Ă  certains endroits et pas Ă  d’autres, ce qui empĂȘche de rĂ©utiliser les mĂȘmes objets pour diffĂ©rentes rĂ©ponses. Est ce que tu serais preneur de retour prĂ©cis sur ce sujet ou pas ?

2 « J'aime »

MotivĂ© pour aider avec l’API, je ne m’y connais pas trop mais pourrai apprendre :slight_smile:

La galĂšre en effet, voir nos essais et erreurs avec tous les contributeurs pour trouver les bons combos :sweat_smile: J’ai peut-ĂȘtre ratĂ© la logique dans l’API, mais discuter sur une unification des rĂ©ponses serait chouette.

Aussi, j’en demande peut-ĂȘtre trop mais s’il serait possible de rĂ©cupĂ©rer toutes les lignes en une seule requĂȘte je suis preneur


2 « J'aime »

Saut erreur de ma part, holdings_accounts contient toutes les lignes. Je m’en sers dans le bookmarklet CSV export et je pense que je ratisse la plus grande partie des types de ligne.

1 « J'aime »

Damn, j’ai ratĂ© ça, merci :sweat_smile: Finalynx vient de gagner 500% en performance x)
Il y a tout ce qu’il faut (dans mon portefeuille en tout cas).

1 « J'aime »

Hello l’équipe !

Ca fait plaisir de voir autant de motive autour d’une API, je tombe des nu !

Pour ma part j’étais sur le point de me faire un scraper ( CIC ) pour rĂ©cupĂ©rer mes transactions quotidiennes, et me mettre en place une interface ( l’ui serait clairement dans le thĂšme Finary car on adore) afin de les classifier de maniĂšre archi modulable (J’ai un cĂŽtĂ© tatillon pas piquĂ© des hannetons parfois)
Sauf que, que ne vois-je : Les transactions sont arrivées chez Finary et à priori ca bosse sur un systÚme de classification.
J’avoue que je souhaite quand mĂȘme tenter l’idĂ©e car ca peut ĂȘtre trĂšs cool Ă  faire. Et ca me fait bosser mon code ;).

LA question : Est-ce au programme d’ajouter les transactions des comptes bancaires dans un futur proche ? Auquel cas le scraper serait obsolĂšte. Et du coup ca pourrait profiter Ă  d’autres, mĂȘme si dans le futur ca risque de faire doublon.

En tout cas super initiative de Finary pour ce budget classifier car je suis un peu brĂšle en patrimoine puisque je suis dĂ©jĂ  brĂšle Ă  l’étape en amont de tout ce que propose Finary qui est l’épargne non de bleu.

Super move du coup, merci !

moi je vois déjà les transactions de mes comptes bancaires (HelloBank, Fortuneo, LCL)

Ah super ! Je vais checker de mon cÎté.
Avec l’API officielle ou non ?

dans le web (et dans l’app):

Ce serait incroyable !

Perso j’en ferais une app pour tracker facilement les transactions (si possible) ayant eu lieu sur un compte spĂ©cifique, et les lier aux dĂ©penses mensuelles Ă  dĂ©finir depuis le cashflow (Ă©lectricitĂ©, loyer, etc
) pour avoir le suivi des dĂ©penses ayant dĂ©jĂ  eu lieu chaque mois, et ainsi savoir combien garder sur son compte courant jusqu’au mois prochain! :smiley:

J’ai mis Ă  jour mon wrapper en python pour recupĂ©rer les transactions des comptes bancaires, livrets et comptes d’investissement: GitHub - lasconic/finary_uapi
Pas les cartes de crĂ©dit pour l’instant, j’ai rien pour tester mais si quelqu’un veut aider


C’est aussi sur Pipy finary-uapi · PyPI
et sujet dédié ici : Outil en ligne de commande pour accéder à Finary

la flemme d’installer Python & co :slight_smile: mais je vais tester (j’ai une carte AmEx) si personne rĂ©pond dans les jours Ă  venire.

Cool, il y a une issue ici : Fetch credit card transactions ? · Issue #128 · lasconic/finary_uapi · GitHub

J’ai une amex aussi. Je regarde dans ma journĂ©e et mettrai l’issue a jour :wink:

En prioritĂ© la quantitĂ© de crypto que j’ai dans chaque crypto. Cf ce poste ici : ExpĂ©rience utilisateur crypto - plus value.

Du coup je me suis crĂ©Ă© mon propre dashboard dans google sheets, qui se met Ă  jour dynamiquement et m’envoie des alertes. Et la seule chose que je n’ai pas encore pu automatiser c’est la mise Ă  jour de la quantitĂ© de cryptos que je dĂ©tiens dans finary (actuellement je fais Ă  la main).

Merci

DĂ©solĂ©, mais est-ce que quelqu’un pourrait me rĂ©sumer la situation :sweat_smile:
J’ai lu les 97 messages, mon cerveau s’est perdu en route.

Si je rĂ©sume, une API officielle dĂ©veloppĂ© en interne n’est disponible que pour certains bĂȘta-testeur ?
A cÎté de cela, deux API communautaire ont été créées (finary_uapi et openapi-finary) ?

Je n’ai pas compris comment les API communautaire fonctionnent. Comment ont-elles accĂšs aux donnĂ©es de nos comptes Finary (scrapping) ?

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.

Ce que je ne comprends pas, c’est comment tu fais pour trouver les appels API qui renverront les datas qui t’intĂ©ressent.
Par exemple, je vois ca dans mon DevTools

Ca veut dire que les API communautaires utilisent les mĂȘmes endpoint que l’officiel, juste on doit trouver tous les endpoints pour chaque actions GET, POST etc ? Et aussi trouver les bons paramĂštres a faire passer pour que l’appel API ne soit pas refusĂ©s ?

Pourquoi n’est il pas possible d’avoir directement une liste de tous les endpoints (de la part de l’équipe Finary) ? Ca serait trop long Ă  faire ou ca exposerait des endpoints qu’on ne veut pas montrer ?