e-sotop Market API
Accueil Obtenir une clé v1.0

Documentation e-sotop Market API

Référence complète pour intégrer les données financières africaines et mondiales dans vos applications.

REST / JSON BRVM Crypto · Forex · Stocks · Commodities Authentification par clé API

Introduction

e-sotop Market API est une interface REST qui centralise les données de plusieurs marchés financiers en un seul endpoint. Elle a été conçue pour les développeurs qui souhaitent intégrer des données financières dans leurs applications sans gérer plusieurs sources de données.

L'API repose sur un système de cache intelligent : les données sont pré-chargées en arrière-plan à intervalles réguliers, ce qui garantit des temps de réponse inférieurs à 50 ms dans la grande majorité des cas.

URL de base {MALAW_ENDPOINT}
L'endpoint exact vous est communiqué par email après validation de votre demande. Demander un accès →

Démarrage rapide

Voici le chemin le plus court pour effectuer votre premier appel en moins de 2 minutes.

Étape 1 — Obtenir une clé API

Contactez-nous via le formulaire de contact pour recevoir votre clé API. Elle se présente sous cette forme :

Clé API
mk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

Étape 2 — Premier appel

cURL
curl -X GET \
  "{MALAW_ENDPOINT}?type=brvm&asset=SNTS" \
  -H "X-API-Key: mk_live_votre_cle_ici"

Étape 3 — Lire la réponse

JSON — Réponse
{
  "status": "success",
  "request": {
    "type": "brvm",
    "asset": "SNTS",
    "category": "equities"
  },
  "meta": {
    "source": "brvm.org",
    "updated_at": "2026-04-07T08:00:00Z",
    "currency": "XOF"
  },
  "cache": { "hit": true, "age_sec": 187 },
  "data": {
    "ticker": "SNTS",
    "name": "Sonatel",
    "last_price": 18500,
    "change_pct": 1.65,
    "volume": 4320,
    "prev_close": 18200
  }
}

Authentification

Toutes les requêtes doivent inclure une clé API valide. Deux méthodes sont acceptées :

Via le header HTTP (recommandé)

Header
X-API-Key: mk_live_votre_cle_ici

Via le paramètre URL (déconseillé)

Query string
GET /api/market.php?type=brvm&asset=SNTS&api_key=mk_live_votre_cle_ici
Sécurité Ne partagez jamais votre clé API dans un dépôt public. Préférez le header HTTP plutôt que le paramètre URL, qui peut apparaître dans les logs de votre serveur.

Gestion des erreurs

L'API retourne toujours un JSON avec un champ status. En cas d'erreur, un champ message décrit le problème.

Code HTTPStatusCause
200successRequête traitée avec succès.
400errorParamètre manquant ou invalide (type, asset).
401errorClé API absente ou invalide.
403errorCompte suspendu ou type non autorisé par votre plan.
404errorAsset introuvable.
429errorRate limit atteint. Attendez la prochaine fenêtre horaire.
502errorÉchec de récupération côté source externe.
JSON — Réponse d'erreur
{
  "status": "error",
  "code": 401,
  "message": "Clé API invalide."
}

Rate limiting

Chaque clé API est soumise à une limite de requêtes par heure, définie par votre plan. L'état du rate limit est transmis dans les headers de chaque réponse :

Headers de réponse
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1712345678
X-RateLimit-Window: 3600
HeaderDescription
X-RateLimit-LimitNombre maximum de requêtes autorisées par heure.
X-RateLimit-RemainingNombre de requêtes restantes dans la fenêtre courante.
X-RateLimit-ResetTimestamp UNIX de réinitialisation du compteur.

Endpoint unique

GET /api/market.php

Retourne les données d'un asset financier selon son type et son identifiant.

Paramètres de requête

ParamètreTypeRequisDescription
typestring Requis Type de marché : brvm, crypto, forex, stocks, commodities
assetstring Requis Identifiant de l'asset (ex: SNTS, BTC, EURUSD) ou ALL pour la liste complète.
categorystring Optionnel Sous-catégorie BRVM uniquement : equities (défaut), bonds, indices

BRVM — Bourse Régionale des Valeurs Mobilières

Couvre l'ensemble des titres cotés à la BRVM : actions, obligations et indices. Les données sont rafraîchies toutes les heures aux horaires d'ouverture du marché.

Actions (equities)

Exemples
# Action spécifique
GET /api/market.php?type=brvm&asset=SNTS

# Toutes les actions cotées
GET /api/market.php?type=brvm&asset=ALL&category=equities
ChampTypeDescription
tickerstringSymbole boursier (ex: SNTS, BOAB)
namestringNom de la société
last_pricenumberDernier cours en XOF
prev_closenumberCours de clôture de la veille
opennumberCours d'ouverture
changenumberVariation absolue en XOF
change_pctnumberVariation en pourcentage
volumeintegerVolume de titres échangés

Obligations (bonds)

Exemple
GET /api/market.php?type=brvm&asset=ALL&category=bonds

Indices

Exemple
GET /api/market.php?type=brvm&asset=ALL&category=indices

Retourne les trois indices BRVM : BRVM Composite, BRVM 30, BRVM Prestige.

Cryptomonnaies

Données issues de CoinGecko. Couvre le top 500 par capitalisation boursière. Rafraîchissement toutes les 5 minutes.

Exemples
# Crypto spécifique
GET /api/market.php?type=crypto&asset=BTC
GET /api/market.php?type=crypto&asset=ETH

# Top 500 complet
GET /api/market.php?type=crypto&asset=ALL
ChampTypeDescription
tickerstringSymbole (BTC, ETH, SOL...)
namestringNom complet
last_pricenumberPrix en USD
high_24hnumberPlus haut sur 24h
low_24hnumberPlus bas sur 24h
change_pct_24hnumberVariation 24h en %
volume_24hnumberVolume 24h en USD
market_capnumberCapitalisation boursière USD
rankintegerRang par capitalisation

Forex

160+ paires de devises dont XOF, XAF, GHS, NGN et toutes les devises africaines majeures. Rafraîchissement toutes les 5 minutes.

Exemples
# Dollar → Franc CFA
GET /api/market.php?type=forex&asset=USDXOF

# Euro → Dirham marocain
GET /api/market.php?type=forex&asset=EURMAD

# Toutes les devises (base USD)
GET /api/market.php?type=forex&asset=ALL
Format des paires Concaténez les deux codes ISO 4217 : devise de base + devise de cotation. Ex : USDXOF = 1 USD exprimé en XOF.
ChampTypeDescription
pairstringPaire (ex: USD/XOF)
basestringDevise de base
quotestringDevise de cotation
ratenumberTaux de conversion
quote_namestringNom complet de la devise de cotation

Stocks

Actions mondiales via Yahoo Finance (NYSE, NASDAQ, LSE, Euronext...). Le screener couvre dynamiquement les 300+ titres les plus actifs. Tout ticker Yahoo Finance est accepté.

Exemples
# Actions américaines
GET /api/market.php?type=stocks&asset=AAPL
GET /api/market.php?type=stocks&asset=TSLA

# ADR africain
GET /api/market.php?type=stocks&asset=MTN

# Top 300 actifs du moment
GET /api/market.php?type=stocks&asset=ALL
ChampTypeDescription
tickerstringSymbole Yahoo Finance
namestringNom de la société
last_pricenumberDernier cours
change_pctnumberVariation journalière en %
volumenumberVolume journalier
market_capnumberCapitalisation boursière
exchangestringPlace boursière

Matières premières

16 contrats futures couvrant métaux précieux, énergie, céréales et soft commodities. Le cacao, le café et le coton sont inclus en priorité pour leur importance en Afrique de l'Ouest.

Exemples
# Or
GET /api/market.php?type=commodities&asset=GOLD

# Cacao (pertinent CI, Ghana)
GET /api/market.php?type=commodities&asset=COCOA

# Toutes les matières premières
GET /api/market.php?type=commodities&asset=ALL
TickerNomUnitéSecteur
GOLDOrtroy_ozMétaux précieux
SILVERArgenttroy_ozMétaux précieux
BRENTBrent Crude OilbarrelÉnergie
WTIWTI Crude OilbarrelÉnergie
GASNatural GasMMBtuÉnergie
COPPERCuivrelbMétaux industriels
COCOACacaometric_tonSofts
COFFEECafélbSofts
SUGARSucrelbSofts
COTTONCotonlbSofts
CORNMaïsbushelCéréales
WHEATBlébushelCéréales

Format de réponse

Toutes les réponses suivent la même enveloppe JSON, quel que soit le type d'asset demandé.

Structure complète
{
  "status": "success",          // "success" ou "error"
  "message": "OK",
  "request": {                  // Echo des paramètres envoyés
    "type": "brvm",
    "asset": "SNTS",
    "category": "equities"
  },
  "meta": {                     // Informations sur la source
    "source": "brvm.org",
    "updated_at": "2026-04-07T08:00:00Z",
    "currency": "XOF",
    "category": "equities"
  },
  "cache": {                    // État du cache
    "hit": true,               // true = servi depuis le cache
    "age_sec": 312             // Âge du cache en secondes
  },
  "data": { /* ... données de l'asset ... */ }
}

Système de cache

L'API utilise un système de cache fichier JSON côté serveur. Les données sont précachées par un processus cron en arrière-plan, ce qui garantit des réponses rapides même pour les assets très demandés.

TypeTTL du cacheRafraîchissement
BRVM60 minutesAux heures de marché (Lu–Ve)
Crypto5 minutesContinu
Forex5 minutesContinu
Stocks15 minutesAux heures de marché
Commodities15 minutesContinu
Tip performance Le champ cache.hit: true indique une réponse servie depuis le cache (temps de réponse < 50 ms). Un cache.hit: false indique un fetch en direct depuis la source (~500 ms–2 s).

Exemples de code — PHP

PHP
<?php
function marketGet(string $type, string $asset, string $category = 'equities'): ?array
{
    $url = '{MALAW_ENDPOINT}?' . http_build_query([
        'type'     => $type,
        'asset'    => $asset,
        'category' => $category,
    ]);

    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 10,
        CURLOPT_HTTPHEADER     => ['X-API-Key: mk_live_votre_cle'],
    ]);
    $body = curl_exec($ch);
    curl_close($ch);

    $json = json_decode($body, true);
    return ($json['status'] === 'success') ? $json['data'] : null;
}

// Cours Sonatel
$snts = marketGet('brvm', 'SNTS');
echo $snts['last_price'] . ' XOF';

// Bitcoin
$btc = marketGet('crypto', 'BTC');
echo $btc['last_price'] . ' USD';

// Taux USD/XOF
$xof = marketGet('forex', 'USDXOF');
echo '1 USD = ' . $xof['rate'] . ' XOF';

Exemples de code — JavaScript

JavaScript (fetch)
const API_URL = '{MALAW_ENDPOINT}';
const API_KEY = 'mk_live_votre_cle';

async function marketGet(type, asset, category = 'equities') {
  const params = new URLSearchParams({ type, asset, category });
  const res = await fetch(`${API_URL}?${params}`, {
    headers: { 'X-API-Key': API_KEY }
  });
  const json = await res.json();
  return json.status === 'success' ? json.data : null;
}

// Utilisation
const snts = await marketGet('brvm', 'SNTS');
console.log(snts.last_price, 'XOF');

const allBrvm = await marketGet('brvm', 'ALL');
allBrvm.forEach(action => {
  console.log(action.ticker, action.last_price);
});

Exemples de code — Python

Python (requests)
import requests

API_URL = "{MALAW_ENDPOINT}"
API_KEY = "mk_live_votre_cle"

def market_get(type_, asset, category="equities"):
    resp = requests.get(API_URL, params={
        "type": type_, "asset": asset, "category": category
    }, headers={"X-API-Key": API_KEY}, timeout=10)
    data = resp.json()
    return data["data"] if data.get("status") == "success" else None

# Exemples
gold = market_get("commodities", "GOLD")
print(f"Or : {gold['last_price']} USD/oz")

cocoa = market_get("commodities", "COCOA")
print(f"Cacao : {cocoa['last_price']} USD/tonne")

Exemples de code — cURL

cURL
# Actions BRVM
curl -H "X-API-Key: mk_live_votre_cle" \
  "{MALAW_ENDPOINT}?type=brvm&asset=ALL"

# Bitcoin
curl -H "X-API-Key: mk_live_votre_cle" \
  "{MALAW_ENDPOINT}?type=crypto&asset=BTC"

# Taux de change USD/XOF
curl -H "X-API-Key: mk_live_votre_cle" \
  "{MALAW_ENDPOINT}?type=forex&asset=USDXOF"

# Or (Gold)
curl -H "X-API-Key: mk_live_votre_cle" \
  "{MALAW_ENDPOINT}?type=commodities&asset=GOLD"

Plans & limites

FonctionnalitéStarterProEnterprise
BRVM
Crypto
Forex
Stocks
Commodities
Rate limit100 req/h500 req/h2 000 req/h
Historique SQL90 joursIllimité
Whitelist IP
SupportEmailPrioritaireDédié + SLA

Demander une clé API

Remplissez le formulaire ci-dessous. Vous recevrez votre clé API ainsi que l'endpoint d'accès sous 24h ouvrées.

En soumettant ce formulaire, vous acceptez d'être contacté par l'équipe e-sotop services.


© 2026 e-sotop services · Dakar, Sénégal · Retour à l'accueil