Référence API

Tout ce qu’il faut pour authentifier les requêtes, créer des liens courts et lire l’usage de votre espace Urlivo.

Authentification Bearer

Authentifiez chaque requête avec une clé API dans l’en-tête Authorization.

Limites selon l’offre

L’accès API, le nombre de clés et les limites horaires dépendent de l’offre liée à votre espace.

JSON en entrée, JSON en sortie

Envoyez du JSON pour les actions d’écriture et recevez des réponses JSON avec des objets meta et error cohérents.

En-tête d’authentification

Authorization: Bearer YOUR_API_KEY

Exemple de réponse status

{
    "data": {
        "name": "Urlivo",
        "version": "v1",
        "docs_url": "https://urlivo.com/developers/api",
        "user": {
            "id": "u_123",
            "email": "hello@example.com",
            "name": "Jane Doe"
        }
    },
    "meta": {}
}

Endpoints

La première version de l’API se concentre sur la création, la gestion des liens, l’usage de l’espace et les domaines.

GET Obtenir le statut API
/api/v1/status
curl -X GET \
  https://urlivo.com/api/v1/status \
  -H "Authorization: Bearer YOUR_API_KEY"
GET Obtenir l’usage de l’espace
/api/v1/me/usage
curl -X GET \
  https://urlivo.com/api/v1/me/usage \
  -H "Authorization: Bearer YOUR_API_KEY"
GET Lister les liens
/api/v1/links
curl -X GET \
  "https://urlivo.com/api/v1/links?status=active&sort=newest" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST Créer un lien
/api/v1/links
curl -X POST \
  https://urlivo.com/api/v1/links \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target_url": "https://example.com/campaign",
    "slug": "spring24",
    "title": "Spring campaign",
    "domain": "urlivo.com"
  }'
GET Lire un lien
/api/v1/links/{id}
curl -X GET \
  https://urlivo.com/api/v1/links/l_ab12cd34 \
  -H "Authorization: Bearer YOUR_API_KEY"
PATCH Mettre à jour un lien
/api/v1/links/{id}
curl -X PATCH \
  https://urlivo.com/api/v1/links/l_ab12cd34 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Spring campaign 2026",
    "status": "disabled"
  }'
DELETE Supprimer un lien
/api/v1/links/{id}
curl -X DELETE \
  https://urlivo.com/api/v1/links/l_ab12cd34 \
  -H "Authorization: Bearer YOUR_API_KEY"
GET Lister les domaines disponibles
/api/v1/domains
curl -X GET \
  https://urlivo.com/api/v1/domains \
  -H "Authorization: Bearer YOUR_API_KEY"

Exemple de réponse de liste

{
    "data": [
        {
            "id": "l_ab12cd34",
            "short_url": "https://urlivo.com/spring24",
            "domain": "urlivo.com",
            "domain_type": "system",
            "slug": "spring24",
            "title": "Spring campaign",
            "target_url": "https://example.com/campaign",
            "status": "active",
            "clicks": 42,
            "expires_at": "",
            "created_at": "2026-03-09 10:00:00",
            "updated_at": "2026-03-09 10:00:00"
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 20,
        "total": 1,
        "has_more": false
    }
}

Exemple de réponse d’erreur

{
    "error": {
        "code": "invalid_url",
        "message": "Please enter a valid URL starting with http:// or https://.",
        "status": 422,
        "meta": {}
    }
}

Notes d’implémentation