Obtenir une clé
L'API est réservée aux abonnés Pro. La clé se crée depuis votre espace abonné, dans le module Portefeuille, onglet API. Vous pouvez avoir jusqu'à cinq clés actives — utile pour séparer un script de production d'un carnet d'expérimentation, et pour révoquer l'un sans casser l'autre.
La clé n'est affichée qu'une seule fois. Nous n'en stockons qu'une empreinte cryptographique (SHA-256) : personne ne peut la retrouver ensuite, nous compris. Copiez-la à la création. Si vous la perdez, révoquez-la et générez-en une nouvelle — c'est immédiat et sans conséquence sur vos autres clés.
Authentification
Chaque appel porte la clé dans un en-tête. Deux formes sont acceptées, au choix :
X-API-Key: sk_live_votreCle
Authorization: Bearer sk_live_votreCle
Le niveau d'abonnement est vérifié à chaque appel, pas seulement à la création de la clé. Une résiliation ferme donc l'accès immédiatement.
Les endpoints
Le dernier instantané de l'univers, trié par score composite décroissant.
| Filtre | Valeurs | Effet |
|---|---|---|
country | FR, DE, IT, NL, BE | Restreint à un pays de cotation. Insensible à la casse. |
signal | BUY, WATCH, AVOID | Restreint à une classe de signal du modèle. |
min_score | nombre 0–100 | Score composite minimum. |
limit | 1–2000 (défaut 1000) | Nombre de lignes. Toute valeur supérieure est ramenée à 2000. |
curl -H "X-API-Key: sk_live_votreCle" \
"https://screener-smallcaps.fr/api/v1/screener?country=FR&min_score=60&limit=50"
La réponse enveloppe les données avec le contexte nécessaire pour les interpréter :
{
"status": "ok",
"snapshot_date": "20260723",
"count": 50,
"columns": ["ticker", "company_name", "..."],
"data": [ { "ticker": "...", "score_total": 78, "..." } ],
"disclaimer": "..."
}
Métadonnées sans charger l'univers : date de l'instantané, taille de l'univers, version du modèle, limite de débit et liste des colonnes disponibles. C'est l'appel à faire pour savoir s'il y a du nouveau avant de télécharger les données.
Ce qui est renvoyé, et ce qui ne l'est pas
Les colonnes couvrent l'identité de la valeur (ticker, nom, pays, secteur, marché, éligibilité PEA-PME), le score composite et sa note, les quatre sous-scores par pilier, trois ratios fondamentaux (EV/EBITDA, croissance du chiffre d'affaires sur trois ans, dette nette/EBITDA) et le signal du modèle.
En revanche, les variables internes du modèle ne sont pas exposées. L'instantané en compte plus de cent cinquante ; l'API en publie une liste blanche stable. Ce choix est délibéré : il garantit que le contrat ne bouge pas quand le modèle évolue, et évite de diffuser des données intermédiaires sans signification hors de leur contexte de calcul.
Rythme et limite de débit
L'instantané est régénéré une fois par jour ouvré, après la clôture des marchés européens. Interroger l'API plus souvent ne renvoie donc rien de neuf : fiez-vous au champ snapshot_date plutôt qu'à une heure supposée de publication.
La limite est de soixante requêtes par minute et par clé, largement au-delà d'un usage normal. Elle existe pour éviter qu'un script en boucle ne dégrade le service pour les autres.
Codes d'erreur
| Code | Signification | Que faire |
|---|---|---|
401 | Clé absente, invalide ou révoquée | Vérifiez l'en-tête et que la clé n'a pas été révoquée depuis votre espace abonné. |
403 | Le compte n'est plus Pro | L'accès reprend au réabonnement, avec les mêmes clés. |
429 | Limite de débit atteinte | Attendez la minute suivante. Espacez vos appels. |
503 | Aucun instantané disponible | Situation transitoire pendant la régénération quotidienne. Réessayez plus tard. |
Exemple en Python
import os, requests
r = requests.get(
"https://screener-smallcaps.fr/api/v1/screener",
headers={"X-API-Key": os.environ["SCREENER_API_KEY"]},
params={"country": "FR", "min_score": 60, "limit": 100},
timeout=30,
)
r.raise_for_status()
payload = r.json()
print(payload["snapshot_date"], payload["count"], "valeurs")
for row in payload["data"][:5]:
print(row["ticker"], row["score_total"], row.get("ml_signal"))
Ne mettez jamais votre clé dans le code. Passez-la par une variable d'environnement, comme dans l'exemple. Une clé poussée dans un dépôt public doit être considérée comme compromise : révoquez-la immédiatement.
Ce que l'API ne fait pas
Elle sert l'instantané du jour, pas d'historique : il n'existe pas d'endpoint pour récupérer les scores passés d'une valeur. Le track record du modèle est publié à part, sous forme agrégée, sur la page dédiée.
Elle ne passe aucun ordre et ne se connecte à aucun courtier. Les données sont des données financières publiques traitées automatiquement ; elles constituent une aide à la décision et non un conseil en investissement au sens de la directive MIF2. Les performances passées ne préjugent pas des performances futures, et tout investissement comporte un risque de perte en capital.