Aller au contenu
Argos

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

01

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 compte
02

Gé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 API
03

Premier 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&secteur=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_XXXXXXXXXXXXXXXXXXXX

Tarifs

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.

Quotas API par offre
OffreAppels par jourSociétés par appelClefs activesOutil APIFormule HT
Sans compte (aperçu)020Sans clefSans inscription
Découverte5051Clef gratuiteGratuit
Data1 0002003Option, 250 EUR / an5 000 EUR / an
Finance d'entreprise5 00050010Option, 250 EUR / an17 500 EUR / an
Finance de marché5 00050010Incluse17 500 EUR / an
Intégral10 00050020Incluse30 000 EUR / an
À la carte1 0002003Option, 250 EUR / anSelon 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&secteur=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&secteur=restauration&limit=500" \
  -H "Authorization: Bearer as_live_XXXX" -o restauration_FR_BE.xlsx

Conventions

  • pays : codes ISO 2 lettres séparés par des virgules ; UK pour 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_eur en euros ; ca_last × ca_mult en 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&secteur=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&secteur=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&secteur=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.

HTTPcodeQuand, et quoi faire
400pays_inconnu, secteur_inconnuUn 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.
401compte_requisL'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.
402credits_epuisesLes 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.
403module_non_inclusLa ressource demande un module que votre offre n'inclut pas. La réponse nomme la formule qui l'ouvre.
403essai_epuiseVotre 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.
429quota_api, quota_export, trop_de_requetesPlafond 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.
503indisponible, configService 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