Aller au contenu principal

API publique gratuite, Calculs juridiques français

Une API REST gratuite et sans authentification qui expose douze calculs du site : salaire net et brut, impôt sur le revenu, mensualité de prêt, capacité d'emprunt, frais de notaire, indemnité de licenciement, heures supplémentaires, TVA, intérêts composés, plus-value immobilière et rendement locatif, selon la législation française 2026. Réponses JSON, CORS ouvert, prête à intégrer dans n'importe quelle appli web ou mobile. Documentation mise à jour le . Chaque endpoint est documenté ci-dessous avec ses paramètres et une réponse calculée par le même code que l'API au moment où cette page est générée. Les barèmes eux-mêmes sont téléchargeables en JSON et CSV (données ouvertes).

Corrections de cette page

Gratuit

Aucun forfait, aucun quota explicite (rate-limit raisonnable).

Sans auth

Pas de clé d'API à gérer. Appelez directement.

Données 2026

Barèmes officiels mis à jour à chaque parution JO.

CORS ouvert

Appelable depuis le navigateur, sans proxy.

Démarrage rapide

Tous les endpoints sont en GET et retournent du JSON. Aucune authentification requise. CORS ouvert (Access-Control-Allow-Origin: *). Base URL : https://moicombien.fr/api/v1/calcul/

// Exemple JavaScript (fetch)
const res = await fetch("https://moicombien.fr/api/v1/calcul/pret?capital=200000&taux=3.35&duree=25");
const data = await res.json();
console.log(data.result.mensualite); // 985.23
# Exemple cURL
curl "https://moicombien.fr/api/v1/calcul/notaire?prix=350000&type=ancien&departement=75&primo=0"
# Exemple Python
import requests
r = requests.get("https://moicombien.fr/api/v1/calcul/licenciement",
                 params={"salaire": 2500, "anciennete": 10})
print(r.json()["result"]["indemniteMinimumLegale"])

Endpoints disponibles

GET/api/v1/calcul/pret

Calcule la mensualité, le coût total des intérêts, la prime d'assurance et le coût total du crédit pour un prêt immobilier à taux fixe, avec ou sans différé d'amortissement partiel (differe, en mois : les mêmes options que le calculateur). Avec schedule=1, la réponse contient aussi le tableau d'amortissement : une ligne par mois (echeancier, lignes du différé comprises), un agrégat par année (parAnnee) et ses totaux (totauxEcheancier).

Paramètres

Paramètres de /api/v1/calcul/pret
NomRequisDescriptionExemple
capitalouiCapital emprunté en euros, strictement positif200000
tauxouiTaux annuel en %, positif ou nul3.35
dureeouiDurée en années, de 1 à 35 (décimale acceptée). Hors de ces bornes, ou capital nul ou négatif, ou taux négatif : réponse 400, avec ou sans schedule25
assurancenonTaux assurance annuel en %0.36
differenonDifféré d'amortissement en mois, entier de 0 à 36 (défaut 0). Différé partiel : pendant ces mois, seuls les intérêts (capital × taux mensuel) et l'assurance sont payés, puis le prêt s'amortit sur duree ; la maturité totale est differe + 12 × duree. Hors bornes : réponse 400. Le différé total (intérêts capitalisés) n'est pas exposé24
schedulenon1 pour ajouter le tableau d'amortissement mensuel (mensualité hors assurance constante, intérêts sur le capital restant dû, arrondi au centime à chaque ligne, dernière ligne ajustée pour solder le capital) ; 0 ou 1 (true et false admis)1

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Champs de la réponse à connaître

result.mensualite
Échéance mensuelle d'amortissement, assurance comprise si elle est fournie (mensualiteHorsAssurance sans).
result.coutTotalInterets
Somme des intérêts sur toute la durée, intérêts du différé compris.
result.coutTotalAssurance
Somme des primes d'assurance (capital initial × taux ÷ 12, chaque mois, différé compris).
result.coutTotalCredit
Coût total du crédit au sens du Code de la consommation (art. L311-1 7°) : intérêts + assurance, sans le capital, hors frais de dossier, de garantie et de notaire.
result.coutTotal
Montant total remboursé : capital + intérêts + assurance (somme de toutes les échéances). Nom conservé pour les intégrations existantes ; ce n'est pas le coût du crédit.
result.differe
Présent seulement si differe > 0 : échéance pendant le différé, intérêts du différé, capital à amortir, maturité totale en mois.

Exemple

GET https://moicombien.fr/api/v1/calcul/pret?capital=200000&taux=3.35&duree=25&assurance=0.36

Réponse (200)

{
  "type": "pret",
  "input": {
    "capital": 200000,
    "taux": 3.35,
    "duree": 25,
    "assurance": 0.36,
    "differe": 0,
    "schedule": false
  },
  "result": {
    "capital": 200000,
    "tauxAnnuelPercent": 3.35,
    "dureeAnnees": 25,
    "mensualite": 1045.23,
    "mensualiteHorsAssurance": 985.23,
    "primeAssurance": 60,
    "coutTotalInterets": 95568.99,
    "coutTotalAssurance": 18000,
    "coutTotalCredit": 113568.99,
    "coutTotal": 313568.99
  },
  "source": "https://moicombien.fr/simulateur/pret-immobilier",
  "methodologie": "https://moicombien.fr/simulateur/pret-immobilier#methode"
}

Avec 24 mois de différé partiel (differe=24) : 27 ans de maturité, comme la page prêt sur 25 ans (200)

GET https://moicombien.fr/api/v1/calcul/pret?capital=250000&taux=3.35&duree=25&assurance=0.36&differe=24
{
  "type": "pret",
  "input": {
    "capital": 250000,
    "taux": 3.35,
    "duree": 25,
    "assurance": 0.36,
    "differe": 24,
    "schedule": false
  },
  "result": {
    "capital": 250000,
    "tauxAnnuelPercent": 3.35,
    "dureeAnnees": 25,
    "mensualite": 1306.54,
    "mensualiteHorsAssurance": 1231.54,
    "primeAssurance": 75,
    "coutTotalInterets": 136211.24,
    "coutTotalAssurance": 24300,
    "coutTotalCredit": 160511.24,
    "coutTotal": 410511.24,
    "differe": {
      "mois": 24,
      "type": "partiel",
      "mensualiteHorsAssurance": 697.92,
      "mensualite": 772.92,
      "coutInterets": 16750,
      "capitalApresDiffere": 250000,
      "dureeTotaleMois": 324
    }
  },
  "source": "https://moicombien.fr/simulateur/pret-immobilier",
  "methodologie": "https://moicombien.fr/simulateur/pret-immobilier#methode"
}

Avec le tableau d'amortissement (schedule=1), réponse abrégée (200)

GET https://moicombien.fr/api/v1/calcul/pret?capital=250000&taux=3.35&duree=25&assurance=0.36&schedule=1
{
  "type": "pret",
  "input": {
    "capital": 250000,
    "taux": 3.35,
    "duree": 25,
    "assurance": 0.36,
    "differe": 0,
    "schedule": true
  },
  "result": {
    "capital": 250000,
    "tauxAnnuelPercent": 3.35,
    "dureeAnnees": 25,
    "mensualite": 1306.54,
    "mensualiteHorsAssurance": 1231.54,
    "primeAssurance": 75,
    "coutTotalInterets": 119461.24,
    "coutTotalAssurance": 22500,
    "coutTotalCredit": 141961.24,
    "coutTotal": 391961.24
  },
  "echeancier": [
    { "mois": 1, "mensualite": 1306.54, "interets": 697.92, "capitalRembourse": 533.62, "assurance": 75, "capitalRestant": 249466.38 },
    { "mois": 2, "mensualite": 1306.54, "interets": 696.43, "capitalRembourse": 535.11, "assurance": 75, "capitalRestant": 248931.27 },
    ... 297 autres lignes ...
    { "mois": 300, "mensualite": 1305.27, "interets": 3.42, "capitalRembourse": 1226.85, "assurance": 75, "capitalRestant": 0 }
  ],
  "parAnnee": [
    { "annee": 1, "moisDebut": 1, "moisFin": 12, "mensualites": 15678.48, "interets": 8275.77, "capitalRembourse": 6502.71, "assurance": 900, "capitalRestant": 243497.29 },
    { "annee": 2, "moisDebut": 13, "moisFin": 24, "mensualites": 15678.48, "interets": 8054.54, "capitalRembourse": 6723.94, "assurance": 900, "capitalRestant": 236773.35 },
    ... 22 autres lignes ...
    { "annee": 25, "moisDebut": 289, "moisFin": 300, "mensualites": 15677.21, "interets": 264.65, "capitalRembourse": 14512.56, "assurance": 900, "capitalRestant": 0 }
  ],
  "totauxEcheancier": {
    "interets": 119460.73,
    "assurance": 22500,
    "capitalRembourse": 250000,
    "coutTotal": 391960.73
  },
  "source": "https://moicombien.fr/simulateur/pret-immobilier",
  "methodologie": "https://moicombien.fr/simulateur/pret-immobilier#methode"
}

Hors bornes (capital négatif) : réponse 400 (400)

GET https://moicombien.fr/api/v1/calcul/pret?capital=-5&taux=3.35&duree=240
{
  "error": "capital : Paramètres numériques : nombres positifs ou nuls attendus.",
  "status": 400,
  "docs": "https://moicombien.fr/api-publique"
}

Paramètre inconnu (diferre au lieu de differe) : réponse 400 avec la liste des paramètres admis (400)

GET https://moicombien.fr/api/v1/calcul/pret?capital=200000&taux=3.35&duree=25&diferre=24
{
  "error": "Paramètre inconnu « diferre ». Paramètres admis pour pret : capital, taux, duree, assurance, differe (et schedule).",
  "status": 400,
  "docs": "https://moicombien.fr/api-publique"
}
GET/api/v1/calcul/notaire

Calcule les frais de notaire (droits de mutation au taux du département + émoluments + débours + CSI) pour un bien ancien ou neuf VEFA. Taux départementaux du tableau DGFiP au 1er juin 2026.

Paramètres

Paramètres de /api/v1/calcul/notaire
NomRequisDescriptionExemple
prixouiPrix d'achat en euros350000
typenonType de bien : ancien (défaut) ou neuf ; toute autre valeur : réponse 400ancien
departementnonCode du département du bien (01 à 95, 2A, 2B, 971 à 976, tableau DGFiP). Absent : taux départemental de 5 % (cas général). Code hors du tableau : réponse 400 avec la liste des codes admis75
primonon1 si primo-accédant achetant sa résidence principale (taux 4,50 % au lieu de 5 %, 3,80 % dans l'Indre) ; 0 ou 1 (true et false admis)0

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/notaire?prix=350000&type=ancien&departement=75

Réponse (200)

{
  "type": "notaire",
  "input": {
    "prix": 350000,
    "type": "ancien",
    "departement": "75",
    "primo": false
  },
  "result": {
    "prixBien": 350000,
    "typeBien": "ancien",
    "departement": "75",
    "primoAccedant": false,
    "tauxDepartemental": 5,
    "tauxDMTO": 0.063185,
    "droitsMutation": 22114.75,
    "emolumentsNotaire": 3193.75,
    "tvaEmoluments": 638.75,
    "fraisDebours": 1000,
    "contributionSecuriteImmobiliere": 350,
    "totalFraisNotaire": 27297.25,
    "prixTotal": 377297.25,
    "pourcentageDuPrix": 0.078
  },
  "source": "https://moicombien.fr/simulateur/frais-notaire",
  "methodologie": "https://moicombien.fr/simulateur/frais-notaire#methode"
}

Code de département hors du tableau DGFiP (departement=99) : réponse 400 avec la liste des codes admis (400)

GET https://moicombien.fr/api/v1/calcul/notaire?prix=350000&departement=99
{
  "error": "departement : code inconnu « 99 ». Codes admis (tableau DGFiP au 2026-06-01) : 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2A, 2B, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 971, 972, 973, 974, 976.",
  "status": 400,
  "docs": "https://moicombien.fr/api-publique"
}
GET/api/v1/calcul/licenciement

Calcule l'indemnité minimum légale de licenciement selon ancienneté et salaire de référence.

Paramètres

Paramètres de /api/v1/calcul/licenciement
NomRequisDescriptionExemple
salaireouiSalaire mensuel brut en euros2500
ancienneteouiAncienneté en années (décimal accepté), de 0 à 60 (borne du calculateur) ; au-delà : réponse 40010

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/licenciement?salaire=2500&anciennete=10

Réponse (200)

{
  "type": "licenciement",
  "input": {
    "salaire": 2500,
    "anciennete": 10
  },
  "result": {
    "salaireMensuelBrut": 2500,
    "ancienneteAnnees": 10,
    "motif": "personnel",
    "ancienneteInsuffisante": false,
    "indemniteMinimumLegale": 6250,
    "indemniteHorsFauteGrave": 6250,
    "preavisLegalMois": 2,
    "indemnitePreavisLegal": 5000,
    "totalPerduFauteGrave": 0,
    "detail": [
      { "libelle": "Jusqu'à 10 ans d'ancienneté (1/4 mois par année)", "anneesCouvertes": 10, "fractionParAnnee": 0.25, "moisEquivalents": 2.5, "montant": 6250 }
    ]
  },
  "source": "https://moicombien.fr/simulateur/indemnites-licenciement",
  "methodologie": "https://moicombien.fr/simulateur/indemnites-licenciement#methode"
}
GET/api/v1/calcul/capacite-emprunt

Calcule la capacité d'emprunt selon revenus, charges, taux et durée, méthode HCSF : mensualité max = revenus × 35 % − charges de crédit existantes (assurance comprise).

Paramètres

Paramètres de /api/v1/calcul/capacite-emprunt
NomRequisDescriptionExemple
revenusouiRevenus mensuels nets en euros3500
chargesnonCharges de crédit mensuelles existantes en euros (défaut 0)400
tauxouiTaux annuel emprunt en %3.35
dureeouiDurée en années25
assurancenonTaux annuel d'assurance emprunteur en % du capital (défaut 0)0.3

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/capacite-emprunt?revenus=3500&charges=400&taux=3.35&duree=25

Réponse (200)

{
  "type": "capacite-emprunt",
  "input": {
    "revenus": 3500,
    "charges": 400,
    "taux": 3.35,
    "duree": 25,
    "assurance": 0
  },
  "result": {
    "revenusNetsMensuels": 3500,
    "chargesMensuelles": 400,
    "tauxAnnuelPercent": 3.35,
    "dureeAnnees": 25,
    "tauxEndettementMax": 0.35,
    "tauxAssurancePercent": 0,
    "mensualiteMax": 825,
    "mensualiteCredit": 825,
    "assuranceMensuelle": 0,
    "capitalEmpruntable": 167473.59,
    "coutTotalInterets": 80026.41,
    "coutTotalAssurance": 0
  },
  "source": "https://moicombien.fr/simulateur/capacite-emprunt",
  "methodologie": "https://moicombien.fr/simulateur/capacite-emprunt#methode"
}
GET/api/v1/calcul/salaire-net

Convertit un salaire brut mensuel en net avant impôt et en net imposable (cotisations salariales 2026 du secteur privé, statut cadre ou non-cadre), avec le détail ligne par ligne des cotisations. Les options du calculateur sont exposées : contrat d'apprentissage (apprenti=1, et apprentiAvantMars2025=1 pour un contrat conclu jusqu'au 28 février 2025) et régime local d'Alsace-Moselle (alsaceMoselle=1).

Paramètres

Paramètres de /api/v1/calcul/salaire-net
NomRequisDescriptionExemple
brutouiSalaire brut mensuel en euros, de 0 à 100000 (borne du calculateur) ; au-delà : réponse 4002500
statutnoncadre ou non-cadre (défaut non-cadre) ; toute autre valeur : réponse 400non-cadre
apprentinon1 pour un contrat d'apprentissage conclu depuis le 1er mars 2025 : aucune cotisation salariale ni CSG-CRDS jusqu'à 50 % du SMIC (933,51 €), cotisations et CSG-CRDS sur le seul excédent (défaut 0 ; true et false admis)0
apprentiAvantMars2025non1, avec apprenti=1, pour un contrat d'apprentissage conclu jusqu'au 28 février 2025 (règles antérieures à la LFSS 2025, jusqu'au terme du contrat) : exonération des cotisations salariales jusqu'à 79 % du SMIC (1 474,95 €) et aucune CSG-CRDS. Sans apprenti=1 : réponse 400 (défaut 0)0
alsaceMosellenon1 pour le régime local d'assurance maladie d'Alsace-Moselle : cotisation salariale supplémentaire de 1,30 % du brut (défaut 0)0

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/salaire-net?brut=2500&statut=non-cadre

Réponse (200)

{
  "type": "salaire-net",
  "input": {
    "brut": 2500,
    "statut": "non-cadre",
    "apprenti": false,
    "apprentiAvantMars2025": false,
    "alsaceMoselle": false
  },
  "result": {
    "brutMensuel": 2500,
    "brutAnnuel": 30000,
    "totalCotisations": 521.01,
    "netImposable": 2050.22,
    "netAvantImpot": 1978.99,
    "detail": [
      { "libelle": "Vieillesse plafonnée", "assiette": 2500, "taux": 0.069, "deductible": true, "montant": 172.5 },
      { "libelle": "Vieillesse déplafonnée", "assiette": 2500, "taux": 0.004, "deductible": true, "montant": 10 },
      ... 9 autres lignes ...
      { "libelle": "CRDS", "assiette": 2456.25, "taux": 0.005, "deductible": false, "montant": 12.28 }
    ]
  },
  "source": "https://moicombien.fr/simulateur/salaire-net-brut"
}

Apprenti (apprenti=1) : 1 200 € brut, cotisations sur les 266,49 € au-delà de 933,51 € (200)

GET https://moicombien.fr/api/v1/calcul/salaire-net?brut=1200&apprenti=1
{
  "type": "salaire-net",
  "input": {
    "brut": 1200,
    "statut": "non-cadre",
    "apprenti": true,
    "apprentiAvantMars2025": false,
    "alsaceMoselle": false
  },
  "result": {
    "brutMensuel": 1200,
    "brutAnnuel": 14400,
    "totalCotisations": 55.53,
    "netImposable": 1152.06,
    "netAvantImpot": 1144.47,
    "detail": [
      { "libelle": "Vieillesse plafonnée", "assiette": 266.49, "taux": 0.069, "deductible": true, "montant": 18.39 },
      { "libelle": "Vieillesse déplafonnée", "assiette": 266.49, "taux": 0.004, "deductible": true, "montant": 1.07 },
      ... 9 autres lignes ...
      { "libelle": "CRDS", "assiette": 261.83, "taux": 0.005, "deductible": false, "montant": 1.31 }
    ]
  },
  "source": "https://moicombien.fr/simulateur/salaire-net-brut"
}

Apprenti, contrat conclu avant le 1er mars 2025 (apprenti=1&apprentiAvantMars2025=1) : 1 200 € brut sous le seuil de 79 % du SMIC, net égal au brut (200)

GET https://moicombien.fr/api/v1/calcul/salaire-net?brut=1200&apprenti=1&apprentiAvantMars2025=1
{
  "type": "salaire-net",
  "input": {
    "brut": 1200,
    "statut": "non-cadre",
    "apprenti": true,
    "apprentiAvantMars2025": true,
    "alsaceMoselle": false
  },
  "result": {
    "brutMensuel": 1200,
    "brutAnnuel": 14400,
    "totalCotisations": 0,
    "netImposable": 1200,
    "netAvantImpot": 1200,
    "detail": [
      { "libelle": "Vieillesse plafonnée", "assiette": 0, "taux": 0.069, "deductible": true, "montant": 0 },
      { "libelle": "Vieillesse déplafonnée", "assiette": 0, "taux": 0.004, "deductible": true, "montant": 0 },
      ... 9 autres lignes ...
      { "libelle": "CRDS", "assiette": 0, "taux": 0.005, "deductible": false, "montant": 0 }
    ]
  },
  "source": "https://moicombien.fr/simulateur/salaire-net-brut"
}

Drapeau mal formé (apprenti=2) : réponse 400, l'option n'est pas ignorée en silence (400)

GET https://moicombien.fr/api/v1/calcul/salaire-net?brut=2500&apprenti=2
{
  "error": "apprenti : valeur 0, 1, true ou false attendue.",
  "status": 400,
  "docs": "https://moicombien.fr/api-publique"
}
GET/api/v1/calcul/salaire-brut

Calcule le salaire brut mensuel nécessaire pour obtenir un net avant impôt donné (recherche inverse sur la même grille de cotisations, mêmes options apprenti et alsaceMoselle que salaire-net).

Paramètres

Paramètres de /api/v1/calcul/salaire-brut
NomRequisDescriptionExemple
netouiNet mensuel avant impôt visé, en euros, de 0 à 100000 (borne du calculateur) ; au-delà : réponse 4002000
statutnoncadre ou non-cadre (défaut non-cadre) ; toute autre valeur : réponse 400non-cadre
apprentinon1 pour un contrat d'apprentissage conclu depuis le 1er mars 2025 (défaut 0)0
apprentiAvantMars2025non1, avec apprenti=1, pour un contrat conclu jusqu'au 28 février 2025 (défaut 0)0
alsaceMosellenon1 pour le régime local d'Alsace-Moselle (défaut 0)0

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/salaire-brut?net=2000&statut=non-cadre

Réponse (200)

result est un nombre, et non un objet comme pour les onze autres types : le salaire brut mensuel en euros, arrondi au centime, qui donne le net demandé avec le statut et les options indiqués. Le bloc input rappelle le net visé, le statut, apprenti, apprentiAvantMars2025 et alsaceMoselle. Le détail des cotisations correspondant à ce brut s'obtient par salaire-net?brut=<result>.

{
  "type": "salaire-brut",
  "input": {
    "net": 2000,
    "statut": "non-cadre",
    "apprenti": false,
    "apprentiAvantMars2025": false,
    "alsaceMoselle": false
  },
  "result": 2526.54,
  "source": "https://moicombien.fr/simulateur/salaire-net-brut"
}
GET/api/v1/calcul/impot-revenu

Calcule l'impôt sur le revenu 2026 (revenus 2025) à partir du revenu net imposable du foyer et du nombre de parts : barème par tranche, plafonnement du quotient familial, décote, taux moyen et taux marginal.

Paramètres

Paramètres de /api/v1/calcul/impot-revenu
NomRequisDescriptionExemple
revenuouiRevenu net imposable annuel du foyer, en euros35000
partsnonNombre de parts de quotient familial (défaut 1), de 1 à 10 par pas de 0.25 (1 personne seule, 2 couple, + 0,5 par enfant pour les deux premiers, + 1 à partir du troisième, 0,25 par enfant en résidence alternée) ; hors de ces bornes ou du pas (0, 0.75, 1.3…) : réponse 400, la valeur n'est pas ramenée à 1 en silence2
situationnonseul ou couple (déduite des parts si absente : 2 parts et plus = couple) ; toute autre valeur (celibataire, marie…) : réponse 400 avec les valeurs admises ; couple avec moins de 2 parts : réponse 400 (un couple compte au moins 2 parts)couple
parentIsolenon1 pour appliquer la part entière du premier enfant d'un parent isolé (case T) ; 0 ou 1 (true et false admis)0

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Champs de la réponse à connaître

result.tauxMarginal
Taux marginal effectif (0,3 pour 30 %) : taux auquel un euro de revenu supplémentaire est imposé. Égal à tauxMarginalEffectif. Sans plafonnement du quotient familial, c'est la tranche atteinte par le quotient ; quand plafonnementQF est positif, c'est la tranche atteinte par revenu / parts de base (48 000 € pour une personne seule avec 2 parts : 0,3, alors que le quotient n'atteint que 0,11).
result.tauxMarginalQuotient
Taux de la tranche la plus élevée atteinte par le quotient familial (revenu / parts), ancienne valeur de tauxMarginal.

Exemple

GET https://moicombien.fr/api/v1/calcul/impot-revenu?revenu=35000&parts=2&situation=couple

Réponse (200)

{
  "type": "impot-revenu",
  "input": {
    "revenu": 35000,
    "parts": 2,
    "situation": "couple",
    "parentIsole": false
  },
  "result": {
    "revenuImposable": 35000,
    "nbParts": 2,
    "situation": "couple",
    "partsBase": 2,
    "demiPartsSupplementaires": 0,
    "quotientFamilial": 17500,
    "impotBrut": 1298,
    "impotSansDemiParts": 1298,
    "plafondQF": 0,
    "plafonnementQF": 0,
    "impotApresPlafonnement": 1298,
    "decote": 895.66,
    "impotNet": 402.35,
    "tauxMoyen": 0.0115,
    "tauxMarginalEffectif": 0.11,
    "tauxMarginalQuotient": 0.11,
    "tauxMarginal": 0.11,
    "detail": [
      { "libelle": "De 0 € à 11 600 €", "taux": 0, "basePortion": 23200, "impot": 0 },
      { "libelle": "De 11 600 € à 29 579 €", "taux": 0.11, "basePortion": 11800, "impot": 1298 }
    ]
  },
  "source": "https://moicombien.fr/simulateur/impot-revenu"
}

Valeur d'énumération inconnue (situation=celibataire) : réponse 400 avec les valeurs admises, la situation n'est pas déduite en silence (400)

GET https://moicombien.fr/api/v1/calcul/impot-revenu?revenu=48000&parts=2&situation=celibataire
{
  "error": "situation : valeur inconnue « celibataire ». Valeurs admises : seul, couple.",
  "status": 400,
  "docs": "https://moicombien.fr/api-publique"
}

Parts incohérentes avec la situation (parts=1&situation=couple) : réponse 400, les parts ne sont pas portées à 2 en silence (400)

GET https://moicombien.fr/api/v1/calcul/impot-revenu?revenu=48000&parts=1&situation=couple
{
  "error": "situation : un couple soumis à imposition commune compte au moins 2 parts (parts >= 2 attendu avec situation=couple).",
  "status": 400,
  "docs": "https://moicombien.fr/api-publique"
}
GET/api/v1/calcul/heures-supp

Calcule le brut et le net des heures supplémentaires mensuelles (majorations de 25 % et 50 %, réduction de cotisations salariales, exonération d'impôt dans la limite de 7 500 € par an).

Paramètres

Paramètres de /api/v1/calcul/heures-supp
NomRequisDescriptionExemple
tauxouiTaux horaire brut en euros15
h25nonHeures supplémentaires par semaine majorées à 25 % (défaut 0)4
h50nonHeures supplémentaires par semaine majorées à 50 % (défaut 0)2

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/heures-supp?taux=15&h25=4&h50=2

Réponse (200)

{
  "type": "heures-supp",
  "input": {
    "taux": 15,
    "h25": 4,
    "h50": 2
  },
  "result": {
    "brutHS25Mensuel": 325,
    "brutHS50Mensuel": 195,
    "brutTotalMensuel": 520,
    "brutTotalAnnuel": 6240,
    "netSansReductionMensuel": 411.63,
    "netAvecReductionMensuel": 470.44,
    "gainCotisationsMensuel": 58.81,
    "netImposableAnnuel": 5823.11,
    "partExonereeIRAnnuelle": 5823.11,
    "partImposableIRAnnuelle": 0
  },
  "source": "https://moicombien.fr/simulateur/heures-supplementaires"
}
GET/api/v1/calcul/tva

Convertit un montant hors taxes en TTC, un TTC en HT, ou isole la TVA, à un taux donné (20 %, 10 %, 5,5 % ou 2,1 %).

Paramètres

Paramètres de /api/v1/calcul/tva
NomRequisDescriptionExemple
montantouiMontant de départ en euros1000
sensnonht-vers-ttc (défaut), ttc-vers-ht ou tva-seule-depuis-ht ; toute autre valeur : réponse 400ht-vers-ttc
tauxnonTaux de TVA en décimal, de 0 à 1 (défaut 0.2 ; 0.1, 0.055 et 0.021 pour les taux réduits) ; une valeur en pourcentage (taux=20) : réponse 400 avec le rappel de l'unité0.2

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/tva?montant=1000&sens=ht-vers-ttc&taux=0.2

Réponse (200)

{
  "type": "tva",
  "input": {
    "montant": 1000,
    "sens": "ht-vers-ttc",
    "taux": 0.2
  },
  "result": {
    "ht": 1000,
    "tva": 200,
    "ttc": 1200,
    "sens": "ht-vers-ttc",
    "taux": 0.2
  },
  "source": "https://moicombien.fr/simulateur/tva"
}

Taux en pourcentage (taux=20 au lieu de 0.2) : réponse 400, l'unité est rappelée (400)

GET https://moicombien.fr/api/v1/calcul/tva?montant=1000&sens=ht-vers-ttc&taux=20
{
  "error": "taux : taux de TVA en décimal, de 0 à 1, attendu (0.2 pour 20 %, 0.055 pour 5,5 %).",
  "status": 400,
  "docs": "https://moicombien.fr/api-publique"
}
GET/api/v1/calcul/interets-composes

Projette un capital placé avec versements mensuels et intérêts composés (composition mensuelle) : capital final, total versé, intérêts gagnés et évolution année par année.

Paramètres

Paramètres de /api/v1/calcul/interets-composes
NomRequisDescriptionExemple
capitalnonCapital initial en euros (défaut 0)10000
versementnonVersement mensuel en euros (défaut 0)200
tauxouiTaux annuel en %4
dureeouiDurée en années20

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/interets-composes?capital=10000&versement=200&taux=4&duree=20

Réponse (200)

{
  "type": "interets-composes",
  "input": {
    "capital": 10000,
    "versement": 200,
    "taux": 4,
    "duree": 20
  },
  "result": {
    "capitalInitial": 10000,
    "versementMensuel": 200,
    "tauxAnnuelPercent": 4,
    "dureeAnnees": 20,
    "frequenceComposition": "mensuelle",
    "capitalFinal": 95580.75,
    "totalVerse": 58000,
    "interetsGagnes": 37580.75,
    "evolution": [
      { "annee": 0, "capital": 10000 },
      { "annee": 1, "capital": 12851.91 },
      ... 18 autres lignes ...
      { "annee": 20, "capital": 95580.75 }
    ]
  },
  "source": "https://moicombien.fr/simulateur/interets-composes"
}
GET/api/v1/calcul/plus-value-immo

Calcule l'impôt sur la plus-value immobilière d'un particulier (19 % d'IR et 17,2 % de prélèvements sociaux, abattements pour durée de détention, surtaxe au-delà de 50 000 €), avec les forfaits de frais d'acquisition (7,5 %) et de travaux (15 % après 5 ans).

Paramètres

Paramètres de /api/v1/calcul/plus-value-immo
NomRequisDescriptionExemple
prixVenteouiPrix de vente en euros300000
prixAcquisitionouiPrix d'acquisition en euros200000
anneesouiDurée de détention en années10
naturenonbati (défaut) ou terrain ; toute autre valeur : réponse 400bati
acquisitionnononereux (défaut) ou gratuit (succession, donation) ; toute autre valeur : réponse 400onereux

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/plus-value-immo?prixVente=300000&prixAcquisition=200000&annees=10

Réponse (200)

{
  "type": "plus-value-immo",
  "input": {
    "prixVente": 300000,
    "prixAcquisition": 200000,
    "annees": 10,
    "nature": "bati",
    "acquisition": "onereux"
  },
  "result": {
    "prixVente": 300000,
    "prixAcquisition": 200000,
    "modeAcquisition": "onereux",
    "natureBien": "bati",
    "fraisAcquisitionRetenus": 15000,
    "travauxRetenus": 30000,
    "plusValueBrute": 55000,
    "anneesDetention": 10,
    "abattementIRPercent": 0.3,
    "abattementPSPercent": 0.0825,
    "baseImposableIR": 38500,
    "baseImposablePS": 50462.5,
    "impotIR": 7315,
    "prelevementsSociaux": 8679.55,
    "surtaxe": 0,
    "totalImpots": 15994.55,
    "netVendeur": 284005.45,
    "exonereIR": false,
    "exonerePS": false
  },
  "source": "https://moicombien.fr/simulateur/plus-value-immobiliere"
}
GET/api/v1/calcul/rendement-locatif

Calcule le rendement locatif brut et net d'un bien (loyer annuel, vacance locative, charges non récupérables, taxe foncière, assurance, gestion) et le compare aux placements sans risque.

Paramètres

Paramètres de /api/v1/calcul/rendement-locatif
NomRequisDescriptionExemple
prixouiPrix d'achat en euros200000
fraisnonFrais d'acquisition en euros (défaut 0)15000
loyerouiLoyer mensuel hors charges en euros900
chargesnonCharges de copropriété annuelles non récupérables (défaut 0)600
taxenonTaxe foncière annuelle (défaut 0)900
assurancenonAssurance propriétaire non occupant annuelle (défaut 0)120
gestionnonFrais de gestion annuels (défaut 0)0
vacancenonVacance locative en mois par an (défaut 0), de 0 à 12 ; au-delà : réponse 4000.5

Tout paramètre absent de ce tableau (hors schedule) renvoie une réponse 400 avec la liste des paramètres admis : une option mal orthographiée n'est jamais ignorée en silence. Un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false renvoie aussi 400, de même qu'un paramètre à valeurs énumérées (type, statut, situation, sens, nature, acquisition) qui reçoit une valeur hors de sa liste : la réponse 400 énumère les valeurs admises, et la valeur par défaut n'est jamais substituée en silence. Le paramètre format n'existe que sur les jeux de données (/api/v1/baremes).

Exemple

GET https://moicombien.fr/api/v1/calcul/rendement-locatif?prix=200000&frais=15000&loyer=900&charges=600&taxe=900&assurance=120&vacance=0.5

Réponse (200)

{
  "type": "rendement-locatif",
  "input": {
    "prix": 200000,
    "frais": 15000,
    "loyer": 900,
    "charges": 600,
    "taxe": 900,
    "assurance": 120,
    "gestion": 0,
    "vacance": 0.5
  },
  "result": {
    "prixAchat": 200000,
    "fraisAcquisition": 15000,
    "coutTotalAcquisition": 215000,
    "loyerMensuelHorsCharges": 900,
    "vacanceLocativeMois": 0.5,
    "loyerAnnuelTheorique": 10800,
    "revenuLocatifAnnuelBrut": 10350,
    "chargesTotales": 1620,
    "revenuLocatifAnnuelNet": 8730,
    "revenuMensuelNetMoyen": 727.5,
    "rendementBrutPercent": 5.4,
    "rendementNetPercent": 4.06,
    "detailCharges": {
      "chargesCoproprieteAnnuelles": 600,
      "taxeFonciereAnnuelle": 900,
      "assurancePNOAnnuelle": 120,
      "fraisGestionAnnuels": 0
    },
    "comparatif": [
      { "cle": "livret-a", "label": "Livret A", "tauxPercent": 1.7, "ecartPoints": 2.36 },
      { "cle": "fonds-euros", "label": "Fonds euros (moyenne 2025)", "tauxPercent": 2.6, "ecartPoints": 1.46 },
      { "cle": "scpi", "label": "SCPI (distribution moyenne 2025)", "tauxPercent": 4.92, "ecartPoints": -0.86 }
    ]
  },
  "source": "https://moicombien.fr/simulateur/rendement-locatif"
}

Limites et bonnes pratiques

  • Pas de quota dur, mais un usage abusif (plus de 60 req/min) peut être rate-limité côté Vercel.
  • Cache HTTP recommandé : les réponses sont mises en cache 5 min côté client (max-age=300) et 1 h côté CDN (s-maxage=3600). Aucune raison d'appeler l'API plus d'une fois par jeu d'inputs.
  • Crédit obligatoire si vous affichez les résultats : mention « Calculé via l'API MoiCombien » + lien (dofollow). C'est la seule contrepartie ; les résultats et les jeux de données sont réutilisables sous CC BY 4.0 (voir CGU, « Données ouvertes et API »).
  • Pas de SLA, service gratuit, best-effort, mais hébergé sur Vercel avec une disponibilité historique > 99,9 %. L'usage reste soumis aux conditions générales d'utilisation.
  • Les barèmes 2026 sont mis à jour dès parution officielle. Vos appels reflètent automatiquement les changements.
  • Erreurs : paramètre requis manquant ou valeur hors bornes (prêt : capital nul ou négatif, taux négatif, durée hors de 1 à 35 ans) : réponse 400 avec un objet { "error", "status", "docs" } qui rappelle les paramètres attendus ; type inconnu : 404 avec la liste des 12 types ; erreur interne : 500. Tous les endpoints refusent aussi (400) un paramètre numérique négatif, un drapeau (0 ou 1) qui reçoit une autre valeur que 0, 1, true ou false, un paramètre inconnu (dont format, réservé aux jeux de données), un code de département hors du tableau DGFiP pour notaire et un brut ou un net mensuel au-delà de 100 000 € pour salaire-net et salaire-brut (borne du calculateur) ; au-delà, ils restituent le calcul tel quel sans autre contrôle de vraisemblance.
  • Arrondis : les montants (mensualités, impôt, cotisations, assiettes, lignes de détail) sont en euros arrondis au centime ; les taux (clés taux*, pourcentage*, rendement*, *Percent) sont arrondis à 4 décimales (0,0701 = 7,01 %), sauf tauxDMTO, taux légal composé des droits de mutation, restitué tel quel. Le bloc input renvoie les paramètres reçus sans arrondi.

Données ouvertes : les barèmes en JSON et CSV

Les valeurs que les simulateurs appliquent sont téléchargeables telles quelles, lues dans les mêmes constantes que les pages. Index : GET /api/v1/baremes. Chaque jeu : GET /api/v1/baremes/<jeu> (JSON) ou ?format=csv (séparateur « ; », ligne d'en-tête, UTF-8 avec BOM, virgule décimale : ouverture directe dans un tableur). Sans authentification, CORS ouvert, cache d'un jour.

  • dmto-departements : Droits de mutation à titre onéreux : taux départemental, par département (valeurs au ). JSON · CSV · page du site
  • bareme-ir : Barème de l'impôt sur le revenu (revenus 2025, imposition 2026) (valeurs au ). JSON · CSV · page du site
  • smic-pass : SMIC, minimum garanti, plafond de la Sécurité sociale et valeurs dérivées (valeurs au ). JSON · CSV · page du site
  • livrets : Épargne réglementée : taux et plafonds (Livret A, LDDS, LEP, Livret jeune, CEL, PEL) (valeurs au ). JSON · CSV · page du site
  • micro-entreprise : Micro-entreprise : plafonds, taux de cotisations, Acre, seuils de TVA (valeurs au ). JSON · CSV · page du site
  • taux-neutre : Prélèvement à la source : grille du taux neutre (métropole), 2026 (valeurs au ). JSON · CSV · page du site
  • metiers-minima : Fiches métier : fourchettes de salaire net et minima conventionnels (valeurs au ). JSON · CSV · page du site
  • corrections : Journal des corrections et mises à jour de fond (valeurs au ). JSON · CSV · page du site
  • echeances : Calendrier des échéances des barèmes (valeurs au ). JSON · CSV · page du site

Licences : les données publiques reprises (Journal officiel, service-public.gouv.fr, DGFiP, INSEE) sont sous Licence Ouverte 2.0 (Etalab) : citez le producteur et la date indiqués dans chaque jeu. La compilation (structure, sélection, fiches métier, journal, calendrier) est sous CC BY 4.0 : citez « MoiCombien (moicombien.fr) ». Ces licences autorisent la réutilisation, y compris commerciale, avec attribution ; elles sont reprises dans les CGU. Exemple : curl https://moicombien.fr/api/v1/baremes/bareme-ir?format=csv

Vous préférez un widget visuel ?

Si vous voulez juste afficher la calculatrice sur votre site sans coder, regardez plutôt la page widget iframe. C'est encore plus simple : un copier-coller HTML.

Une question, un endpoint manquant ?

Demandez via la page contact. De nouveaux endpoints sont ouverts en fonction des demandes.

Les exemples de requête ci-dessus sont exécutés par le code de l'API au moment où cette page est générée, sérialisés avec les mêmes règles que la réponse HTTP (une clé sans valeur n'apparaît pas), et un test automatique compare leurs résultats aux formules des simulateurs (https://moicombien.fr/api/v1/calcul/pret?capital=200000&taux=3.35&duree=25&assurance=0.36 donne bien la mensualité du simulateur de prêt).