6 min di letturaIngegneria

API gratuita per URL shortener: esempi di codice che funzionano

Un'API gratuita per URL shortener con esempi eseguibili in curl, JavaScript, Python e Go, più la parte onesta: cosa limitano i piani gratuiti e cosa serve in produzione.

Marius Voß
DevRel · edge infra
API gratuita per URL shortener: una richiesta POST con un bearer token che restituisce un link breve, mostrata come terminale accanto a esempi in curl, JavaScript, Python e Go

Un'API gratuita per URL shortener ti permette di creare link brevi da codice invece di cliccare in giro su una dashboard. Invii una richiesta con un URL di destinazione, ricevi indietro un link breve che vi reindirizza. Questo articolo ha esempi eseguibili in curl, JavaScript, Python e Go contro l'API di Elido, che è disponibile nel piano gratuito, più la parte onesta che la maggior parte delle listicle salta: cosa limita davvero "gratuito". Per una guida dedicata a un singolo runtime, con retry, idempotenza e bulk, ce n'è una per ciascuno: Python, JavaScript e Node, PHP, Go, Ruby, Java, C# e PowerShell.

Se non hai mai accorciato un link, come accorciare un URL copre prima la versione manuale. Tutto ciò che segue presuppone che tu voglia farlo in modo programmatico.

Cosa fa un'API shortener

Al suo nucleo l'API è quattro operazioni su una risorsa link: creare, leggere, aggiornare, eliminare. Crei un link inviando un URL di destinazione, e il servizio restituisce un URL breve che si risolve altrove.

Una cosa che confonde le persone: l'host dell'API e l'host di reindirizzamento sono diversi. L'API di Elido vive su https://api.elido.app/v1, mentre i link brevi stessi si risolvono su un dominio di reindirizzamento come s.elido.me. Parli con l'API per gestire i link; i tuoi utenti colpiscono sempre e solo il dominio di reindirizzamento. Mantenere questi due separati è ciò che permette al percorso di reindirizzamento di restare veloce mentre l'API fa il lavoro più pesante.

Autenticati prima

Ogni richiesta reale porta un bearer token nell'header Authorization. Generi il token nelle impostazioni del tuo workspace, lo memorizzi come variabile d'ambiente, e non lo metti mai in codice lato client, perché chiunque abbia il token può creare link sul tuo account.

export ELIDO_TOKEN="your_token_here"

Questo è l'intero modello di autenticazione: un header, Authorization: Bearer $ELIDO_TOKEN, su ogni chiamata. Le API che saltano completamente questo passaggio sono comode per uno script usa e getta, ma non c'è alcun account dietro i link, quindi non puoi elencarli, modificarli, o misurarli in seguito.

Ecco la stessa chiamata di creazione in quattro linguaggi. Ognuna invia un URL di destinazione e stampa l'URL breve dalla risposta.

curl -X POST https://api.elido.app/v1/links \
  -H "Authorization: Bearer $ELIDO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"destination_url": "https://example.com/spring-sale"}'

La risposta è JSON:

{
  "id": "lnk_9aF2xK",
  "short_url": "https://s.elido.me/abc123",
  "destination_url": "https://example.com/spring-sale"
}

JavaScript, usando fetch incorporato:

const res = await fetch("https://api.elido.app/v1/links", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.ELIDO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ destination_url: "https://example.com/spring-sale" }),
});
const link = await res.json();
console.log(link.short_url); // https://s.elido.me/abc123

Python, con requests:

import os
import requests

res = requests.post(
    "https://api.elido.app/v1/links",
    headers={"Authorization": f"Bearer {os.environ['ELIDO_TOKEN']}"},
    json={"destination_url": "https://example.com/spring-sale"},
)
print(res.json()["short_url"])  # https://s.elido.me/abc123

Go, con la libreria standard:

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"net/http"
	"os"
)

func main() {
	body, _ := json.Marshal(map[string]string{
		"destination_url": "https://example.com/spring-sale",
	})
	req, _ := http.NewRequest("POST", "https://api.elido.app/v1/links", bytes.NewReader(body))
	req.Header.Set("Authorization", "Bearer "+os.Getenv("ELIDO_TOKEN"))
	req.Header.Set("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()

	var link struct {
		ShortURL string `json:"short_url"`
	}
	json.NewDecoder(res.Body).Decode(&link)
	fmt.Println(link.ShortURL) // https://s.elido.me/abc123
}
A POST request to the links endpoint with a bearer token and a destination URL in the body, returning a JSON response with the short URL that resolves at the redirect domain

Aggiungi campi opzionali al corpo quando ne hai bisogno: uno slug per una seconda metà personalizzata, tags per l'organizzazione, un domain per scegliere un dominio personalizzato brandizzato, o expires_at per un link che smette di funzionare dopo una data.

Cosa limita davvero "gratuito"

Qui vive il confronto onesto, perché "API gratuita" copre due cose molto diverse.

Gli endpoint senza registrazione e senza autenticazione, quelli che accorciano un URL con un singolo POST non autenticato, sono genuinamente gratuiti e genuinamente limitati. Limiti di frequenza condivisi, nessun account, nessun dominio brandizzato, nessuna analisi, e nessuna promessa che il servizio esista il prossimo trimestre. Va bene per uno script una tantum, rischioso per qualsiasi cosa tu metta in produzione.

Un piano gratuito autenticato è il tipo più utile, e lì la limitazione è prevedibile. Le funzionalità più spesso riservate ai piani a pagamento sono domini personalizzati brandizzati, alto volume di richieste, conservazione più lunga delle analisi, ed endpoint in blocco. Nel piano gratuito di Elido l'API stessa è inclusa, i link si risolvono e vengono tracciati, e i limiti hanno ambito workspace anziché essere condivisi con estranei. Per come si confrontano gli strumenti a pagamento su questo, Dub vs Bitly copre due delle API più conosciute, e puoi iniziare sul piano gratuito per provare quella di Elido.

La regola pratica: se il link è usa e getta, un'API senza autenticazione va bene. Se porta il tuo brand o hai bisogno di misurarlo, usane una autenticata con un dominio che controlli.

Limiti di frequenza e idempotenza

Il numero che davvero ti protegge in produzione non è il limite di frequenza, è l'idempotenza.

Ogni richiesta che modifica accetta un header Idempotency-Key. Invii una chiave unica con una chiamata di creazione, e se la richiesta va in timeout e la ripeti con la stessa chiave, il server restituisce il risultato originale invece di creare un secondo link. Questo è ciò che rende sicuro un ciclo di retry.

curl -X POST https://api.elido.app/v1/links \
  -H "Authorization: Bearer $ELIDO_TOKEN" \
  -H "Idempotency-Key: spring-sale-2026-04-01" \
  -H "Content-Type: application/json" \
  -d '{"destination_url": "https://example.com/spring-sale"}'

L'idempotenza è una proprietà della semantica dei metodi HTTP in RFC 9110, e qualsiasi API su cui fai affidamento per la creazione automatizzata di link dovrebbe supportarla. La trattazione più approfondita, quali codici di stato ripetere e come regolare il ritmo rispetto al limite, è in limiti di frequenza, retry e idempotenza in produzione.

A create request that times out is retried with the same idempotency key, and the server returns the original link instead of creating a duplicate

SDK o HTTP grezzo?

Non devi scrivere manualmente le richieste. Elido pubblica SDK generati dalla sua specifica OpenAPI per TypeScript, Python, Go e altri, e la guida rapida API e SDK illustra come installarli e chiamarli.

Usa un SDK quando vuoi tipi, retry e paginazione gestiti per te. Usa HTTP grezzo, come gli esempi sopra, quando vuoi zero dipendenze o stai chiamando da un linguaggio senza un client ufficiale. Entrambi colpiscono la stessa API REST; l'SDK è solo un percorso più sottile verso di essa.

Correlati sul blog

Domande frequenti

Esiste un'API gratuita per URL shortener?

Sì. Diversi shortener espongono un'API gratuita, incluso Elido, la cui API è disponibile nel piano gratuito. Le differenze che contano sono se ottieni autenticazione, il tuo dominio brandizzato, limiti di frequenza sensati e analisi, oppure solo un endpoint di accorciamento nudo. Un'API giocattolo senza registrazione va bene per uno script, la produzione vuole autenticazione, un dominio che controlli, e uptime.

Come accorcio un URL con un'API?

Invia una richiesta POST autenticata con l'URL di destinazione nel corpo. Con Elido è POST https://api.elido.app/v1/links con un bearer token di Authorization e un corpo JSON di {"destination_url": "..."}. La risposta restituisce l'URL breve, che si risolve al dominio di reindirizzamento. Gli esempi curl, JavaScript, Python e Go in questo articolo fanno esattamente questo.

Ho bisogno di una chiave API per accorciare gli URL?

Per qualsiasi cosa reale, sì. Alcune API gratuite saltano del tutto l'autenticazione, il che è comodo ma significa nessun account, nessuna gestione dei link, nessuna analisi, e limiti di frequenza condivisi con chiunque altro colpisca lo stesso endpoint. Una chiave API o bearer token lega i link al tuo workspace così puoi elencarli, modificarli e misurarli, e il tuo limite di frequenza è tuo.

Quali sono i limiti di frequenza tipici su un'API gratuita di URL shortener?

Variano ampiamente, da circa 100 richieste all'ora su endpoint pubblici senza autenticazione a limiti token-bucket con ambito workspace su API autenticate. Ciò che conta più del numero è se l'API supporta chiavi di idempotenza, così una richiesta ripetuta dopo un timeout non crea un link duplicato. Sicuro nei retry batte un tetto grezzo alto.

Posso usare un'API shortener gratuita con il mio dominio?

Su alcuni piani. Un dominio personalizzato brandizzato è la funzionalità più spesso limitata dietro un livello a pagamento, perché coinvolge la gestione di DNS e certificati. Verifica se il piano gratuito ti permette di puntare almeno un dominio personalizzato, o se i link gratuiti sono bloccati sul dominio condiviso del fornitore. Se un link brandizzato conta, confermalo prima di costruire.

Prova Elido

Incolla un URL, ottieni un link breve

Senza registrazione. Il link vive 30 giorni. Iscriviti per conservarlo.

Gratis, nessuna registrazione richiesta · 2 al giorno

Prova Elido

Accorciatore di URL ospitato nell'UE: domini personalizzati, analisi approfondite e API aperta. Piano gratuito - senza carta di credito.

Tag
free url shortener api
url shortener api
shorten url api
link shortener api
rest api short links
api code examples

Continua a leggere