Bêta ouverte : l'offre gratuite est complète, les paiements sont en mode test (aucun débit réel)
Aller au contenu

Documentation

URL de base : https://supercalcula.ch/api

Démarrer en cinq minutes

  1. 1

    Créez un compte gratuit et confirmez votre e-mail. Créer un compte

  2. 2

    Copiez votre clé API depuis Mon compte → Clés API. Elle ne s'affiche qu'une fois.

  3. 3

    Testez-la avec la commande ci-dessous.

  4. 4

    Appelez l'API de votre choix avec les exemples de cette page.

curl https://supercalcula.ch/api/v1/ping \
  -H "Authorization: Bearer sk_live_…"

# {"ok":true,"data":{"pong":true,"key":"sk_live_a1b2…9f3e"}}

Deux endpoints gratuits : GET /v1/ping (teste une clé) et GET /v1/me (offre, quota et crédits restants). openapi.yaml

Authentification

Chaque requête porte l'en-tête Authorization: Bearer <clé>. Les clés sk_test_ renvoient des résultats factices sans consommer de quota (l'en-tête X-Test-Mode: true l'indique) ; les validations sont les mêmes qu'avec une clé de production.

Erreurs et quotas

Les erreurs sont en JSON avec un code stable et un message en anglais. Les en-têtes X-Quota-Remaining, X-Credits-Remaining et X-RateLimit-Remaining sont présents sur chaque réponse.

{ "ok": false, "error": { "code": "quota_exceeded", "message": "Monthly quota exhausted" } }
CodeHTTPSignification
invalid_api_key401Clé absente, inconnue ou mal formée.
key_revoked401Clé révoquée : créez-en une nouvelle depuis votre compte.
account_suspended403Compte suspendu : contactez le support.
invalid_input400Paramètre manquant ou invalide (la ligne fautive est donnée dans line pour les conversions).
payload_too_large413Corps supérieur à la limite de l'offre (1 Mo en Free, 10 Mo ensuite).
quota_exceeded429Quota mensuel et crédits épuisés.
rate_limited429Trop d'appels par minute ; voir l'en-tête Retry-After.
internal_error500Erreur de notre côté ou source externe indisponible : ne coûte rien, réessayez.

Crédits et quotas

Une requête réussie coûte le nombre de crédits de l'endpoint (1 pour les endpoints de la vague 1). Une erreur 4xx due à votre requête coûte 1 crédit ; les erreurs 401, 429 et 5xx ne coûtent rien. Le quota mensuel est consommé en premier, puis les crédits achetés.

Référence des endpoints

POST

/v1/qr

Coût : 1 crédit(s)

Génère un QR code ou un code-barres, en PNG ou en SVG.

Paramètres (Corps JSON)

NomTypeRequisDéfautDescription
contentstringouihttps://supercalcula.chTexte, URL ou vCard à encoder (2 953 caractères au maximum).
typestring
qr | ean13 | code128
nonqrqr (défaut), ean13 (12 ou 13 chiffres, la clé de contrôle est vérifiée) ou code128 (ASCII imprimable).
formatstring
png | svg
nonpngpng (défaut) ou svg.
sizeintegernon512Largeur en pixels, de 64 à 2 048 (défaut 512).
marginintegernon2Marge blanche en modules, de 0 à 20 (défaut 2).
colorstringnon#000000Couleur du code, au format #rrggbb.
backgroundstringnon#ffffffCouleur du fond, au format #rrggbb.
error_correctionstring
L | M | Q | H
nonMNiveau de correction d'erreur : L, M (défaut), Q ou H.
logo_urlstringnon—Logo centré (https uniquement, 500 Ko au maximum). Force error_correction=H. Les logos SVG ne sont acceptés qu'avec format=svg.
encodingstring
binary | base64
nonbinarybinary (défaut : l'image elle-même) ou base64 (JSON contenant l'image).

Exemple

curl -X POST https://supercalcula.ch/api/v1/qr \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"content":"https://supercalcula.ch","size":512}' --output qr.png

La réponse est l'image elle-même (PNG ou SVG) ; avec encoding=base64, un JSON contenant l'image.

Essayer avec votre clé

Collez une clé API (idéalement une clé sk_test_ : résultats fictifs, aucun crédit consommé). Elle reste dans cette page : elle n'est ni enregistrée ni envoyée ailleurs qu'à l'API. Avec une clé sk_live_, l'appel consomme vos crédits.

Essayer en ligne →

GET

/v1/email/verify

Coût : 1 crédit(s)

Vérifie une adresse e-mail sans connexion SMTP : syntaxe, DNS, MX, adresse jetable, compte de rôle, faute de frappe probable.

Paramètres (Paramètres d'URL)

NomTypeRequisDéfautDescription
emailstringouijean.dupont@gmial.comAdresse à vérifier (254 caractères au maximum).

Exemple

curl "https://supercalcula.ch/api/v1/email/verify?email=jean.dupont%40gmial.com" \
  -H "Authorization: Bearer sk_live_…"

Réponse

{
    "ok": true,
    "data": {
        "email": "jean.dupont@gmial.com",
        "normalized": "jean.dupont@gmial.com",
        "syntax_valid": true,
        "domain_exists": true,
        "has_mx": false,
        "disposable": false,
        "role_account": false,
        "free_provider": false,
        "suggestion": "jean.dupont@gmail.com",
        "score": 0.05,
        "verdict": "invalid"
    }
}
Essayer avec votre clé

Collez une clé API (idéalement une clé sk_test_ : résultats fictifs, aucun crédit consommé). Elle reste dans cette page : elle n'est ni enregistrée ni envoyée ailleurs qu'à l'API. Avec une clé sk_live_, l'appel consomme vos crédits.

Essayer en ligne →

POST

/v1/convert

Coût : 1 crédit(s)

Convertit un document entre JSON, CSV, XML et YAML. Variante : envoyer le document brut avec ?from=csv&to=json en paramètres d'URL ; la réponse est alors le document converti.

Paramètres (Corps JSON)

NomTypeRequisDéfautDescription
fromstring
json | csv | xml | yaml
ouicsvFormat source : json, csv, xml ou yaml.
tostring
json | csv | xml | yaml
ouijsonFormat cible : json, csv, xml ou yaml.
datastringoui…Document source, sous forme de texte.
options.delimiterstringnon,CSV : séparateur de colonnes (une virgule par défaut ; « tab », « semicolon » et « pipe » sont acceptés).
options.headerbooleannontrueCSV : la première ligne contient les en-têtes (défaut true).
options.rootstringnonrootXML : nom de l'élément racine (défaut root).
options.prettybooleannontrueJSON et XML : sortie indentée (défaut true).
options.infer_typesbooleannonfalseConvertit « 12 », « true » ou « 3.5 » en nombres et booléens (défaut false).
options.escape_formulasbooleannontrueCSV : préfixe d'une apostrophe les cellules commençant par = + - @ pour neutraliser les formules de tableur (défaut true).

Exemple

curl -X POST https://supercalcula.ch/api/v1/convert \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"from":"csv","to":"json","data":"name,city\nAlexandre,Genève"}'

Réponse

{
    "ok": true,
    "data": {
        "to": "json",
        "result": "[\n    {\n        \"name\": \"Alexandre\",\n        \"city\": \"Genève\"\n    }\n]",
        "rows": 1
    }
}
Essayer avec votre clé

Collez une clé API (idéalement une clé sk_test_ : résultats fictifs, aucun crédit consommé). Elle reste dans cette page : elle n'est ni enregistrée ni envoyée ailleurs qu'à l'API. Avec une clé sk_live_, l'appel consomme vos crédits.

Essayer en ligne →

POST

/v1/seo/analyze

Coût : 1 crédit(s)

Génère un slug et analyse titre, description, mots-clés, densité, temps de lecture et lisibilité.

Paramètres (Corps JSON)

NomTypeRequisDéfautDescription
titlestringoui…Titre de la page (300 caractères au maximum).
textstringnon…Corps de l'article (200 000 caractères au maximum).
descriptionstringnonMeta description à évaluer (500 caractères au maximum).
langstring
fr | de | en
nonfrfr (défaut), de ou en : mots vides et formule de lisibilité.
max_keywordsintegernon10Nombre maximal de mots-clés, de 1 à 50 (défaut 10).

Exemple

curl -X POST https://supercalcula.ch/api/v1/seo/analyze \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"Comment créer un QR code avec logo en 2026","text":"Un QR code avec logo…","lang":"fr"}'

Réponse

{
    "ok": true,
    "data": {
        "slug": "comment-creer-un-qr-code-avec-logo-en-2026",
        "title": {
            "length": 42,
            "verdict": "ok"
        },
        "description": {
            "length": 0,
            "verdict": "missing"
        },
        "keywords": [
            {
                "term": "qr code",
                "count": 12,
                "density": 2.1
            },
            {
                "term": "logo",
                "count": 7,
                "density": 1.2
            }
        ],
        "word_count": 570,
        "reading_time_min": 3,
        "readability": {
            "score": 62,
            "level": "standard"
        }
    }
}
Essayer avec votre clé

Collez une clé API (idéalement une clé sk_test_ : résultats fictifs, aucun crédit consommé). Elle reste dans cette page : elle n'est ni enregistrée ni envoyée ailleurs qu'à l'API. Avec une clé sk_live_, l'appel consomme vos crédits.

Essayer en ligne →

POST

/v1/pii/redact

Coût : 1 crédit(s)

Détecte et masque e-mails, téléphones, IBAN, cartes, numéros AVS, adresses IP et URL. Le texte n'est jamais conservé.

Paramètres (Corps JSON)

NomTypeRequisDéfautDescription
textstringoui…Texte à traiter (200 000 caractères au maximum).
typesarray
email | phone | iban | card | ahv | ip | url
non—Types à détecter parmi email, phone, iban, card, ahv, ip, url (tous par défaut).
modestring
mask | placeholder | remove
nonplaceholderplaceholder (défaut : [EMAIL_1]), mask (caractères remplacés) ou remove.
mask_charstringnon*Caractère de masquage (un seul, « * » par défaut).
keep_lastintegernon0Mode mask : nombre de caractères conservés en fin de valeur, de 0 à 4.

Exemple

curl -X POST https://supercalcula.ch/api/v1/pii/redact \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"text":"Contact : jean@exemple.ch, +41 79 123 45 67, IBAN CH93 0076 2011 6238 5295 7","mode":"placeholder"}'

Réponse

{
    "ok": true,
    "data": {
        "text": "Contact : [EMAIL_1], [PHONE_1], IBAN [IBAN_1]",
        "entities": [
            {
                "type": "email",
                "placeholder": "EMAIL_1",
                "start": 10,
                "end": 25
            },
            {
                "type": "phone",
                "placeholder": "PHONE_1",
                "start": 27,
                "end": 43
            },
            {
                "type": "iban",
                "placeholder": "IBAN_1",
                "start": 50,
                "end": 76
            }
        ],
        "count": 3
    }
}
Essayer avec votre clé

Collez une clé API (idéalement une clé sk_test_ : résultats fictifs, aucun crédit consommé). Elle reste dans cette page : elle n'est ni enregistrée ni envoyée ailleurs qu'à l'API. Avec une clé sk_live_, l'appel consomme vos crédits.

Essayer en ligne →

GET

/v1/convert/currency

Coût : 1 crédit(s)

Convertit un montant avec les taux de référence de la BCE (30 devises, historique depuis 1999).

Paramètres (Paramètres d'URL)

NomTypeRequisDéfautDescription
amountnumberoui100Montant à convertir (positif).
fromstringouiCHFDevise source, code à trois lettres (CHF, EUR, USD…).
tostringouiEURDevise cible, code à trois lettres.
datestringnon—Date du taux au format AAAA-MM-JJ (facultatif, par défaut le dernier taux).

Exemple

curl "https://supercalcula.ch/api/v1/convert/currency?amount=100&from=CHF&to=EUR" \
  -H "Authorization: Bearer sk_live_…"

Réponse

{
    "ok": true,
    "data": {
        "amount": 100,
        "from": "CHF",
        "to": "EUR",
        "rate": 1.0738,
        "result": 107.38,
        "date": "2026-10-09",
        "source": "ECB"
    }
}
Essayer avec votre clé

Collez une clé API (idéalement une clé sk_test_ : résultats fictifs, aucun crédit consommé). Elle reste dans cette page : elle n'est ni enregistrée ni envoyée ailleurs qu'à l'API. Avec une clé sk_live_, l'appel consomme vos crédits.

Essayer en ligne →

GET

/v1/convert/unit

Coût : 1 crédit(s)

Convertit une valeur entre unités : longueur, masse, volume, surface, température, vitesse, pression, énergie, puissance, données, temps, angle.

Paramètres (Paramètres d'URL)

NomTypeRequisDéfautDescription
valuenumberoui12.5Valeur à convertir.
fromstringouikmUnité source (voir GET /v1/units).
tostringouimiUnité cible, de la même catégorie.
precisionintegernon6Nombre de décimales du résultat, de 0 à 12 (défaut 6).

Exemple

curl "https://supercalcula.ch/api/v1/convert/unit?value=12.5&from=km&to=mi" \
  -H "Authorization: Bearer sk_live_…"

Réponse

{
    "ok": true,
    "data": {
        "value": 12.5,
        "from": "km",
        "to": "mi",
        "result": 7.76714,
        "category": "length"
    }
}
Essayer avec votre clé

Collez une clé API (idéalement une clé sk_test_ : résultats fictifs, aucun crédit consommé). Elle reste dans cette page : elle n'est ni enregistrée ni envoyée ailleurs qu'à l'API. Avec une clé sk_live_, l'appel consomme vos crédits.

Essayer en ligne →

Journal des modifications

2026-10-10
Version 1.0 : QR codes et codes-barres, validation d'e-mails, conversion de données, SEO, masquage de données personnelles, devises et unités.