Une API REST pour brancher un tableau de bord, un script Python ou une feuille de calcul sur vos portefeuilles ScanETF et sur toutes les analyses du Rayon X.
$ GET /api/v1/portfolios/…/analysis
Authorization: Bearer sk-scanetf-api-••••
→ 200 OK
"frais_ter_pondere_pct": 0.214,
"eligible_pea": true,
"cout_annuel_eur": 140.07,
"continents": [
{ "nom": "Amérique du Nord", "pct": 67.4 }
]
Tout le Rayon X, sur vos propres portefeuilles d'ETF.
Frais réels pondérés, éligibilité PEA, disponibilité chez les courtiers, rendement de dividende pondéré, exposition par continent, pays et secteur — et la contribution de chaque ligne à chacun de ces chiffres.
Performance totale, rendement et volatilité annualisés, ratio de Sharpe, perte maximale, rendements annuels et mensuels. Plus la valeur jour par jour, en base 100, pour tracer la courbe dans votre outil.
Les entreprises que vous détenez via plusieurs ETF à la fois, et la matrice de corrélation entre vos lignes — avec les groupes quasi interchangeables au-delà de 0,8.
Créez un portefeuille, réécrivez son allocation ou supprimez-le depuis un script, un tableur ou une tâche planifiée — sans repasser par l'interface.
Trois étapes, cinq minutes.
Depuis votre espace client, en un clic. Le secret ne s'affiche qu'une fois — nous n'en gardons qu'une empreinte chiffrée.
Un header Authorization, et c'est parti. Les exemples curl sont prêts à copier, avec votre clé déjà insérée.
Un tableau de bord, une alerte de dérive d'allocation, un export vers votre feuille de calcul — vos données, vos outils.
Dépliez-en un pour voir ce qu'il renvoie et les paramètres qu'il accepte. Toutes les réponses sont en JSON, et les champs sont nommés en français.
Nom, enveloppe fiscale, courtier, étiquette et nombre de lignes. Point de départ : les autres endpoints attendent un identifiant renvoyé ici.
Crée un portefeuille, avec sa composition si elle est fournie — en pourcentage (la somme des poids doit valoir 100) ou en nombre de parts (valorisées au dernier cours), comme dans l’éditeur du site.
Paramètres
nom · bodyrequisNom du portefeuille.enveloppe · bodyPEA, CTO, PEA-PME, Assurance Vie ou PER.courtier · bodyNom du courtier, texte libre.tag · bodyPrincipal, Optimisé, Test ou Archivé.lignes · bodyTableau de { isin, poids_pct } (mode pourcentage) ou de { isin, parts } (mode parts). Un seul mode par portefeuille.Chaque ligne avec son ISIN, son poids, le montant investi, les parts, les frais et l’éligibilité PEA.
Modifie les informations (nom, description, enveloppe, courtier, étiquette) et/ou la composition. Seuls les champs envoyés changent ; `lignes`, si présent, remplace intégralement la composition. La composition est refusée si le portefeuille comporte des transactions dans le suivi DCA, pour ne pas fausser les positions.
Paramètres
nom, description, enveloppe, courtier, tag · bodyMêmes valeurs qu’à la création. `null` efface un champ facultatif.lignes · bodyNouvelle composition complète, en { isin, poids_pct } ou en { isin, parts }. Omettre pour garder la composition actuelle.Emporte les lignes, les transactions et le plan DCA. Irréversible : le nom exact est exigé en confirmation.
Paramètres
nom · queryrequisNom exact du portefeuille.Frais pondérés, éligibilité PEA, disponibilité courtiers, rendement de dividende pondéré avec les ETF qui le produisent, exposition complète par continent, pays et secteur, et le détail ligne à ligne (frais, coût annuel, capitalisant ou distribuant avec son rendement, réplication).
Ce que vous détenez réellement, toutes lignes confondues : chaque entreprise avec son poids dans le portefeuille et les ETF par lesquels vous la détenez. Les positions détenues via plusieurs ETF sont marquées `en_doublon`. Liste paginée, par poids décroissant ; les positions sous 0,01 % du portefeuille ne sont pas listées, mais restent comptées dans `chevauchement_pct`.
Paramètres
limite · queryTaille de page : 25 par défaut, 100 au maximum.offset · queryRang de la première position renvoyée, 0 par défaut. Reprendre l’`offset_suivant` de la réponse ; il vaut `null` quand tout a été lu.Performance totale, rendement et volatilité annualisés, ratio de Sharpe, perte maximale, rendements annuels et mensuels, à allocation constante. La série ne commence qu’au premier jour où toutes les lignes cotent : si une ligne récente tronque la fenêtre demandée, `tronquee_par_historique` le signale et `ligne_limitante` la nomme.
Paramètres
periode · queryFenêtre nommée : 1M, 3M, 6M, 1Y, 3Y, 5Y, Max. Par défaut 1Y, comme la page Comparer du site.date_debut · queryDate de début AAAA-MM-JJ. Prioritaire sur periode.date_fin · queryDate de fin AAAA-MM-JJ. Aujourd’hui par défaut.exclure · queryISIN à retirer du calcul, séparés par des virgules.Matrice de corrélation, paires les plus corrélées et groupes de lignes quasi interchangeables (≥ 0,8). Deux ETF très corrélés n’apportent pas de diversification l’un par rapport à l’autre.
Paramètres
periode · queryFenêtre nommée : 1M, 3M, 6M, 1Y, 3Y, 5Y, Max. Par défaut 1Y, comme la page Comparer du site.date_debut · queryDate de début AAAA-MM-JJ. Prioritaire sur periode.date_fin · queryDate de fin AAAA-MM-JJ. Aujourd’hui par défaut.exclure · queryISIN à retirer du calcul, séparés par des virgules.Valeur du portefeuille jour par jour, base 100 au premier point commun aux lignes retenues. De quoi tracer la courbe dans votre outil. La série est renvoyée entière — sur cinq ans, comptez ~1 300 points et ~50 Ko ; `granularite` la résume à la semaine ou au mois.
Paramètres
periode · queryFenêtre nommée : 1M, 3M, 6M, 1Y, 3Y, 5Y, Max. Par défaut 1Y, comme la page Comparer du site.date_debut · queryDate de début AAAA-MM-JJ. Prioritaire sur periode.date_fin · queryDate de fin AAAA-MM-JJ. Aujourd’hui par défaut.exclure · queryISIN à retirer du calcul, séparés par des virgules.granularite · query`jour` (par défaut), `semaine` ou `mois` : un point par jour de cotation, ou le dernier point de chaque semaine ou mois. `nb_points` et `nb_jours_cotation` disent ce qui a été renvoyé et ce qui a été résumé.L'API ne donne accès qu'à vos propres portefeuilles : le catalogue ETF n'y est pas interrogeable, il reste réservé au serveur MCP.