Riferimento API REST

URL base: https://clicaven.com

Tutte le richieste restituiscono JSON. L'autenticazione usa chiavi API (Bearer).

OpenAPI : Scarica lo schema OpenAPI (JSON) — Importabile in Postman, Insomnia o qualsiasi strumento compatibile OpenAPI 3.

Autenticazione

L'API ClicAven usa chiavi API per l'autenticazione. Ogni richiesta deve includere la tua chiave nell'header Authorization.

Come ottenere una chiave API
  1. Accedi al tuo account ClicAven e vai alla pagina Chiavi API
  2. Assegna un nome alla tua chiave e clicca su Crea
  3. Copia la chiave visualizzata — non sarà più visibile in seguito
Header richiesti
Authorization: Bearer ca_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Le chiavi API non scadono per impostazione predefinita. Puoi revocarle in qualsiasi momento dalla pagina Chiavi API. L'accesso API è incluso in tutti i piani, compreso il piano gratuito.

POST/api/links

Crea un nuovo link breve. Richiede una chiave API valida.

Header richiesti
Authorization: Bearer ca_votre_cle_api
Content-Type: application/json
Body della richiesta
{
  "url": "https://example.com/une-url-tres-longue",
  "title": "Promo Noël LinkedIn",
  "customSlug": "promo-noel",
  "domainHostname": "go.mon-domaine.com",
  "permanent": true
}

Il campo title è opzionale (massimo 120 caratteri). Serve a ritrovare il link nella dashboard e nell'esportazione CSV; non viene mai mostrato pubblicamente.

Campi del link
Campo Tipo Accesso Descrizione
urlstringlettura / scritturaURL di destinazione. Obbligatorio.
titlestring|nulllettura / scritturaEtichetta per ritrovare il link nella dashboard e nell'esportazione. Massimo 120 caratteri, mai mostrata pubblicamente.
customSlugstring|nulllettura / scritturaCodice breve personalizzato. Piani Pro e superiori. Generato automaticamente se omesso.
domainHostnamestring|nulllettura / scritturaUno dei tuoi domini personalizzati verificati. Se omesso viene usato il dominio predefinito.
permanentbooleanlettura / scritturatrue restituisce un reindirizzamento 301 (permanente), false un 302 (temporaneo). Predefinito true.
iduuidsola letturaIdentificativo UUID del link.
shortstringsola letturaCodice breve generato.
shortUrlstringsola letturaURL breve completo, pronto da condividere.
clickCountintegersola letturaTotale dei clic dalla creazione.
createdAtdate-timesola letturaData di creazione.

Lo schema completo e aggiornato è pubblicato in formato OpenAPI 3.1: /api/openapi.json e /api/openapi.yaml. È generato dal codice, quindi fa fede.

Risposta (201 Created)
{
  "@context": "/api/contexts/Link",
  "@id": "/api/links/01a08b81-78ad-7720-a4c8-3133c7752bb9",
  "@type": "Link",
  "id": "01a08b81-78ad-7720-a4c8-3133c7752bb9",
  "url": "https://example.com/une-url-tres-longue",
  "short": "aB3xYz",
  "shortUrl": "https://clicaven.com/aB3xYz",
  "title": "Promo Noël LinkedIn",
  "clickCount": 0,
  "createdAt": "2026-04-18T12:00:00+00:00",
  "permanent": true,
  "domainHostname": null
}
Esempio curl
curl -s -X POST https://clicaven.com/api/links \
  -H "Authorization: Bearer ca_votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/page-longue?utm_source=api","title":"Campagne API"}'

GET/api/links

Elenca tutti i tuoi link brevi. Richiede una chiave API valida.

Esempio curl
curl -s https://clicaven.com/api/links \
  -H "Authorization: Bearer ca_votre_cle_api" | jq .
Risposta (200 OK)
{
  "@context": "/api/contexts/Link",
  "@id": "/api/links",
  "@type": "Collection",
  "totalItems": 1,
  "member": [
    {
      "@id": "/api/links/01a08b81-78ad-7720-a4c8-3133c7752bb9",
      "@type": "Link",
      "id": "01a08b81-78ad-7720-a4c8-3133c7752bb9",
      "url": "https://example.com/page-longue",
      "short": "aB3xYz",
      "shortUrl": "https://clicaven.com/aB3xYz",
      "title": "Promo Noël LinkedIn",
      "clickCount": 14,
      "createdAt": "2026-04-18T12:00:00+00:00",
      "permanent": true,
      "domainHostname": null
    }
  ]
}

GET/api/links/{id}

Recupera i dettagli di un link specifico, incluso il contatore di clic.

Esempio curl
curl -s https://clicaven.com/api/links/01a08b81-78ad-7720-a4c8-3133c7752bb9 \
  -H "Authorization: Bearer ca_votre_cle_api" | jq .
Risposta (200 OK)
{
  "@context": "/api/contexts/Link",
  "@id": "/api/links/01a08b81-78ad-7720-a4c8-3133c7752bb9",
  "@type": "Link",
  "id": "01a08b81-78ad-7720-a4c8-3133c7752bb9",
  "url": "https://example.com/page-longue",
  "short": "aB3xYz",
  "shortUrl": "https://clicaven.com/aB3xYz",
  "title": "Promo Noël LinkedIn",
  "clickCount": 14,
  "createdAt": "2026-04-18T12:00:00+00:00",
  "permanent": true,
  "domainHostname": null
}

DELETE/api/links/{id}

Elimina definitivamente un link. Il reindirizzamento sarà immediatamente inattivo. Questa azione è irreversibile.

Esempio curl
curl -s -X DELETE https://clicaven.com/api/links/01a08b81-78ad-7720-a4c8-3133c7752bb9 \
  -H "Authorization: Bearer ca_votre_cle_api"
# → 204 No Content (successo, nessun body)

6. Codici di errore

Codice HTTP Significato Causa frequente
400Bad RequestURL mancante o non valido nel body
401UnauthorizedChiave API mancante, scaduta o non valida
403ForbiddenAccesso a un link di un altro utente
404Not FoundL'ID del link non esiste
429Too Many RequestsQuota mensile di link raggiunta (rate limit)
500Server ErrorErrore interno — contatta il supporto via /contact
Formato errore
{
  "error": "authentication_failed",
  "message": "Invalid or expired API key."
}

Esempi PHP & JavaScript

Non è necessario alcun SDK: l'API è una semplice API REST JSON. Ecco esempi copia-incolla per i linguaggi più comuni.

PHP
<?php
// ClicAven API — PHP example (no SDK needed)
$apiKey = 'ca_votre_cle_api';
$url    = 'https://example.com/une-url-tres-longue';

$ch = curl_init('https://clicaven.com/api/links');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['url' => $url]),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

echo $response['shortUrl'];
// => https://clicaven.com/aB3xYz
JavaScript (Node.js / fetch)
const API_KEY = 'ca_votre_cle_api';

const res = await fetch('https://clicaven.com/api/links', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ url: 'https://example.com/une-url-tres-longue' }),
});

const link = await res.json();
console.log(link.shortUrl);
// => https://clicaven.com/aB3xYz
Link con slug personalizzato (Pro+)
curl -s -X POST https://clicaven.com/api/links \
  -H "Authorization: Bearer ca_votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/promo","customSlug":"ma-promo"}'
{
  "id": 43,
  "short": "rT9kWm",
  "customSlug": "ma-promo",
  "shortUrl": "https://clicaven.com/ma-promo",
  "url": "https://example.com/promo",
  "clickCount": 0,
  "createdAt": "2026-04-25T14:00:00+00:00"
}

Gli slug personalizzati richiedono un piano Pro o superiore. Da 3 a 60 caratteri, lettere, cifre e trattini.

Domande sull'API? Contattateci. Vedi anche la documentazione generale.