lyz.bz

API REST di lyz.bz

Con l’API crei e gestisci i link dai tuoi programmi: gestionali, CRM, e-commerce, automazioni (Zapier, Make, n8n). Disponibile dal piano Pro.

Crea una chiave API

Autenticazione

Crea una chiave nella sezione API della dashboard e mandala nell’intestazione Authorization di ogni richiesta. Le chiavi non scadono: revocale dalla dashboard se non servono più.

Authorization: Bearer lyz_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Endpoint

POST/api/v1/linksCrea un link. Corpo: url (obbligatorio), slug, domain, title, password, expires_at (ISO 8601).
GET/api/v1/links?limit=100Elenco dei link dal più recente, con i clic totali (massimo 500).
GET/api/v1/links/{id}Un link con i clic totali. L’id è l’alias per lyz.bz, dominio:alias per i domini personalizzati.
PATCH/api/v1/links/{id}Modifica url, title, password, remove_password, expires_at (null = nessuna scadenza).
DELETE/api/v1/links/{id}Elimina link, QR code e statistiche. Risponde 204.
GET/api/v1/links/{id}/stats?days=30Clic, visitatori unici e scansioni per giorno; orari, paesi, dispositivi, sistemi, browser, provenienza. days: 7, 30, 90, 365.
GET/api/v1/domainsDomini personalizzati dell’account e loro stato.

POST /api/v1/links

curl -X POST https://lyz.bz/api/v1/links \
  -H "Authorization: Bearer $LYZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/summer?utm_source=newsletter", "slug": "summer", "title": "Summer sale"}'
HTTP/1.1 201 Created
{
  "data": {
    "id": "summer",
    "short_url": "https://lyz.bz/summer",
    "domain": null,
    "slug": "summer",
    "url": "https://example.com/summer?utm_source=newsletter",
    "title": "Summer sale",
    "password_protected": false,
    "expires_at": null,
    "suspended": false,
    "created_at": "2026-11-12T10:00:00.000Z",
    "updated_at": "2026-11-12T10:00:00.000Z",
    "clicks": 0
  }
}

GET /api/v1/links/summer/stats?days=7

{
  "data": {
    "days": 7,
    "totals": { "clicks": 412, "qr": 96, "visitors": 351 },
    "daily": [{ "day": "2026-11-06", "clicks": 51, "qr": 12, "visitors": 44 }, …],
    "hours": [3, 1, 0, …],
    "countries": { "IT": 380, "CH": 21, "DE": 11 },
    "devices": { "mobile": 301, "desktop": 104, "tablet": 7 },
    "os": { "iOS": 170, "Android": 131, "Windows": 64, "macOS": 47 },
    "browsers": { "Safari": 160, "Chrome": 190, "Instagram": 41, "Firefox": 21 },
    "referrers": { "instagram.com": 140, "qr": 96, "direct": 120, "newsletter.example": 56 }
  }
}

Limiti

Pro: 1000 richieste al giorno; Business: 20.000. Oltre il limite la risposta è 429. I nuovi link contano nella quota mensile del piano.

Errori

Gli errori rispondono con un codice HTTP e un JSON { "error": "codice" }.

401missing_api_key, invalid_api_key
403plan_required, plan_protect, plan_edit
404not_found
409slug_taken, slug_reserved
422invalid_request, invalid_url, blocked_url, slug_invalid, domain_invalid, expiry_invalid
429rate_limited, monthly_quota_exceeded
503edge, stats_unavailable
API REST di lyz.bz · lyz.bz