LinkVault Pro

Getting Started

Base URL

https://api.linkvaultpro.com/v1

Authentication

All requests use a Bearer token in the Authorization header.

Authorization: Bearer lv_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Rate limits

PlanRequests / minRequests / day
Free301,000
Pro12050,000
Business600500,000

QR Codes API

GET
/v1/qr-codes

List all QR codes.

Example

curl https://api.linkvaultpro.com/v1/qr-codes -H "Authorization: Bearer $LV_KEY"
POST
/v1/qr-codes

Create QR code.

Parameters

NameTypeRequiredDescription
link_iduuidyesAssociated link

Example

curl -X POST https://api.linkvaultpro.com/v1/qr-codes -H "Authorization: Bearer $LV_KEY" -d '{"link_id":"..."}'
GET
/v1/qr-codes/:id

Retrieve a single QR code.

Example

curl https://api.linkvaultpro.com/v1/qr-codes/ID -H "Authorization: Bearer $LV_KEY"
PATCH
/v1/qr-codes/:id

Update QR code style.

Example

curl -X PATCH https://api.linkvaultpro.com/v1/qr-codes/ID -H "Authorization: Bearer $LV_KEY" -d '{"style":{}}'
DELETE
/v1/qr-codes/:id

Delete QR code.

Example

curl -X DELETE https://api.linkvaultpro.com/v1/qr-codes/ID -H "Authorization: Bearer $LV_KEY"

Analytics API

GET
/v1/analytics/overview

Workspace-wide analytics overview.

Parameters

NameTypeRequiredDescription
fromISO8601noStart date
toISO8601noEnd date

Example

curl "https://api.linkvaultpro.com/v1/analytics/overview?from=2025-01-01" -H "Authorization: Bearer $LV_KEY"
GET
/v1/analytics/links/:id

Detailed link analytics.

Example

curl https://api.linkvaultpro.com/v1/analytics/links/ID -H "Authorization: Bearer $LV_KEY"

Webhooks

Events

EventDescription
link.createdA new link was created
link.clickedA link was visited
qr.scannedA QR code was scanned
link.expiredA link reached its expiration date

Payload

{
  "id": "evt_xxx",
  "type": "link.clicked",
  "created_at": "2025-01-01T12:00:00Z",
  "data": {
    "link_id": "uuid",
    "short_code": "abc123",
    "country": "US",
    "device": "mobile"
  }
}

HMAC signature verification

Every webhook request includes X-LV-Signature. Verify with your webhook secret:

# HMAC SHA-256 verification (bash)
body=$(cat)
expected=$(echo -n "$body" | openssl dgst -sha256 -hmac "$WEBHOOK_SECRET" -hex | sed 's/^.* //')
[ "$expected" = "$SIGNATURE" ] && echo "ok" || echo "fail"