Cles API

Administrez vos acces programmatiques et gardez un controle total.

Plan actuel FREE

Creer une nouvelle cle API

Attribuez un nom pour differencier vos environnements (production, staging, etc.).

Le nom facilite le suivi et apparait dans votre journal d'activite.

Utilisation rapide

Incluez la cle dans l'en-tete X-API-Key pour authentifier vos requetes :

curl -X POST https://app.mailin-hack.fr/api/v1/solve \
  -H "X-API-Key: sk_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://mib.tims.fr/invitation/?lang=fr&id=XXX"}'

Comment extraire le lien CAPTCHA ?

Pour automatiser l'integration, vous devez recuperer le lien du bouton "Delivrer" dans l'email Mailinblack.

Étape 1 : Identifier l'email

Verifiez si l'email contient le mot "mailinblack" :

// JavaScript
if (email.body.toLowerCase().includes("mailinblack")) { ... }

# Python
if "mailinblack" in email_content.lower(): ...

Étape 2 : Extraire le lien

Le bouton peut avoir differents textes selon la langue :

  • "Delivrer" / "Delivrer mon message" / "Delivrer le message"
  • "Deliver" / "Deliver my message" / "Deliver the message"
// JavaScript (avec Cheerio)
const links = $('a[href]');
const keywords = ['delivrer', 'deliver'];
links.each((i, link) => {
    const text = $(link).text().toLowerCase();
    if (keywords.some(k => text.includes(k))) {
        const url = $(link).attr('href');
        // url = "https://mib.tims.fr/invitation/?id=XXX"
    }
});

# Python (avec BeautifulSoup)
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
keywords = ['delivrer', 'deliver']
for link in soup.find_all('a', href=True):
    text = link.text.lower()
    if any(k in text for k in keywords):
        url = link['href']
        # url = "https://mib.tims.fr/invitation/?id=XXX"

🚩 Limites de Rate Limiting

Notre API applique des limites pour garantir une performance optimale et éviter les abus.

Limite principale : 60 requĂȘtes par minute

Chaque clĂ© API est limitĂ©e Ă  60 requĂȘtes par minute (1 requĂȘte/seconde en moyenne).

  • FenĂȘtre glissante de 60 secondes
  • Limite appliquĂ©e par clĂ© API (pas par IP)
  • Maximum : 3 600 requĂȘtes/heure
  • Maximum : 86 400 requĂȘtes/jour (si utilisation constante)

Que se passe-t-il en cas de dépassement ?

Si vous dépassez la limite, l'API retournera une erreur HTTP 429 (Too Many Requests) avec :

{
  "error": "Rate limit exceeded",
  "message": "Vous avez dĂ©passĂ© la limite de 60 requĂȘtes par minute",
  "retry_after": 42,  // Secondes avant de pouvoir réessayer
  "limit": 60,
  "remaining": 0
}

Headers de réponse inclus :

  • X-RateLimit-Limit: 60 - Limite maximale
  • X-RateLimit-Remaining: 15 - RequĂȘtes restantes
  • X-RateLimit-Reset: 1736935200 - Timestamp de reset
  • Retry-After: 42 - Secondes Ă  attendre

Bonnes pratiques pour éviter les limites

  • Respectez 1 requĂȘte/seconde en moyenne
  • ImplĂ©mentez un retry avec exponential backoff
  • Surveillez le header X-RateLimit-Remaining
  • Utilisez plusieurs clĂ©s API si nĂ©cessaire pour plus de volume
  • Mettez en cache les rĂ©sultats cĂŽtĂ© client quand possible

Exemple Python avec gestion du rate limit :

import time
import requests

def call_api_with_retry(url, headers, json_data, max_retries=3):
    for attempt in range(max_retries):
        response = requests.post(url, headers=headers, json=json_data)

        if response.status_code == 429:  # Rate limit atteint
            retry_after = int(response.headers.get('Retry-After', 60))
            print(f"Rate limit atteint. Attente de {retry_after}s...")
            time.sleep(retry_after)
            continue

        return response

    raise Exception("Max retries atteint")

Vos cles API

Gardez uniquement les cles actives necessaires et revoquez celles qui ne servent plus.

Chargement des cles...