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.
Endpoint Cout Description
GET /v1/me 0 credit Introspection cle (gratuit)
GET /v1/search 1 credit Recherche full-text
GET /v1/companies/{siren} 2 credits Identite complete
GET /v1/companies/{siren}/snapshot 3 credits Fiche enrichie + dirigeants
GET /v1/companies/{siren}/bilans 5 credits Historique 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 Copier
# 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
Ne jamais exposer une cle dans du code frontend (React, Vue, HTML). Passez toujours par votre backend.
Utilisez des variables d'environnement : KOMPTIO_API_KEY=kmp_live_...
Revoquez immediatement toute cle compromise depuis votre espace.
Creez plusieurs cles (une par application) pour tracer la consommation par projet.
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.
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 Copier
curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \
https://komptio.fr/api/v1/me
json - reponse Copier
{
"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.
Param Type Requis Description
q string requis Terme de recherche
page integer optionnel Numero de page, defaut 1
per_page integer optionnel Resultats par page, max 25
bash Copier
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 Copier
curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \
https://komptio.fr/api/v1/companies/775670417
json - reponse Copier
{
"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 Copier
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 Copier
curl -H "Authorization: Bearer kmp_live_xxxxxxxxxxxx" \
https://komptio.fr/api/v1/companies/775670417/bilans
Codes d'erreur HTTP
Code Label Description
200 OK Requete traitee avec succes.
400 Bad Request Parametre manquant ou invalide.
401 Unauthorized Cle API absente, invalide ou revoquee.
402 Payment Required Plafond mensuel de credits atteint.
404 Not Found Entreprise introuvable pour ce SIREN.
429 Too Many Requests Trop de requetes par seconde - patientez.
502 Bad Gateway Source officielle temporairement indisponible.
Format d'erreur
json Copier
{
"detail": "SIREN invalide (9 chiffres attendus)"
}
Limites & quotas
Quota mensuel : 1 000 credits inclus, remis a zero le 1er de chaque mois.
per_page max : 25 resultats par requete sur /search.
Plafond de securite : 100 000 credits/mois - contactez-nous pour lever ce plafond.
Rate limit : usage raisonnable attendu - pas de limite stricte par seconde.
JavaScript / Node.js
Recherche d'entreprise + fiche identite.
javascript Copier
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 Copier
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 Copier
<?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 Copier
// 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;