{"openapi":"3.1.0","info":{"title":"Fiscalité française ouverte, par BENSAID Avocats","version":"1.0.0","description":"Textes fiscaux officiels français, sans IA générative : conventions fiscales de la France article par article (corpus au 2026-10-05), doctrine BOFiP, barèmes OpenFisca, articles du CGI et du LPF (Légifrance). Chaque réponse porte la source officielle, la date du corpus, un avertissement et les adresses du cabinet. Information générale, pas une consultation juridique.","contact":{"name":"BENSAID Avocats","url":"https://www.bensaid-avocats.fr/"},"license":{"name":"Textes officiels : licence ouverte Etalab 2.0 ; OpenFisca : AGPL-3.0","url":"https://www.etalab.gouv.fr/licence-ouverte-open-licence/"},"x-privacy-policy":"https://outils.bensaid-avocats.fr/api/v1/privacy"},"servers":[{"url":"https://outils.bensaid-avocats.fr/api/v1"}],"security":[],"paths":{"/conventions/search":{"post":{"operationId":"conventionsSearch","summary":"Rechercher dans les conventions fiscales de la France","description":"Recherche par article dans les 237 actes des conventions fiscales de la France (125 pays). Rend numéro d'article, acte, extrait officiel, PDF et score. Préciser le pays quand il est connu, puis lire l'article.","x-openai-isConsequential":false,"responses":{"200":{"description":"Résultat (textes officiels et métadonnées). Toujours : source, date_corpus, licence, avertissement, cabinet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reponse"}}}},"400":{"description":"Paramètres invalides (le message dit lesquels).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"404":{"description":"Texte introuvable (acte, article, BOI ou paramètre).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"429":{"description":"Plafond d'usage atteint : réessayer plus tard.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"503":{"description":"Service momentanément suspendu.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":3,"maxLength":300,"description":"Question ou sujet, en français de préférence."},"pays":{"type":"string","maxLength":60,"description":"Pays en français ou en anglais, ou code ISO à 3 lettres (Suisse, Royaume-Uni, United States, ITA)."},"objet":{"type":"string","enum":["revenu","successions","donations","renseignements","liberalites","autre"],"description":"Nature de l'acte (revenu par défaut pour la recherche : tous)."},"limit":{"type":"integer","minimum":1,"maximum":8,"description":"Nombre de résultats (1 à 8, défaut 6)."}},"required":["query"],"additionalProperties":false},"example":{"query":"imposition des pensions de retraite privées","pays":"Suisse","limit":5}}}}}},"/conventions/get":{"get":{"operationId":"conventionsGet","summary":"Lire le texte intégral d'un acte conventionnel","description":"Texte intégral d'une convention, d'un avenant ou d'un protocole (identifiant conv-N), par tranches de 40 000 caractères (paramètre debut). Pour un seul article, préférer conventions/article.","x-openai-isConsequential":false,"responses":{"200":{"description":"Résultat (textes officiels et métadonnées). Toujours : source, date_corpus, licence, avertissement, cabinet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reponse"}}}},"400":{"description":"Paramètres invalides (le message dit lesquels).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"404":{"description":"Texte introuvable (acte, article, BOI ou paramètre).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"429":{"description":"Plafond d'usage atteint : réessayer plus tard.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"503":{"description":"Service momentanément suspendu.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}}},"parameters":[{"name":"acte","in":"query","required":true,"description":"Identifiant de l'acte, ex. conv-214.","schema":{"type":"string","pattern":"^conv-\\d{1,3}$"},"example":"conv-214"},{"name":"debut","in":"query","required":false,"description":"Position de départ dans le texte (pagination par tranches de 40000 caractères ; reprendre la valeur suite.debut).","schema":{"type":"integer","minimum":0}}]}},"/conventions/article":{"get":{"operationId":"conventionsArticle","summary":"Lire un article exact d'une convention fiscale","description":"Texte exact d'un article de convention fiscale, par pays (ou identifiant d'acte) et numéro, avec PDF officiel, notes d'avenant et avertissements (acte dénoncé, non en vigueur, texte OCR).","x-openai-isConsequential":false,"responses":{"200":{"description":"Résultat (textes officiels et métadonnées). Toujours : source, date_corpus, licence, avertissement, cabinet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reponse"}}}},"400":{"description":"Paramètres invalides (le message dit lesquels).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"404":{"description":"Texte introuvable (acte, article, BOI ou paramètre).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"429":{"description":"Plafond d'usage atteint : réessayer plus tard.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"503":{"description":"Service momentanément suspendu.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}}},"parameters":[{"name":"article","in":"query","required":true,"description":"Numéro d'article : 18, 1er, 28 bis.","schema":{"type":"string","maxLength":20},"example":"18"},{"name":"pays","in":"query","required":false,"description":"Pays en français ou en anglais, ou code ISO à 3 lettres (Suisse, Royaume-Uni, United States, ITA).","schema":{"type":"string","maxLength":60},"example":"Suisse"},{"name":"acte","in":"query","required":false,"description":"Identifiant d'acte (prioritaire sur pays).","schema":{"type":"string","pattern":"^conv-\\d{1,3}$"}},{"name":"objet","in":"query","required":false,"description":"revenu (défaut) ou successions, donations...","schema":{"type":"string","enum":["revenu","successions","donations","renseignements","liberalites","autre"]}},{"name":"paragraphe","in":"query","required":false,"description":"Numéro de paragraphe (optionnel).","schema":{"type":"string","pattern":"^\\d{1,2}$"}},{"name":"partie","in":"query","required":false,"description":"protocole, echange... (par défaut le corps de l'acte).","schema":{"type":"string","maxLength":30}}]}},"/bofip/search":{"post":{"operationId":"bofipSearch","summary":"Rechercher dans la doctrine fiscale (BOFiP)","description":"Recherche dans le BOFiP-Impôts (doctrine de la DGFiP), versions en vigueur seulement. Rend les BOI avec extrait, date de publication et permalien officiel ; lire ensuite le document avec bofip/get.","x-openai-isConsequential":false,"responses":{"200":{"description":"Résultat (textes officiels et métadonnées). Toujours : source, date_corpus, licence, avertissement, cabinet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reponse"}}}},"400":{"description":"Paramètres invalides (le message dit lesquels).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"404":{"description":"Texte introuvable (acte, article, BOI ou paramètre).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"429":{"description":"Plafond d'usage atteint : réessayer plus tard.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"503":{"description":"Service momentanément suspendu.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":3,"maxLength":300,"description":"Question ou sujet."},"serie":{"type":"string","pattern":"^[A-Za-z]{2,6}$","description":"Série BOFiP (IR, IS, TVA, RPPM, ENR, PAT, BIC, INT, CF...)."},"limit":{"type":"integer","minimum":1,"maximum":8,"description":"Nombre de résultats (1 à 8, défaut 6)."}},"required":["query"],"additionalProperties":false},"example":{"query":"exit tax transfert du domicile fiscal hors de France","serie":"RPPM"}}}}}},"/bofip/get":{"get":{"operationId":"bofipGet","summary":"Lire un document BOFiP","description":"Texte d'un document BOFiP par identifiant BOI, par tranches de 40 000 caractères (paramètre debut), avec titre, date de publication et permalien bofip.impots.gouv.fr.","x-openai-isConsequential":false,"responses":{"200":{"description":"Résultat (textes officiels et métadonnées). Toujours : source, date_corpus, licence, avertissement, cabinet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reponse"}}}},"400":{"description":"Paramètres invalides (le message dit lesquels).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"404":{"description":"Texte introuvable (acte, article, BOI ou paramètre).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"429":{"description":"Plafond d'usage atteint : réessayer plus tard.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"503":{"description":"Service momentanément suspendu.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}}},"parameters":[{"name":"boi","in":"query","required":true,"description":"Identifiant BOI.","schema":{"type":"string","pattern":"^BOI-[A-Za-z0-9-]{3,90}$"},"example":"BOI-RPPM-PVBMI-50-10-10"},{"name":"debut","in":"query","required":false,"description":"Position de départ dans le texte (pagination par tranches de 40000 caractères ; reprendre la valeur suite.debut).","schema":{"type":"integer","minimum":0}}]}},"/openfisca/parameter":{"get":{"operationId":"openfiscaParameter","summary":"Lire un barème ou un taux (OpenFisca)","description":"Valeur d'un paramètre de la législation fiscale française (barème, taux, plafond) codé par OpenFisca France, à une date donnée, avec historique et références légales. Un chemin partiel rend la liste des paramètres.","x-openai-isConsequential":false,"responses":{"200":{"description":"Résultat (textes officiels et métadonnées). Toujours : source, date_corpus, licence, avertissement, cabinet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reponse"}}}},"400":{"description":"Paramètres invalides (le message dit lesquels).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"404":{"description":"Texte introuvable (acte, article, BOI ou paramètre).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"429":{"description":"Plafond d'usage atteint : réessayer plus tard.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"503":{"description":"Service momentanément suspendu.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}}},"parameters":[{"name":"name","in":"query","required":true,"description":"Chemin du paramètre (points ou barres obliques).","schema":{"type":"string","pattern":"^[a-z0-9_]+([./][a-z0-9_]+){0,12}$","maxLength":200},"example":"impot_revenu.bareme_ir_depuis_1945.bareme"},{"name":"date","in":"query","required":false,"description":"Date de valeur AAAA-MM-JJ (défaut : aujourd'hui).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"historique","in":"query","required":false,"description":"Nombre de valeurs datées rendues (défaut 5).","schema":{"type":"integer","minimum":1,"maximum":30}}]}},"/legifrance/article":{"get":{"operationId":"legifranceArticle","summary":"Lire un article du CGI ou du LPF (Légifrance)","description":"Texte en vigueur d'un article du Code général des impôts (cgi) ou du Livre des procédures fiscales (lpf), par numéro (150-0 B ter, 757 B, L. 64), avec lien Légifrance et date d'entrée en vigueur.","x-openai-isConsequential":false,"responses":{"200":{"description":"Résultat (textes officiels et métadonnées). Toujours : source, date_corpus, licence, avertissement, cabinet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reponse"}}}},"400":{"description":"Paramètres invalides (le message dit lesquels).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"404":{"description":"Texte introuvable (acte, article, BOI ou paramètre).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"429":{"description":"Plafond d'usage atteint : réessayer plus tard.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}},"503":{"description":"Service momentanément suspendu.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"}}}}},"parameters":[{"name":"code","in":"query","required":true,"description":"cgi ou lpf.","schema":{"type":"string","enum":["cgi","lpf"]},"example":"cgi"},{"name":"article","in":"query","required":true,"description":"Numéro d'article : 150-0 B ter, 757 B, L. 64.","schema":{"type":"string","maxLength":40},"example":"150-0 B ter"}]}}},"components":{"schemas":{"Cabinet":{"type":"object","description":"Éditeur du service et adresses à proposer à l'utilisateur.","properties":{"nom":{"type":"string"},"url_page_pertinente":{"type":"string","description":"Page du cabinet ou de l'atlas la plus proche de la question."},"url_premier_echange":{"type":"string","description":"Page pour solliciter un premier échange avec le cabinet."}},"required":["nom","url_page_pertinente","url_premier_echange"]},"Reponse":{"type":"object","properties":{"ok":{"type":"boolean"},"outil":{"type":"string"},"source":{"type":"string","description":"URL de la source officielle (PDF, permalien BOFiP, Légifrance, API OpenFisca)."},"date_corpus":{"type":"string","description":"Date du corpus ou de la consultation, à mentionner dans la réponse."},"licence":{"type":"string"},"avertissement":{"type":"string"},"cabinet":{"$ref":"#/components/schemas/Cabinet"}},"required":["ok","source","date_corpus","avertissement","cabinet"],"additionalProperties":true},"Erreur":{"type":"object","properties":{"ok":{"type":"boolean"},"erreur":{"type":"string"},"cabinet":{"$ref":"#/components/schemas/Cabinet"}},"required":["ok","erreur"]}}}}