Raccourcir des URLs en masse avec l'API URLW : guide et exemples
Raccourcissez des centaines d'URLs en une seule requête grâce à l'API batch URLW. Guide complet avec exemples curl, bonnes pratiques et gestion des erreurs.
Vous avez un catalogue de 500 produits, 1 000 articles de blog ou un fichier CSV de liens à raccourcir d'urgence ? L'API URLW propose un endpoint batch qui vous permet de traiter des centaines d'URLs en une seule requête HTTP, avec une performance et une fiabilité optimales.
Quand utiliser le raccourcissement en masse
Le traitement en masse est particulièrement adapté dans ces situations :
- Migration depuis un autre service : vous importez tous vos liens Bitly ou TinyURL existants vers URLW
- Catalogue e-commerce : vous raccourcissez l'URL de chaque fiche produit pour vos campagnes SMS ou emailing
- Contenu éditorial : un média ou un blog souhaite raccourcir l'ensemble de ses articles pour ses réseaux sociaux
- Campagne multi-segments : vous créez des liens personnalisés pour chaque segment de votre base clients (500 segments = 500 liens)
- Automatisation de pipeline : un workflow automatisé génère des liens courts pour de nouveaux contenus publiés chaque jour
L'endpoint batch de l'API URLW
L'endpoint POST /api/v1/links/batch accepte un tableau JSON d'URLs à raccourcir. Chaque élément peut spécifier une URL, un slug optionnel, un domaine personnalisé et des métadonnées.
Limites à connaître :
- Maximum 100 URLs par requête batch (pour des volumes supérieurs, segmentez en plusieurs requêtes)
- Le rate limit de votre plan s'applique par requête, pas par URL dans le batch
- Les erreurs sont retournées par URL (une URL invalide ne bloque pas les autres)
Exemple complet avec curl
Voici un exemple de requête batch raccourcissant 3 URLs en une seule fois :
curl -X POST https://urlw.fr/api/v1/links/batch \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"links": [
{
"url": "https://exemple.com/produit/chaise-bureau-ergonomique",
"slug": "chaise-bureau",
"domain": "go.votre-boutique.fr"
},
{
"url": "https://exemple.com/produit/bureau-standing-ajustable",
"slug": "bureau-standing"
},
{
"url": "https://exemple.com/produit/lampe-led-bureau",
"slug": "lampe-led"
}
]
}'
Réponse JSON (HTTP 207 Multi-Status) :
{
"results": [
{
"status": 201,
"link": {
"id": "lnk_001",
"short_url": "https://go.votre-boutique.fr/chaise-bureau",
"slug": "chaise-bureau"
}
},
{
"status": 201,
"link": {
"id": "lnk_002",
"short_url": "https://urlw.fr/bureau-standing",
"slug": "bureau-standing"
}
},
{
"status": 422,
"error": {
"code": "SLUG_TAKEN",
"message": "Le slug 'lampe-led' est déjà utilisé"
}
}
]
}
Script bash pour raccourcir un fichier CSV en masse
Pour traiter un fichier CSV de plusieurs milliers d'URLs, voici une approche avec bash et la commande split :
#!/bin/bash
# Divise le CSV en lots de 100 URLs et appelle l'API URLW pour chaque lot
INPUT_FILE="urls_a_raccourcir.csv"
API_KEY="${URLW_API_KEY}"
OUTPUT_FILE="liens_courts_generes.csv"
# Lire le CSV ligne par ligne et construire des batches de 100
python3 - <<'EOF'
import json, csv, subprocess, sys
with open('urls_a_raccourcir.csv') as f:
urls = [row[0] for row in csv.reader(f) if row]
batch_size = 100
for i in range(0, len(urls), batch_size):
batch = [{"url": u} for u in urls[i:i+batch_size]]
payload = json.dumps({"links": batch})
print(f"Traitement du lot {i//batch_size + 1} ({len(batch)} URLs)...")
# Appel API ici avec subprocess.run ou requests
EOF
Pour des volumes très importants (10 000+ URLs), préférez un script Python ou Node.js avec gestion asynchrone et retry automatique sur les erreurs 429. Consultez la documentation API URLW pour les détails complets de l'endpoint batch. Créez votre compte pour commencer.
Testez URLW gratuitement
50 liens courts, API REST incluse, aucune carte bancaire requise.