AFRICAN EUROBONDS Données

Pour les analystes

L’API de données

Tout ce que le site affiche est servi par une petite API, et les téléchargements de la page Données en sont des appels. Cette page est la référence : chaque point d’accès, ce qu’il prend et renvoie, et comment amener les données dans Python ou Excel. Sans clé ni inscription.

L’essentiel

Points d’accès

GET /bonds

Chaque obligation publiée avec son cours en direct : {count, bonds: [...]}. Les champs sont listés plus bas.

country
facultatif : un pays tel que /countries le liste

Exemple /bonds?country=Nigeria

GET /bonds/{isin}

Une obligation : instrument (ses caractéristiques), live (la ligne que sert /bonds, ou null si l’obligation est suivie mais non cotée) et pricing_history (chaque clôture quotidienne : price_date, bid_price, ask_price, bid_yield, ask_yield). 404 pour un ISIN que le site ne suit pas ou ne cote pas.

Exemple /bonds/XS1777972511

GET /bonds/{isin}/consideration

Le montant à régler : principal, accrued (avec accrued_days, accrued_from, accrued_per_100), total, le yield à ce cours (yield_pct, basis à l’échéance ou au remboursement anticipé, workout_date), factor et current_face pour une obligation partiellement remboursée, et settlement_choices. Jamais mis en cache. Un refus (date invalide, nominal nul, obligation échue) est un 422 avec une phrase.

nominal
nominal, 1 000 000 par défaut
price
cours pied de coupon pour 100 ; par défaut le cours vendeur (achat) ou acheteur (vente) en direct
settlement
AAAA-MM-JJ, un jour ouvré jusqu’à un an ; par défaut T+2 pour une ligne XS, T+1 pour une ligne US
side
buy (défaut) ou sell

Exemple /bonds/XS1777972511/consideration?nominal=250000&side=buy

GET /bonds/{isin}/export

Les clôtures quotidiennes de l’obligation en fichier, les plus récentes d’abord : le téléchargement par obligation de la page Données.

period
1W, 1M, 3M, 6M, 1Y, YTD ou All (défaut)
format
csv ou xlsx (défaut)

Exemple /bonds/XS1777972511/export?period=1Y&format=csv

GET /export/closes

Un seul tableau long, une ligne par obligation et par jour, selon les filtres ; sans filtre, tout l’historique de chaque obligation publiée. Colonnes : date, isin, bond, issuer, issuer_type, country, currency, coupon_pct, maturity_date, bid_price, ask_price, bid_yield_pct, ask_yield_pct, yield_to, yield_note. Reconstruit au plus toutes les dix minutes.

country
un pays tel que /countries le liste
issuer_type
sovereign, corporate ou supranational
start, end
AAAA-MM-JJ, inclus
on
une séance : la dernière à cette date ou avant, pour toutes les obligations
format
csv (défaut) ou xlsx

Exemple /export/closes?country=Kenya&start=2026-01-01&format=csv

GET /export/terms

Données de référence : une ligne par obligation avec ses caractéristiques et le document d’où vient chaque chiffre ; les échéanciers des obligations amortissables (chacun marqué documenté ou déduit) ; les calendriers de remboursement anticipé.

table
bonds (défaut), amortisation ou calls
format
csv (défaut) ou xlsx

Exemple /export/terms?table=amortisation&format=csv

GET /countries

{countries: [...]}, les chaînes de pays que les filtres ci-dessus acceptent.

Exemple /countries

GET /excluded

Les obligations que le site suit mais ne cote délibérément pas, chacune avec un summary et le detail de la décision : le miroir de /bonds.

Exemple /excluded

GET /health

status, le commit en service et une date api qui change quand la forme d’une réponse change.

Exemple /health

Ce que contient une ligne d’obligation

ChampSignification
isin, isin_144aL’ISIN Reg S, et l’ISIN Rule 144A s’il existe. Les routes par ISIN acceptent les deux.
ticker, issuer, issuer_nameLe nom court de l’obligation et son émetteur.
issuer_typesovereign, supranational, ou pour le groupe Entreprises corporate, bank ou quasi_sovereign.
country, country_of_riskLe pays, en majuscules. Pour une entreprise, le pays de risque et la règle qui l’a attribué (country_of_risk_rule).
currency, coupon_rate, coupon_frequency, day_countCoupon en décimal (0.07 pour 7 %), coupons par an, base de calcul.
issue_date, maturity_dateDates ISO ; maturity_date est null pour une perpétuelle.
amount_outstanding, outstanding_factor, current_outstandingLe nominal d’origine retenu par le site, la part encore due après les remboursements prévus, et leur produit.
wal_yearsAnnées jusqu’à l’échéance pour une obligation in fine ; durée de vie moyenne pondérée des tranches restantes pour une obligation amortissable.
bid_price, ask_price, prev_close, daily_changeCours pied de coupon pour 100 de nominal restant ; la clôture précédant le price_date de l’obligation ; la variation.
bid_yield, ask_yieldDécimaux (0.0648 pour 6,48 %), résolus sur les caractéristiques. Null quand le rendement n’est pas publié ou que l’obligation se traite sur le recouvrement.
bid_workout_date, bid_workout_price (and ask_)Renseignés quand le rendement est calculé au remboursement anticipé plutôt qu’à l’échéance : la date et le prix retenus.
price_date, price_time, price_sourceLa séance du cours, l’heure de fixation (UTC) et sa provenance.
stale, rejected, reject_reasonstale : le cours repose sur un ancrage plus ancien que la dernière séance. rejected : la dernière clôture a été refusée, la raison l’explique.
distressedCours moyen sous 70 : valorisée sur le recouvrement attendu, le rendement n’est donné qu’à titre indicatif.
yield_status, yield_withheld_reasonpublished, ou withheld avec la raison (caractéristiques pas encore lues dans le document d’émission, révision à venir, …).

Fichiers à côté de l’API

Ce sont des fichiers statiques du site, reconstruits chaque nuit à partir des caractéristiques et de la dernière clôture ; ils ne demandent aucun appel à l’API.

URLSignification
/data/calendar.csvChaque coupon, remboursement et échéance à venir de chaque obligation, d’après les caractéristiques (le calendrier des paiements).
/data/cashflows/{ISIN}.jsonLes flux futurs d’une obligation pour 100 de nominal d’origine : {isin, currency, maturity, frequency, flows: [{d, k, p100, rate}]}. Multipliez p100 par votre nominal / 100.
/data/curves.jsonL’ajustement nocturne de la courbe par émetteur et devise (paramètres de Nelson–Siegel, plage de maturités, RMSE) et, pour chaque obligation, sa maturité, son rendement moyen, le rendement de la courbe et l’écart à la dernière clôture (le graphique de valeur relative).
/learn/bondpages.jsonISIN vers la fiche de l’obligation sur ce site.

Recettes

Python

import requests, pandas as pd

API = "https://api.africaneurobonds.com"
bonds = pd.DataFrame(requests.get(API + "/bonds", headers={"User-Agent": "my-app"}).json()["bonds"])
print(bonds[["ticker", "currency", "bid_price", "ask_price", "ask_yield", "wal_years"]].head())

# a bond's whole close history as a frame
hist = pd.read_csv(API + "/bonds/XS1777972511/export?period=All&format=csv", parse_dates=["date"])

# the whole market on one day
day = pd.read_csv(API + "/export/closes?on=2026-10-09")

Excel

Dans Excel, Données → À partir du web (ou Power Query) avec une URL CSV donne un tableau actualisable ; par exemple tout le marché un jour donné :

https://api.africaneurobonds.com/export/closes?on=2026-10-09

Ligne de commande

curl -H "User-Agent: my-app" "https://api.africaneurobonds.com/bonds?country=Nigeria"
curl -o nigeria.csv "https://api.africaneurobonds.com/export/closes?country=Nigeria&format=csv"

À savoir