API & DocsSDK Python

Téléchargement — SDK Python

Accédez aux données des marchés africains (BRVM + 17 places) directement depuis Python, avec une API simple et ergonomique. Une clé API est requise ; la clé gratuite couvre la BRVM.

Application mobile

L'application se pose sur l'écran d'accueil du téléphone comme n'importe quelle autre, sans passer par un magasin d'applications : elle s'installe depuis le navigateur, en deux touches, et se met à jour toute seule.

Scannez pour ouvrir sur votre téléphone
Ouvrir l'application
iPhone et iPad — Safari
  1. Ouvrez l’adresse dans Safari (le seul navigateur d’iOS autorisé à installer).
  2. Touchez le bouton Partager, en bas de l’écran.
  3. Choisissez « Sur l’écran d’accueil », puis Ajouter.
Android — Chrome
  1. Ouvrez l’adresse dans Chrome et connectez-vous.
  2. Touchez le menu ⋮, en haut à droite.
  3. Choisissez « Installer l’application ».

Une fois installée, elle s’ouvre en plein écran, garde votre session et reçoit les notifications d’alerte de cours. Guide d’utilisation (PDF)

Fichier Android (.apk)Android uniquement, et facultatif : c’est la même application, dans une enveloppe installable depuis la liste des applications du téléphone. Elle charge le site, donc elle est toujours à jour — rien à réinstaller après une mise à jour. Votre téléphone demandera d’autoriser cette source.

Installation

pip install africaMarketsAnalytics

Python 3.8+. Le SDK tire automatiquement requests ; pandas est recommandé pour les DataFrames.

Téléchargement direct

Si vous préférez installer hors PyPI (réseau d'entreprise, air-gapped) :

Wheel (.whl)Archive source (.tar.gz)v0.3.0

puis :

pip install ./africamarketsanalytics-0.3.0-py3-none-any.whl

La clé API est obligatoire

Chaque appel exige l'en-tête X-API-Key : sans lui l'API répond 401. La clé GRATUITE donne la BRVM/UEMOA, 1 an d'historique et 50 requêtes par jour. Pour les 17 autres places africaines, un historique plus profond, les conseils et le backtest, créez une clé (offres Premium/Entreprise).

Démarrage rapide

import africaMarketsAnalytics as ama

# 1. La clé est OBLIGATOIRE : sans elle, l'API répond 401.
#    Alternative : export AMA_API_KEY="brvm_live_xxxxxxxx"
ama.set_key("brvm_live_xxxxxxxx")

# 2. Un titre — historique OHLCV en DataFrame (index = Date)
t = ama.Ticker("SNTS")                 # Sonatel, BRVM
df = t.history(period="1y")            # 5d,1mo,3mo,6mo,1y,2y,3y,5y,10y,ytd,max
print(df.tail())
print(t.info)                          # nom, secteur, pays, plage de dates, nb de barres

Exemples

Chaque bloc s’exécute tel quel une fois la clé posée. Copiez celui dont vous avez besoin.

Analyse technique

t = ama.Ticker("SNTS")

t.rsi(period=14)                       # -> DataFrame
t.macd(fast=12, slow=26, signal=9)
t.indicator("bollinger", period=20, mult=2)
t.indicator("atr", period=14)          # sma, ema, stochastic, obv, vwap…

t.signals("macd")                      # signaux d'achat/vente
t.advice()                             # synthèse Achat fort -> Vente forte
t.backtest(strategy="rsi")             # performance, drawdown, vs Buy & Hold

Comparer plusieurs titres

# Multi-titres : colonnes en MultiIndex (champ, symbole)
data = ama.download(["SNTS", "BOAC", "ETIT"], period="3y")
cloture = data["close"]

# Performance cumulée, base 100
base100 = cloture / cloture.iloc[0] * 100
print(base100.tail())

# Corrélation des rendements quotidiens
print(cloture.pct_change().corr().round(2))

Explorer l'univers coté

univers = ama.tickers()                 # DataFrame de tout l'univers
print(univers.columns.tolist())

# Filtrer par place et par secteur
brvm = univers[univers["pays"].isin(["Côte d'Ivoire", "Sénégal"])]
banques = univers[univers["secteur"].str.contains("financ", case=False, na=False)]

ama.market()                           # aperçu de la séance
ama.indices()                          # indices du jour
ama.news()                             # actualités
ama.usage()                            # consommation de votre clé

Dividendes et obligations

ama.dividends()                        # tous les émetteurs BRVM -> DataFrame
ama.dividends("SNTS")                  # un seul émetteur

# Rendement du dividende, calculé sur le dernier cours
div = ama.dividends("SNTS")
cours = ama.Ticker("SNTS").history(period="5d")["close"].iloc[-1]
print(f"rendement : {div['montant'].iloc[-1] / cours:.2%}")

ama.bonds()                            # obligations BRVM (clé Premium)
ama.bonds(actif="true", maturite_min=2027)

Gérer les erreurs

import africaMarketsAnalytics as ama

try:
    df = ama.Ticker("NPN").history(period="10y")
except ama.AuthError:
    print("clé invalide, révoquée, ou titre hors de votre offre")
except ama.QuotaError:
    print("quota quotidien atteint —", ama.usage())
except ama.NotFoundError:
    print("symbole inconnu")
except ama.APIError as e:
    print("erreur API :", e)

Documentation — référence

Aperçu des fonctions. Le détail complet est dans le README livré avec le package.

AppelDescription
ama.set_key(key)Définit la clé API. OBLIGATOIRE — ou variable d’environnement AMA_API_KEY.
ama.Ticker(symbol)Objet titre.
t.history(period, start, end)Historique OHLCV → DataFrame (index Date).
t.infoMétadonnées : nom, secteur, pays, plage de dates.
t.indicator(name, **p) / t.rsi() / t.macd()Indicateur → DataFrame (sma, ema, rsi, macd, bollinger, stochastic, atr, obv, vwap).
t.signals(strategy)Signaux d'achat/vente d'une stratégie.
t.backtest(strategy, **p)Backtest (clé requise).
t.advice()Conseil automatique (clé requise).
ama.tickers()Univers coté → DataFrame.
ama.download(symbols, period)Multi-titres → DataFrame (colonnes MultiIndex).
ama.market() / indices() / news() / usage()Aperçu marché, indices, actualités, consommation API.

Périodes acceptées

history(period=…) : 5d, 1mo, 3mo, 6mo, 1y, 2y, 3y, 5y, 10y, ytd, max — ou start='AAAA-MM-JJ'/end='AAAA-MM-JJ'. La profondeur réelle est plafonnée par votre offre (gratuit : 1 an).

Erreurs

ama.AuthErrorClé invalide/révoquée ou titre hors plan gratuit (401/403).
ama.NotFoundTicker ou endpoint inconnu (404).
ama.RateLimitedQuota journalier dépassé (429).
ama.AMAErrorClasse de base de toutes les erreurs du SDK.

README (doc complète)Voir la documentation de l'API REST →

Licence MIT · africaMarketsAnalytics v0.3.0

⚠ PLATEFORME DE TEST — environnement de démonstration · données & comptes non garantis · ne pas utiliser en production   •   TEST PLATFORM — demo environment, do not use in production   •   ⚠ PLATEFORME DE TEST — environnement de démonstration · données & comptes non garantis