API & intégrations

Les mêmes calculateurs, dans vos scripts, applications et assistants.

Un premier calcul

Les outils publics sont accessibles sans clé. Commencez par lire leur définition : chaque valeur doit utiliser son unité de référence, pas une unité d’affichage alternative.

curl 'https://tools.bainier.fr/api/v1/calculators/ohm'

curl 'https://tools.bainier.fr/api/v1/calculators/ohm/evaluate' \
  -H 'Content-Type: application/json' \
  --data '{"values":{"voltage":12,"resistance":1000}}'

Réponse (courant en mA) :

{"id":"ohm","results":{"current":12,"power":0.144},"curated":true,"notes":[]}

La liste de remarques dépend du calculateur. Sur chaque page, la section API prépare la requête à partir des valeurs affichées.

Un GET est également disponible :

GET /api/v1/calculators/ohm/evaluate?voltage=12&resistance=1000

Préférez POST pour des valeurs privées : les paramètres GET peuvent apparaître dans l’historique ou les journaux d’accès.

Rechercher & explorer

GET /api/v1/search?q=resitance&category=electronics&limit=24&offset=0
GET /api/v1/search?category=aquarium&section=Volumes
GET /api/v1/search?mine=true
GET /api/v1/calculators
GET /api/v1/calculators/{id}
GET /api/v1/meta

La recherche tolère accents manquants et fautes proches. Paramètres : q, category, section, mine, sort (alpha ou recent), limit (1–100), offset. La réponse contient items, total, categories et sections.

Courbes & prévisualisation

POST /api/v1/calculators/ohm/plot
{"values":{"voltage":12,"resistance":1000},"x":"voltage","y":"current","min":0,"max":24,"points":64}

2 à 96 échantillons. Un résultat hors domaine est renvoyé comme null ; il ne faut pas relier une courbe à travers ces trous. Les axes, labels et unités sont inclus dans la réponse.

POST /api/v1/preview
{"definition":{...},"values":{...}}

POST /api/v1/builder/plot
{"definition":{...},"plot":{"values":{...},"x":"valeur","y":"resultat","min":0,"max":20,"points":64}}

Les définitions acceptent section, explanation (étapes), visuals (diagram, curve ou bar), inputs, outputs, checks, notes, sources et tests. Le schéma de définition décrit le format enregistré. Le créateur permet de tout renseigner sans éditer ce format.

Une prévisualisation ne requiert ni compte ni test. À l’enregistrement, si aucun test n’est fourni, un test de non-régression est créé avec les valeurs initiales. Il ne remplace pas une validation indépendante des formules.

Créations personnelles & modération

Le navigateur crée un espace personnel après une vérification anti-bot locale ALTCHA. Pas de compte obligatoire. Son cookie d’accès est HttpOnly, Secure et SameSite=Strict ; effacer ce cookie fait perdre l’accès aux créations privées de cet espace.

GET  /api/v1/challenge?purpose=visitor
POST /api/v1/visitor/start      {"proof":{"challenge":{...},"solution":{...}},"website":""}
POST /api/v1/calculators        {"definition":{...},"public":false}
POST /api/v1/calculators        {"id":"custom-…","definition":{...},"public":false}
DELETE /api/v1/calculators/{id}

Une création reste immédiatement accessible à son propriétaire. Elle n’entre dans le catalogue, le sitemap et les activités publiques qu’après validation administrateur. Toute modification remet la publication en attente.

Les opérations sensibles vérifient l’origine de la requête, la session et les droits. Les comptes nommés peuvent créer des clés révocables dans Mon espace. En script, utilisez Authorization: Bearer VOTRE_CLE. Ne placez jamais une clé dans une URL ou un navigateur partagé.

GET  /api/v1/admin/creations
POST /api/v1/admin/creations/{id}/review
{"decision":"approved","note":"Formules vérifiées"}

Décisions : approved, rejected ou pending. La note de validation est visible par le créateur.

Signalements & activité

GET  /api/v1/challenge?purpose=report&subject=ohm
POST /api/v1/calculators/ohm/report
{"kind":"formula","message":"Description précise du problème…","proof":{"challenge":{...},"solution":{...}},"website":""}

GET /api/v1/activity

Types : formula, units, result, display ou other. Le signalement est réservé à l’administrateur. Aucune valeur de calcul n’est jointe automatiquement.

La requête evaluate accepte record:true pour signaler l’usage d’un outil public. Le flux retourne uniquement le nom et l’heure, jamais les entrées, les résultats ou l’identité. Les ouvertures, courbes et calculs privés ne sont pas publiés ; un événement maximum par outil toutes les 20 secondes. Le flux reflète l’activité reçue, pas un comptage certifié de visiteurs.

Agents, Codex & Claude

Téléchargez le skill Calibria et placez-le dans le dossier des skills de votre agent. Il explique la recherche, les unités et le calcul sans autoriser de publication ou d’action privilégiée.

Ces documents aident les intégrations. Ce ne sont ni un serveur MCP ni une garantie d’indexation par un moteur de recherche.

Erreurs & limites

Les erreurs sont structurées : {"error":"message"}. Codes usuels : 400 requête incorrecte, 401 session manquante, 403 accès interdit, 404 outil inexistant ou privé, 422 formule ou valeurs invalides, 429 limite temporaire, 503 service indisponible. Les expressions n’exécutent aucun script. Les nombres non finis et les divisions par zéro sont refusés.