REST API · v1 · JSON

API Komptio

Integrez 12 millions d'entreprises francaises dans vos applications. Recherche, identite, finances, dirigeants — sources officielles Etat (INPI, INSEE, BODACC, ADEME).

1 000 credits/mois offerts
Au-dela : 0,005 €/credit. Pas de carte bancaire pour demarrer.
Donnees officielles
Sources : data.gouv.fr, INSEE, INPI, ADEME, BODACC. 100% RGPD.
12M entreprises
Couverture integrale des societes francaises actives et cessees.

Tarification

Chaque appel API consomme un nombre fixe de credits selon l'endpoint. Le forfait inclut 1 000 credits/mois, remis a zero le 1er de chaque mois.

EndpointCoutDescription
GET /v1/me0 creditIntrospection cle (gratuit)
GET /v1/search1 creditRecherche full-text
GET /v1/companies/{siren}2 creditsIdentite complete
GET /v1/companies/{siren}/snapshot3 creditsFiche enrichie + dirigeants
GET /v1/companies/{siren}/bilans5 creditsHistorique financier 10 ans

Surconsommation : 0,005 €/credit. Plafond mensuel de securite : 100 000 credits — contactez-nous pour le lever.

Authentification

Toutes les requetes API s'authentifient via un header Authorization: Bearer kmp_live_.... Les cles sont generees depuis votre espace utilisateur.

Important : la cle complete n'est affichee qu'une seule fois a la creation. Conservez-la dans un gestionnaire de secrets (variable d'environnement, coffre-fort).
bash
# 1. Generer une cle : Espace - Cles API - "Nouvelle cle" # 2. Utiliser la cle dans vos requetes : curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \ https://komptio.fr/api/v1/me

Bonnes pratiques securite

Tester l'API en direct

Tapez un SIREN ci-dessous pour voir la réponse JSON immédiatement. Aucune clé requise — vous testez l'endpoint public gratuit /api/open/companies/{siren}. Pour l'API authentifiée v1 (/api/v1/*), créez un compte.

Exemples :
Prêt
// Cliquez "Tester" pour voir la réponse JSON ici

Endpoints

Base URL : https://komptio.fr/api/v1 · Format : JSON · HTTPS requis

GET /api/v1/me 0 credit

Informations sur votre cle API et votre consommation du mois en cours.

bash
curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \ https://komptio.fr/api/v1/me
json - reponse
{ "user": { "email": "vous@domaine.fr", "full_name": "Jean Dupont" }, "api_key": { "name": "Mon site", "prefix": "kmp_live_ab12" }, "quota": { "credits_used_this_month": 42, "credits_included": 1000, "credits_remaining_included": 958, "overage_credits": 0, "overage_amount_eur": 0.0 } }
GET /api/v1/search 1 credit

Recherche full-text d'entreprises francaises (nom, SIREN, SIRET, NAF, dirigeant). Maximum 25 resultats par page.

ParamTypeRequisDescription
qstringrequisTerme de recherche
pageintegeroptionnelNumero de page, defaut 1
per_pageintegeroptionnelResultats par page, max 25
bash
curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \ "https://komptio.fr/api/v1/search?q=LVMH&per_page=5"
GET /api/v1/companies/{siren} 2 credits

Fiche identite complete : denomination, forme juridique, effectif, adresse siege, TVA intracommunautaire, dates cles.

bash
curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \ https://komptio.fr/api/v1/companies/775670417
json - reponse
{ "siren": "775670417", "denomination": "LVMH MOET HENNESSY LOUIS VUITTON", "forme_juridique": "SA a conseil d'administration", "date_creation": "1952-04-28", "tranche_effectif": "10000 salaries ou plus", "tva_intracommunautaire": "FR32775670417", "siege": { "siret": "77567041700081", "adresse": "22 AVENUE MONTAIGNE", "code_postal": "75008", "commune": "Paris (8e)" } }
GET /api/v1/companies/{siren}/snapshot 3 credits

Snapshot enrichi : identite + dirigeants + ratios financiers N-1. Ideal pour une fiche de synthese.

bash
curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \ https://komptio.fr/api/v1/companies/775670417/snapshot
GET /api/v1/companies/{siren}/bilans 5 credits

Historique comptable sur 10 ans : CA, resultat net, capitaux propres, dettes, marges.

bash
curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \ https://komptio.fr/api/v1/companies/775670417/bilans

Codes d'erreur HTTP

CodeLabelDescription
200OKRequete traitee avec succes.
400Bad RequestParametre manquant ou invalide.
401UnauthorizedCle API absente, invalide ou revoquee.
402Payment RequiredPlafond mensuel de credits atteint.
404Not FoundEntreprise introuvable pour ce SIREN.
429Too Many RequestsTrop de requetes par seconde - patientez.
502Bad GatewaySource officielle temporairement indisponible.

Format d'erreur

json
{ "detail": "SIREN invalide (9 chiffres attendus)" }

Limites & quotas

JavaScript / Node.js

Recherche d'entreprise + fiche identite.

javascript
const API_KEY = process.env.KOMPTIO_API_KEY; const BASE = "https://komptio.fr/api/v1"; async function searchCompany(query) { const res = await fetch(BASE + "/search?q=" + encodeURIComponent(query), { headers: { Authorization: "Bearer " + API_KEY }, }); if (!res.ok) throw new Error("Erreur " + res.status); return res.json(); } async function getCompany(siren) { const res = await fetch(BASE + "/companies/" + siren, { headers: { Authorization: "Bearer " + API_KEY }, }); if (!res.ok) throw new Error("Erreur " + res.status); return res.json(); } const results = await searchCompany("LVMH"); const company = await getCompany(results.results[0].siren); console.log(company.denomination, company.siege.commune);

Python

Extraction des bilans financiers.

python
import os, httpx API_KEY = os.environ["KOMPTIO_API_KEY"] BASE = "https://komptio.fr/api/v1" HEADERS = {"Authorization": f"Bearer {API_KEY}"} def get_bilans(siren: str) -> dict: r = httpx.get(f"{BASE}/companies/{siren}/bilans", headers=HEADERS) r.raise_for_status() return r.json() bilans = get_bilans("775670417") for annee in bilans["annees"][:3]: print(annee["annee"], annee.get("chiffre_affaires"))

PHP

Integration dans un site web PHP.

php
<?php $apiKey = getenv('KOMPTIO_API_KEY'); $base = 'https://komptio.fr/api/v1'; function komptio(string $path, string $apiKey, string $base): array { $ch = curl_init($base . $path); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["Authorization: Bearer " . $apiKey], ]); $body = curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($code !== 200) throw new RuntimeException("API error $code"); return json_decode($body, true); } $results = komptio('/search?q=' . urlencode('Michelin'), $apiKey, $base); foreach ($results['results'] as $c) { echo $c['denomination'] . ' - ' . $c['siren'] . PHP_EOL; }

Cas d'usage : verification SIREN dans un formulaire

Validation d'un champ SIREN cote backend Node.js / Express.

javascript
// routes/company.js (Express) import express from "express"; const router = express.Router(); const API_KEY = process.env.KOMPTIO_API_KEY; router.get("/verify-siren/:siren", async (req, res) => { const { siren } = req.params; if (!/^[0-9]{9}$/.test(siren)) { return res.status(400).json({ valid: false, reason: "Format invalide" }); } const resp = await fetch( "https://komptio.fr/api/v1/companies/" + siren, { headers: { Authorization: "Bearer " + API_KEY } } ); if (resp.status === 404) return res.json({ valid: false }); if (!resp.ok) return res.status(502).json({ error: "Service indisponible" }); const data = await resp.json(); return res.json({ valid: true, denomination: data.denomination, forme_juridique: data.forme_juridique, actif: data.etat_administratif === "A", adresse: (data.siege?.adresse ?? "") + ", " + (data.siege?.commune ?? ""), }); }); export default router;