Referência API REST
URL base: https://clicaven.com
Todos os pedidos devolvem JSON. A autenticação usa chaves API (Bearer).
Endpoints
Autenticação
A API ClicAven usa chaves API para autenticação. Cada pedido deve incluir a sua chave no cabeçalho Authorization.
Como obter uma chave API
- Inicie sessão na sua conta ClicAven e acceda à página Chaves API
- Atribua um nome à sua chave e clique em Criar
- Copie a chave apresentada — não voltará a estar visível
Headers necessários
Authorization: Bearer ca_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
POST/api/links
Cria um novo link curto. Requer uma chave API válida.
Headers necessários
Authorization: Bearer ca_votre_cle_api
Content-Type: application/json
Body do pedido
{
"url": "https://example.com/une-url-tres-longue",
"title": "Promo Noël LinkedIn",
"customSlug": "promo-noel",
"domainHostname": "go.mon-domaine.com",
"permanent": true
}
O campo title é opcional (120 caracteres no máximo). Serve para reencontrar o link no dashboard e na exportação CSV; nunca é apresentado publicamente.
Campos do link
| Campo | Tipo | Acesso | Descrição |
|---|---|---|---|
url | string | leitura / escrita | URL de destino. Obrigatório. |
title | string|null | leitura / escrita | Rótulo para reencontrar o link no dashboard e na exportação. 120 caracteres no máximo, nunca apresentado publicamente. |
customSlug | string|null | leitura / escrita | Código curto personalizado. Planos Pro e superiores. Gerado automaticamente se omitido. |
domainHostname | string|null | leitura / escrita | Um dos seus domínios personalizados verificados. O domínio predefinido é usado se omitido. |
permanent | boolean | leitura / escrita | true devolve um redirecionamento 301 (permanente), false um 302 (temporário). Por predefinição true. |
id | uuid | apenas leitura | Identificador UUID do link. |
short | string | apenas leitura | Código curto gerado. |
shortUrl | string | apenas leitura | URL curto completo, pronto a partilhar. |
clickCount | integer | apenas leitura | Total de cliques desde a criação. |
createdAt | date-time | apenas leitura | Data de criação. |
O esquema completo e atualizado é publicado em formato OpenAPI 3.1: /api/openapi.json e /api/openapi.yaml. É gerado a partir do código, pelo que é a referência que faz fé.
Resposta (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
}
Exemplo 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
Lista todos os seus links curtos. Requer uma chave API válida.
Exemplo curl
curl -s https://clicaven.com/api/links \
-H "Authorization: Bearer ca_votre_cle_api" | jq .
Resposta (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}
Obtém os detalhes de um link específico, incluindo o contador de cliques.
Exemplo curl
curl -s https://clicaven.com/api/links/01a08b81-78ad-7720-a4c8-3133c7752bb9 \
-H "Authorization: Bearer ca_votre_cle_api" | jq .
Resposta (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 um link. O redirecionamento ficará imediatamente inativo. Esta ação é irreversível.
Exemplo 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 (sucesso, sem body)
6. Códigos de erro
| Código HTTP | Significado | Causa frequente |
|---|---|---|
400 | Bad Request | URL em falta ou inválido no body |
401 | Unauthorized | Chave API ausente, expirada ou inválida |
403 | Forbidden | Acesso a um link de outro utilizador |
404 | Not Found | O ID do link não existe |
429 | Too Many Requests | Quota mensal de links atingida (rate limit) |
500 | Server Error | Erro interno — contacte o suporte via /contact |
Formato de erro
{
"error": "authentication_failed",
"message": "Invalid or expired API key."
}
Exemplos PHP e JavaScript
Não precisa de SDK: a API é uma simples API REST JSON. Eis exemplos prontos a copiar para as linguagens mais comuns.
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 com slug personalizado (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"
}
Os slugs personalizados requerem um plano Pro ou superior. 3 a 60 caracteres, letras, números e hífenes.
Questões sobre a API? Contacte-nos. Consulte também a documentação geral.