## Semrush API Développeur : comment j’automatise mes workflows SEO avec l’API

L’**semrush api développeur** est l’outil qui me permet de travailler à une échelle impossible manuellement. Dans mes audits clients, quand un site a 50 000 pages ou qu’un client veut surveiller 2 000 mots-clés, les interfaces graphiques Semrush ont leurs limites. L’API lève ces contraintes.

Ce guide s’adresse aux consultants SEO, développeurs et growth hackers qui veulent automatiser leurs workflows Semrush via l’API REST.

## L’API Semrush : vue d’ensemble technique

### Architecture de l’API

Semrush propose deux types d’API :

**API REST classique** (la plus utilisée) :
– Format : requêtes HTTP GET avec paramètres d’URL
– Authentification : clé API unique dans les paramètres
– Réponse : CSV ou JSON selon le type de requête
– Documentation : [developers.semrush.com](https://developers.semrush.com)

**API Reporting** :
– Accès aux données de vos projets Semrush (Position Tracking, Site Audit…)
– Format JSON
– Idéal pour l’intégration dans des dashboards BI

### Modèle de crédits API

L’API Semrush fonctionne avec un système de crédits (API units) :
– Chaque requête consomme des unités selon le type de données
– Les plans Semrush incluent des crédits API (10 000 unités/jour pour le plan Pro)
– Des crédits supplémentaires sont achetables

**Consommation typique :**
– Recherche de 1 mot-clé (volume, KD) : 1 unité
– Analyse backlinks d’un domaine (100 résultats) : 10 unités
– Positions organiques d’un domaine (100 résultats) : 10 unités
– Traffic Analytics d’un domaine : 1 unité

## Exemples pratiques en Python

### Installation et configuration

« `python
import requests
import pandas as pd

API_KEY = « votre_cle_api_semrush »
BASE_URL = « https://api.semrush.com/ »

def semrush_request(endpoint, params):
params[‘key’] = API_KEY
response = requests.get(BASE_URL + endpoint, params=params)
if response.status_code == 200:
return response.text
else:
raise Exception(f »Erreur API: {response.status_code} »)
« `

### Exemple 1 : Récupérer les positions organiques d’un domaine

« `python
def get_domain_organic_keywords(domain, country= »fr », limit=100):
«  » »Récupère les mots-clés organiques d’un domaine » » »
params = {
‘type’: ‘domain_organic’,
‘domain’: domain,
‘database’: country,
‘display_limit’: limit,
‘export_columns’: ‘Ph,Po,Nq,Cp,Co,Td’,
‘display_sort’: ‘nq_desc’
}

data = semrush_request( », params)
# Parse le CSV retourné
lines = data.strip().split(‘\n’)
headers = lines[0].split(‘;’)
rows = [line.split(‘;’) for line in lines[1:]]

df = pd.DataFrame(rows, columns=headers)
return df

# Utilisation
keywords_df = get_domain_organic_keywords(‘example.com’)
print(f »Nombre de mots-clés trouvés: {len(keywords_df)} »)
« `

### Exemple 2 : Analyse de gap de mots-clés

« `python
def keyword_gap_analysis(my_domain, competitor_domain, country= »fr »):
«  » »Trouve les mots-clés du concurrent absents chez vous » » »

# Mots-clés de mon domaine
my_keywords = set(get_domain_organic_keywords(my_domain)[‘Keyword’].tolist())

# Mots-clés du concurrent
comp_keywords = set(get_domain_organic_keywords(competitor_domain)[‘Keyword’].tolist())

# Gaps : présents chez le concurrent, absents chez moi
gaps = comp_keywords – my_keywords

return list(gaps)

# Utilisation
gaps = keyword_gap_analysis(‘my-site.com’, ‘competitor.com’)
print(f »Opportunités de mots-clés identifiées: {len(gaps)} »)
« `

### Exemple 3 : Surveillance quotidienne automatique

« `python
import json
from datetime import datetime

def daily_monitoring_report(domains_to_track, alert_threshold=20):
«  » »Génère un rapport quotidien de monitoring » » »
report = {
‘date’: datetime.now().strftime(‘%Y-%m-%d’),
‘domains’: {}
}

for domain in domains_to_track:
keywords_data = get_domain_organic_keywords(domain, limit=10)

report[‘domains’][domain] = {
‘total_keywords’: len(keywords_data),
‘top_keywords’: keywords_data.head(5).to_dict(),
}

# Sauvegarde du rapport
with open(f »seo_report_{report[‘date’]}.json », ‘w’) as f:
json.dump(report, f, ensure_ascii=False, indent=2)

print(f »Rapport généré : seo_report_{report[‘date’]}.json »)
return report
« `

## Cas d’usage avancés que j’automatise pour mes clients

### Monitoring concurrent automatique (cron quotidien)

J’ai mis en place pour plusieurs clients un script cron qui tourne chaque matin :
1. Récupère les top 100 mots-clés organiques de 5 concurrents
2. Détecte les changements de position > 5 places
3. Identifie les nouveaux mots-clés entrants dans leur top 10
4. Envoie une alerte Slack si changements significatifs

Le test que j’ai mené montre que ce monitoring automatique détecte les mouvements concurrentiels 48 à 72h plus vite que la veille manuelle hebdomadaire.

### Reporting client automatisé

Chaque premier du mois, un script Semrush API génère automatiquement :
– Évolution du trafic organique estimé vs N-1
– Top 20 mots-clés avec évolution de position
– Nouveaux backlinks du mois
– Health Score de l’audit technique

Ce rapport est directement injecté dans un template Google Data Studio. Résultat : 4 heures de reporting mensuel éliminées, remplacées par 15 minutes de vérification et commentaire.

### Audit de masse pour grandes migrations

Pour les migrations SEO de sites avec 100 000+ URLs, l’API permet de :
– Extraire la liste complète des pages indexées
– Vérifier les positions pré-migration pour les 5 000 pages les plus importantes
– Comparer post-migration pour détecter les pertes

Sans l’API, ce type d’audit est humainement impossible en temps raisonnable.

## Bonnes pratiques et limitations

**Gestion du rate limiting** : Semrush limite les requêtes API. Implémentez un délai de 0.5 à 1 seconde entre requêtes et gérez les erreurs 429 (Too Many Requests).

**Optimiser la consommation de crédits** : n’extrayez que les colonnes nécessaires (`export_columns` paramètre), limitez les résultats par requête avec `display_limit`.

**Sécurité** : ne committez jamais votre clé API dans Git. Utilisez les variables d’environnement.

**Cache local** : pour les données peu volatiles (Authority Score, volumes mensuels), mettez en cache localement pour éviter des requêtes redondantes.

## Où trouver l’API Semrush ?

La clé API est disponible dans votre compte Semrush sous Profile > API. La documentation complète est sur developers.semrush.com avec des exemples pour Python, PHP, JavaScript et d’autres langages.

TR

admin_af

Expert logiciels emailing

J'ai lancé 3 startups et géré des listes email de 10 000 à 250 000 abonnés. Je teste chaque outil pendant au moins 3 mois avant de donner mon avis. Pas de partenariat caché.

48 articles · 12 outils testés · 3 ans d'expérience