Documentation

REST API Reference

The QuietLeaks REST API lets Agency plan users manage links and retrieve status data programmatically. Use it to integrate link health into your CMS, build Zapier/Make automations, or sync link status to your own dashboard.

API access requires the Agency plan ($29/mo). View plans

Authentication

All API requests must include your API key as a Bearer token in the Authorization header. Generate an API key in Dashboard → Settings → API Keys.

Request header
Authorization: Bearer ql_your_api_key_here

Keep your API key secret. Revoke and regenerate keys in the Settings page if compromised.

Base URL

https://quietleaks.com

All endpoints are relative to this base URL. HTTPS only.

Rate limiting

The API is rate-limited per API key. When the limit is exceeded, the API returns 429 Too Many Requests.

PlanRate limit
Agency120 requests / minute

Endpoints

GET/api/v1/links

List all monitored links with their current status and 30-day click counts.

Query parameters

limitintegerMax results to return (default: 100, max: 500)
offsetintegerNumber of results to skip for pagination (default: 0)

Example response

200 OK
{
  "links": [
    {
      "id": "uuid",
      "label": "Best USB Microphone 2026",
      "url": "https://shareasale.com/r/product/1234",
      "proxy_url": "https://quietleaks.com/go/abc123",
      "program": "ShareASale",
      "status": "healthy",
      "last_checked_at": "2026-04-27T08:00:00Z",
      "clicks_30d": 847,
      "created_at": "2026-01-15T10:00:00Z"
    }
  ],
  "total": 142,
  "limit": 100,
  "offset": 0,
  "has_more": true
}
GET/api/v1/links/{id}

Get a single monitored link by its ID, including its current status and 30-day click count.

Example response

200 OK
{
  "id": "uuid",
  "label": "Best USB Microphone 2026",
  "url": "https://shareasale.com/r/product/1234",
  "proxy_url": "https://quietleaks.com/go/abc123",
  "program": "ShareASale",
  "status": "healthy",
  "last_checked_at": "2026-04-27T08:00:00Z",
  "clicks_30d": 847,
  "created_at": "2026-01-15T10:00:00Z"
}

Error codes

CodeNameMeaning
401UnauthorizedMissing or invalid API key
403ForbiddenAPI access requires Agency plan
404Not FoundResource does not exist or belongs to another user
429Too Many RequestsRate limit exceeded — back off and retry
500Internal ErrorServer error — contact support if persistent