API REST
Toute la base européenne, en JSON, dans votre code
Les mêmes sociétés que l'interface, les mêmes filtres pays et secteur, renvoyés en JSON stable. Une clef, un en-tête, aucun SDK à installer. Une clef gratuite dès le compte Découverte, puis l'outil API, inclus ou en option.
- sociétés
- 18,7 M
- pays
- 25
- secteurs
- 84
Démarrer
Trois étapes, moins de cinq minutes
Créer un compte
Gratuit, sans carte bancaire. L'offre Découverte ouvre immédiatement 50 appels par jour et 5 sociétés par appel.
Créer un compteGénérer une clef
Dans Mon compte, section Clefs API. La clef commence par as_live_ et n'est affichée qu'une fois : copiez-la dans votre gestionnaire de secrets. Découverte donne 1 clef, Intégral jusqu'à 20.
Mes clefs APIPremier appel
Une requête GET, un en-tête Authorization, du JSON en retour. Rien d'autre à installer.
curl "https://argos-finance.fr/api/v1/societes?pays=FR§eur=restauration&limit=5" \
-H "Authorization: Bearer as_live_XXXXXXXXXXXXXXXXXXXX"L'en-tête d'authentification
Toutes les routes acceptent la clef en en-tête. Sans clef, l'API répond en mode aperçu : 2 sociétés par appel, offset bloqué à 0. Pratique pour un test rapide ou pour un agent qui découvre la base.
Authorization: Bearer as_live_XXXXXXXXXXXXXXXXXXXXTarifs
Une clef gratuite, puis l'API en outil
Une clef se crée dès le compte gratuit et fonctionne au niveau Découverte. Au-delà, l'API est un outil : inclus dans les formules Finance de marché et Intégral, ou pris en option à 250 EUR HT par an sur toute autre formule ou composition à la carte. Sans cet outil, une clef reste au niveau Découverte. Les recherches et la taxonomie ne consomment aucun crédit ; une fiche complète en consomme 5, comme sur le site, une seule fois par mois pour la même société. Mêmes routes, mêmes champs, même format d'une offre à l'autre.
| Offre | Appels par jour | Sociétés par appel | Clefs actives | Outil API | Formule HT |
|---|---|---|---|---|---|
| Sans compte (aperçu) | 0 | 2 | 0 | Sans clef | Sans inscription |
| Découverte | 50 | 5 | 1 | Clef gratuite | Gratuit |
| Data | 1 000 | 200 | 3 | Option, 250 EUR / an | 5 000 EUR / an |
| Finance d'entreprise | 5 000 | 500 | 10 | Option, 250 EUR / an | 17 500 EUR / an |
| Finance de marché | 5 000 | 500 | 10 | Incluse | 17 500 EUR / an |
| Intégral | 10 000 | 500 | 20 | Incluse | 30 000 EUR / an |
| À la carte | 1 000 | 200 | 3 | Option, 250 EUR / an | Selon composition |
Concrètement : un compte gratuit donne 50 appels par jour et 5 sociétés par appel, de quoi cadrer un projet. La formule Intégral donne 10 000 appels par jour et 500 sociétés par appel, soit jusqu'à 5 000 000 lignes par jour, de quoi alimenter un entrepôt de données. Au-delà, écrivez à contact@argos-finance.fr.
Référence
Points d'entrée
GET /api/v1/pays
Les 25 pays avec leurs compteurs et leur source. Public, sans clef.
GET /api/v1/secteurs?pays=FR,IT
Les 84 secteurs avec compteurs, pour tous les pays ou pour un périmètre. Public, sans clef.
GET /api/v1/societes
Recherche paginée. Paramètres : pays, secteur, q, tri, limit, offset, ca_min, ca_max, effectif_min, effectif_max, site_web=1, avec_ca=1.
curl "https://argos-finance.fr/api/v1/societes?pays=IT§eur=machinerie&limit=50" \
-H "Authorization: Bearer as_live_XXXX"{
"total": 12456, "limit": 50, "offset": 0, "apercu": false,
"societes": [{
"iso2": "IT", "id": "00123456789", "nom": "ESEMPIO S.P.A.",
"secteur": "Machinerie", "grand_secteur": "Industrie manufacturière & Matériaux",
"ville": "Bergamo", "effectif": 240, "ca_eur": 58400000, "ca_year": 2024,
"site_web": "www.esempio.it", "url_registre": "https://..."
}]
}GET /api/v1/societes/{iso}/{id}
Fiche complète. Les états financiers ligne à ligne (bilan, compte de résultat, jusqu'à 5 exercices) sont renvoyés aux appels identifiés. Une fiche complète consomme 5 crédits, une seule fois par mois pour la même société.
curl "https://argos-finance.fr/api/v1/societes/FR/552032534" -H "Authorization: Bearer as_live_XXXX"GET|POST /api/v1/export
Classeur xlsx du périmètre (mêmes paramètres, plus lang=fr|en). Compte requis, quota mensuel : 2 classeurs avec Découverte, 200 avec Intégral.
curl -L "https://argos-finance.fr/api/v1/export?pays=FR,BE§eur=restauration&limit=500" \
-H "Authorization: Bearer as_live_XXXX" -o restauration_FR_BE.xlsxConventions
pays: codes ISO 2 lettres séparés par des virgules ;UKpour le Royaume-Uni.secteur: slug ou libellé FR exact, plusieurs valeurs avec|.tri:ca_desc(défaut),ca_asc,nom,effectif_desc,recent,capital_desc,score.- Montants :
ca_euren euros ;ca_last×ca_multen devise locale (ca_devise). - Réponses JSON UTF-8, CORS ouvert sur /api/v1, pagination par
limit+offset.
Python
import requests
CLE = "as_live_XXXX"
r = requests.get("https://argos-finance.fr/api/v1/societes",
params={"pays": "FR,BE", "secteur": "restauration|hotellerie", "limit": 100},
headers={"Authorization": f"Bearer {CLE}"})
r.raise_for_status()
for s in r.json()["societes"]:
print(s["nom"], s["ville"], s["ca_eur"])JavaScript
const r = await fetch("https://argos-finance.fr/api/v1/societes?pays=IT§eur=machinerie&limit=50",
{ headers: { Authorization: "Bearer as_live_XXXX" } });
const { total, societes } = await r.json();Pagination : limit et offset
limit ne dépasse jamais le plafond de votre offre (5 sociétés en Découverte, 200 en Data, 500 en Intégral) : une valeur supérieure est ramenée au plafond, sans erreur. total donne le nombre réel de sociétés du périmètre : parcourez-le en incrémentant offset.
# page 1 : sociétés 1 à 500
curl "https://argos-finance.fr/api/v1/societes?pays=DE§eur=machinerie&limit=500&offset=0" \
-H "Authorization: Bearer as_live_XXXX"
# page 2 : sociétés 501 à 1000
curl "https://argos-finance.fr/api/v1/societes?pays=DE§eur=machinerie&limit=500&offset=500" \
-H "Authorization: Bearer as_live_XXXX"import requests
CLE, PAGE = "as_live_XXXX", 500
params = {"pays": "DE", "secteur": "machinerie", "limit": PAGE, "offset": 0}
tout = []
while True:
r = requests.get("https://argos-finance.fr/api/v1/societes", params=params,
headers={"Authorization": f"Bearer {CLE}"})
r.raise_for_status()
j = r.json()
tout += j["societes"]
params["offset"] += PAGE
if params["offset"] >= j["total"] or not j["societes"]:
break
print(len(tout), "sociétés")Gérer le 429 (quota atteint)
Chaque réponse identifiée porte X-Quota-Used et X-Quota-Limit : surveillez-les pour vous arrêter avant le mur. Le quota est journalier, il repart à minuit UTC : une nouvelle tentative immédiate ne sert à rien, mieux vaut reprendre la boucle le lendemain depuis le dernier offset.
r = requests.get(url, params=params, headers=entetes)
if r.status_code == 429:
utilise = r.headers.get("X-Quota-Used")
limite = r.headers.get("X-Quota-Limit")
# { "erreur": { "code": "quota_api", "message": "...", "quota": {...} } }
raise SystemExit(
f"Quota journalier atteint : {utilise}/{limite}. "
f"Reprendre demain a l'offset {params['offset']}."
)
r.raise_for_status()const r = await fetch(url, { headers });
if (r.status === 429) {
const utilise = r.headers.get("X-Quota-Used");
const limite = r.headers.get("X-Quota-Limit");
console.warn(`Quota atteint : ${utilise}/${limite}, reprise demain (UTC).`);
return null;
}Robustesse
Codes d'erreur
Toutes les erreurs sortent sous la même forme, avec un code machine et un message lisible. Un paramètre inconnu n'est jamais ignoré en silence : il provoque une erreur qui nomme la valeur en cause, pour qu'un script ne travaille jamais sur un périmètre différent de celui qu'il croit interroger.
| HTTP | code | Quand, et quoi faire |
|---|---|---|
| 400 | pays_inconnu, secteur_inconnu | Un pays ou un secteur envoyé n'existe pas dans le référentiel. Le paramètre n'est jamais ignoré en silence : la réponse nomme la valeur fautive et renvoie vers /api/v1/pays ou /api/v1/secteurs. |
| 401 | compte_requis | L'appel demande une ressource réservée aux comptes (export Excel, états financiers détaillés) sans clef valide. Créez un compte, générez une clef, passez-la en en-tête Authorization. |
| 402 | credits_epuises | Les crédits du mois et des packs sont épuisés. L'aperçu reste servi ; le débit reprend au mois suivant ou après l'achat d'un pack depuis Mon compte. |
| 403 | module_non_inclus | La ressource demande un module que votre offre n'inclut pas. La réponse nomme la formule qui l'ouvre. |
| 403 | essai_epuise | Votre formule ouvre ce module à l'essai (Data : quelques analyses par mois en finance d'entreprise et de marché) et l'essai du mois est utilisé. La réponse donne le nombre d'analyses, la formule qui ouvre sans limite et la date de remise à zéro. |
| 429 | quota_api, quota_export, trop_de_requetes | Plafond atteint. Les en-têtes X-Quota-Used et X-Quota-Limit donnent la consommation et la limite de l'offre. Le compteur API repart à minuit UTC, celui des exports le premier jour du mois civil. |
| 503 | indisponible, config | Service momentanément indisponible (base en cours de rafraîchissement, paiement non configuré). Réessayez, l'appel est sans effet de bord. |
{
"erreur": {
"code": "secteur_inconnu",
"message": "Secteur inconnu : machinerei. Liste des 84 secteurs sur /api/v1/secteurs.",
"secteurs_inconnus": ["machinerei"]
}
}Assistants IA et agents
Une base qu'un agent sait interroger seul
Le plus court chemin est le serveur MCP : une ligne de configuration dans Claude ou dans votre agent, et il dispose d'outils nommés pour chercher, lire une fiche et lire les comptes déposés. Sinon, donnez-lui l'adresse de la spécification OpenAPI : il découvre les routes et les champs sans documentation supplémentaire. Le fichier llms.txt résume le site et ses règles en langage naturel, pour le contexte.
- Serveur MCP public, 21 outils en lecture seule, sans état.
- OpenAPI 3.1, réponses JSON stables, CORS ouvert sur /api/v1.
- Mode aperçu sans clef (2 sociétés) pour un premier essai, puis clef pour le volume.
- Une clef par agent : révoquez-la sans toucher aux autres.
À donner à votre assistant
https://argos-finance.fr/api/mcp
https://argos-finance.fr/openapi.json
https://argos-finance.fr/llms.txt