Aller au contenu principal
APIPlaque

API plaque immatriculation Python : exemple requests

Interrogez l’API plaque en Python avec requests, variables d’environnement, timeout et contrôle du JSON retourné.

Publié le

En Python, la bibliothèque requests permet de transmettre la plaque comme paramètre de requête et de récupérer le JSON véhicule. Le code sépare les problèmes de configuration, les erreurs HTTP et une réponse inexploitable.

Installer et configurer

Installez requests dans l’environnement Python de votre projet. Injectez les variables avant le lancement : Python ne lit pas un fichier .env automatiquement. Vérifiez la base et le host auprès de RapidAPI ; le domaine .p.rapidapi.co conservé depuis le catalogue reste à confirmer.

Fonction de consultation

Variables du serveur
# Configuration serveur uniquement. Confirmer URL et hôte dans RapidAPI.
RAPIDAPI_KEY=YOUR_RAPIDAPI_KEY
API_PLAQUE_BASE_URL=https://api-plaque-immatriculation-france-donnees-vehicule-siv.p.rapidapi.co
RAPIDAPI_HOST=api-plaque-immatriculation-france-donnees-vehicule-siv.p.rapidapi.co
Python avec requests
import os
import requests

def lookup_vehicle(plaque):
    key = os.environ['RAPIDAPI_KEY']
    base = os.environ['API_PLAQUE_BASE_URL']
    host = os.environ['RAPIDAPI_HOST']
    if not key or key == 'YOUR_RAPIDAPI_KEY' or not base or not host:
        raise ValueError('Configuration RapidAPI manquante')
    if not isinstance(plaque, str) or not plaque.strip():
        raise ValueError('Plaque requise')
    response = requests.request(
        'GET', base.rstrip('/') + '/fr',
        params={'plaque': plaque.strip()},
        headers={
            'x-rapidapi-key': key,
            'x-rapidapi-host': host,
            'Content-Type': 'application/json',
        },
        timeout=(5, 10),
        allow_redirects=False,
    )
    response.raise_for_status()
    if not 200 <= response.status_code < 300:
        raise ValueError('Statut HTTP inattendu')
    body = response.json()
    if not isinstance(body, dict) or body.get('error') is not False or not isinstance(body.get('data'), dict):
        raise ValueError('Réponse véhicule inexploitable')
    return body['data']

try:
    vehicle = lookup_vehicle('FH034DD')
    print(vehicle.get('AWN_marque', 'Marque indisponible'))
except (requests.exceptions.RequestException, ValueError, KeyError):
    raise SystemExit('Identification indisponible : vérifier la configuration et le service')

Délais et réponses

Le tuple timeout=(5, 10) définit un délai de connexion et un délai de lecture. Le délai de lecture n’est pas une limite absolue de durée pour tout le téléchargement. raise_for_status() traite les échecs HTTP ; le contrôle suivant refuse aussi une redirection. Le JSON n’est utilisé qu’après vérification de son enveloppe.

Adaptez les exceptions à votre application ou à votre traitement en tâche de fond. N’organisez pas de relances en boucle : vérifiez d’abord le quota et la nature de l’échec. La référence d’erreurs sépare les faits publiés des comportements encore inconnus. Consultez aussi les paramètres et le dictionnaire des données.

Référence technique : guide Requests.