API & Docs › SDK 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- Ouvrez l’adresse dans Safari (le seul navigateur d’iOS autorisé à installer).
- Touchez le bouton Partager, en bas de l’écran.
- Choisissez « Sur l’écran d’accueil », puis Ajouter.
- Ouvrez l’adresse dans Chrome et connectez-vous.
- Touchez le menu ⋮, en haut à droite.
- 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 africaMarketsAnalyticsPython 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) :
puis :
pip install ./africamarketsanalytics-0.3.0-py3-none-any.whlLa 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 barresExemples
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 & HoldComparer 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.
| Appel | Description |
|---|---|
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.info | Mé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.AuthError | Clé invalide/révoquée ou titre hors plan gratuit (401/403). |
ama.NotFound | Ticker ou endpoint inconnu (404). |
ama.RateLimited | Quota journalier dépassé (429). |
ama.AMAError | Classe 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
