Documentazione API
API REST per le notizie sportive italiane in tempo reale. Risposte JSON, un'unica API key.
Base URL
https://api.sportswire.info
Introduzione
SportsWire fornisce notizie sportive (calcio, tennis, basket, motori, volley e altro) aggregate da fonti ufficiali e normalizzate come dati strutturati: sport, testata, data, immagine e link all'originale. Tutte le richieste sono GET e restituiscono JSON.
Autenticazione
Passa la tua chiave nell'header X-API-Key (oppure come parametro ?api_key=). Ottieni una chiave gratuita registrandoti su sportswire.info/app.
curl -H "X-API-Key: sk_live_xxx" \
"https://api.sportswire.info/api/news?sport=calcio&limit=5"
Senza chiave, l'accesso è consentito solo dal sito SportsWire (tier anonymous, limiti ridotti). Per l'uso programmatico serve una API key.
Rate limit & piani
| Piano | Richieste/min | Limit max | Prezzo |
|---|---|---|---|
| anonymous | 60 | 20 | — |
| free | 120 | 50 | €0 |
| pro | 600 | 100 | €29/mese |
Ogni risposta include gli header X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Al superamento ricevi 429 con Retry-After. Dettagli piani su /prezzi.
GET /api/news
Il feed delle notizie, dalla più recente. Cuore dell'API.
Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
sport | string | filtra per sport (calcio, tennis, basket, motori, volley, nuoto, atletica, rugby, ciclismo, sci, golf) |
q | string | ricerca testo nel titolo |
limit | int | risultati per pagina (max secondo il piano) |
offset | int | paginazione |
Esempio
curl -H "X-API-Key: sk_live_xxx" \ "https://api.sportswire.info/api/news?sport=tennis&limit=3"
const r = await fetch(
"https://api.sportswire.info/api/news?sport=tennis&limit=3",
{ headers: { "X-API-Key": "sk_live_xxx" } }
);
const data = await r.json();
console.log(data.items);import requests
r = requests.get(
"https://api.sportswire.info/api/news",
params={"sport": "tennis", "limit": 3},
headers={"X-API-Key": "sk_live_xxx"},
)
print(r.json()["items"])Risposta
{
"total": 219,
"limit": 3,
"offset": 0,
"items": [
{
"id": 240881,
"title": "...",
"summary": "...",
"sport": "tennis",
"source": "Ubitennis",
"image_url": "https://...",
"published_at": "2026-08-02T09:12:00+00:00",
"slug": "...",
"has_article": true,
"link": "https://..."
}
]
}
GET /api/sports
Elenco degli sport disponibili con il conteggio degli articoli.
{ "sports": [ { "sport": "calcio", "count": 813 }, { "sport": "motori", "count": 350 } ] }
GET /api/me
Informazioni sul piano associato alla tua chiave.
{ "plan": "pro", "rate_per_min": 600, "max_limit": 100, "monthly_cap": 0 }
GET /api/plans
Listino pubblico dei piani (non richiede autenticazione).
GET /api/health
Stato del servizio e numero di articoli/fonti. Aperto, senza autenticazione.
{ "status": "ok", "articles": 2466, "sources": 37 }
Codici di errore
| Codice | Significato |
|---|---|
401 | API key mancante o non valida |
403 | accesso non consentito (origine/UA non valida, o IP bloccato) |
429 | rate limit superato — vedi header Retry-After |
Domande? Scrivici a info@sportswire.info.