API
Créez et gérez des liens courts depuis vos scripts et vos applications. L'API est gratuite. Créez une clé dans votre tableau de bord, sous Clés API, puis envoyez-la comme jeton bearer.
Authentification
Authorization: Bearer gz_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Les clés ne sont affichées qu'une fois. Traitez-les comme des mots de passe : quiconque possède votre clé peut créer et modifier des liens dans votre compte. Révoquez une clé divulguée depuis le tableau de bord.
Limites
- 60 requêtes par minute et par clé.
- 500 nouveaux liens par jour et par compte.
- Les destinations sont vérifiées avec Google Safe Browsing et notre liste de blocage. D'autres raccourcisseurs de liens ne peuvent pas servir de destination.
Créer un lien
curl -X POST https://gozi.to/api/my/links \
-H "Authorization: Bearer $GOZI_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/launch", "code": "launch"}'
code est facultatif (4 à 32 lettres, chiffres, - ou _). Omettez-le pour obtenir un code aléatoire de 7 caractères. Réponse 201 :
{
"link": {
"code": "launch",
"shortUrl": "https://gozi.to/launch",
"url": "https://example.com/launch",
"status": "active",
"statusReason": null,
"custom": true,
"createdAt": 1790000000000,
"expiresAt": null
}
}
Lister les liens
GET /api/my/links?limit=25&cursor=<nextCursor>&q=<search>&clicks=1
Les plus récents d'abord. Transmettez le nextCursor de la page précédente pour obtenir la suivante. clicks=1 ajoute le nombre de clics humains depuis toujours.
Lire, modifier, supprimer
GET /api/my/links/{code}
PATCH /api/my/links/{code} {"url": "https://new.example"} or {"status": "disabled" | "active"}
DELETE /api/my/links/{code}
Statistiques
GET /api/my/links/{code}/stats
Renvoie les clics humains des 90 derniers jours et depuis toujours, les clics par jour, ainsi que les principaux pays, référents, appareils, navigateurs et systèmes d'exploitation. Les bots et les aperçus de liens (Slack, WhatsApp, etc.) sont comptés à part dans botClicks. Les résultats sont mis en cache pendant environ 5 minutes.
Erreurs
Les erreurs utilisent les codes de statut HTTP et un corps JSON :
{ "error": { "code": "slug_taken", "message": "That custom link is already taken." } }
400entrée invalide (invalid_url,invalid_slug, …)401clé manquante, invalide ou révoquée409lien personnalisé déjà pris422destination non autorisée (destination_blocked)429limite de débit ou limite quotidienne atteinte
Une description lisible par machine de chaque point de terminaison se trouve sur /openapi.json.
