Abbreviare URL in massa con l'API URLW: guida ed esempi

Abbreviate centinaia di URL in una singola richiesta grazie all'API batch URLW. Guida completa con esempi curl, buone pratiche e gestione degli errori.

Avete un catalogo di 500 prodotti, 1.000 articoli di blog o un file CSV di link da abbreviare urgentemente? L'API URLW propone un endpoint batch che vi permette di elaborare centinaia di URL in una singola richiesta HTTP, con performance e affidabilità ottimali.

Quando usare l'abbreviazione in massa

L'elaborazione in massa è particolarmente adatta in queste situazioni:

  • Migrazione da un altro servizio: importate tutti i vostri link Bitly o TinyURL esistenti verso URLW
  • Catalogo e-commerce: abbreviate l'URL di ogni scheda prodotto per le vostre campagne SMS o email marketing
  • Contenuto editoriale: un media o un blog desidera abbreviare l'insieme dei propri articoli per i social network
  • Campagna multi-segmento: create link personalizzati per ogni segmento della vostra base clienti (500 segmenti = 500 link)
  • Automazione di pipeline: un workflow automatizzato genera link brevi per nuovi contenuti pubblicati ogni giorno

L'endpoint batch dell'API URLW

L'endpoint POST /api/v1/links/batch accetta un array JSON di URL da abbreviare. Ogni elemento può specificare un URL, uno slug opzionale, un dominio personalizzato e dei metadati.

Limiti da conoscere:

  • Massimo 100 URL per richiesta batch (per volumi superiori, segmentate in più richieste)
  • Il rate limit del vostro piano si applica per richiesta, non per URL nel batch
  • Gli errori sono restituiti per URL (un URL non valido non blocca gli altri)

Esempio completo con curl

Ecco un esempio di richiesta batch che abbrevia 3 URL in una sola volta:

curl -X POST https://urlw.fr/api/v1/links/batch \
-H "Authorization: Bearer LA_VOSTRA_CHIAVE_API" \
-H "Content-Type: application/json" \
-d '{
"links": [
  {
    "url": "https://esempio.com/prodotto/sedia-ufficio-ergonomica",
    "slug": "sedia-ufficio",
    "domain": "go.vostro-negozio.it"
  },
  {
    "url": "https://esempio.com/prodotto/scrivania-standing-regolabile",
    "slug": "scrivania-standing"
  },
  {
    "url": "https://esempio.com/prodotto/lampada-led-ufficio",
    "slug": "lampada-led"
  }
]
}'

Risposta JSON (HTTP 207 Multi-Status):

{
"results": [
{
  "status": 201,
  "link": {
    "id": "lnk_001",
    "short_url": "https://go.vostro-negozio.it/sedia-ufficio",
    "slug": "sedia-ufficio"
  }
},
{
  "status": 201,
  "link": {
    "id": "lnk_002",
    "short_url": "https://urlw.fr/scrivania-standing",
    "slug": "scrivania-standing"
  }
},
{
  "status": 422,
  "error": {
    "code": "SLUG_TAKEN",
    "message": "Lo slug 'lampada-led' è già utilizzato"
  }
}
]
}

Script bash per abbreviare un file CSV in massa

Per elaborare un file CSV di migliaia di URL, ecco un approccio con bash e il comando split:

#!/bin/bash
# Divide il CSV in lotti di 100 URL e chiama l'API URLW per ogni lotto

INPUT_FILE="url_da_abbreviare.csv"
API_KEY="${URLW_API_KEY}"
OUTPUT_FILE="link_brevi_generati.csv"

# Leggere il CSV riga per riga e costruire batch da 100
python3 - <<'EOF'
import json, csv, subprocess, sys

with open('url_da_abbreviare.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"Elaborazione lotto {i//batch_size + 1} ({len(batch)} URL)...")
# Chiamata API qui con subprocess.run o requests
EOF

Per volumi molto importanti (10.000+ URL), preferite uno script Python o Node.js con gestione asincrona e retry automatico sugli errori 429. Consultate la documentazione API URLW per i dettagli completi dell'endpoint batch. Create il vostro account per iniziare.

Prova URLW gratuitamente

50 link brevi, API REST inclusa, nessuna carta di credito richiesta.