FREE

Branded tracked links for agents.

Drop a URL. Ship a short link. Pull click stats from the API — curl, npm CLI, or your agent.

1 · Drop link

2 · Get short

https://lnkgo.app/your-slug

Public short_url after create. Analytics use internal $LINK_ID.

Open playground →

3 · Catch stats

  • lnkgo init — API key once
  • lnkgo analytics — JSON report
  • lnkgo analytics --csv — local CSV (aggregate)

Raw exports → PRO

Full workflow (CLI)
API
https://api.lnkgo.app
Default domain
lnkgo.app
Install
npm install -g lnkgo

5 minute quickstart

Install the CLI, verify your email, and create the first tracked link on the default lnkgo.app domain. You do not pass a domain unless you are using your own verified custom domain.

1

Install and request email code

npm install -g lnkgo
export LNKGO_EMAIL="<your-email>"

lnkgo init --email "$LNKGO_EMAIL"
2

Verify code and store key

export LNKGO_VERIFICATION_CODE="<email-code>"
export LNKGO_API_KEY="$(
  lnkgo init --email "$LNKGO_EMAIL" --code "$LNKGO_VERIFICATION_CODE" \
    | jq -r '.api_key'
)"
3

Create the first link and keep both handles

CREATE_RESULT="$(lnkgo create \
  --url https://example.com/launch \
  --tag product-hunt)"

SHORT_URL="$(printf '%s' "$CREATE_RESULT" | jq -r '.short_url')"
LINK_ID="$(printf '%s' "$CREATE_RESULT" | jq -r '.id')"

printf 'Public short URL: %s\n' "$SHORT_URL"
4

Fetch QR and analytics

# QR and analytics use the internal link id, not the public slug.
lnkgo qr "$LINK_ID" --output lnkgo-qr.png

lnkgo analytics "$LINK_ID" \
  --from '2026-06-01' \
  --to '2026-06-11'

lnkgo analytics "$LINK_ID" \
  --from '2026-06-01' \
  --to '2026-06-11' \
  --csv > report.csv

Demos

Watch the same product surface from three entry points: REST API, npm CLI, and an installed agent skill.

Use cases

Pick a workflow to open CLI, cURL, and an agent prompt. Optional API key stays in your browser for cURL snippets only.

API playground

Preview CLI and cURL for create link, analytics, and QR. Copy-only in v2.0 — no live API calls from the browser yet.

CLI preview
cURL preview

Your API key (optional)

Stored only in this browser (localStorage). Never sent to lnkgo.app servers.

CLI
Agent prompt

Copy into Codex, Claude Code, or Cursor. Does not include your API key.

Prompt

What you can do

Default links on lnkgo.app
Custom domains after DNS proof
PNG QR codes for print and offline flows
Agent skills for Codex, Claude, Cursor, and other IDEs
Safe retries through idempotent creates
Analytics response example

This is the shape returned by `lnkgo analytics` and `GET /v1/links/{link_id}/analytics`. Use `short_url` publicly; use `link_id` for Control API commands.

{
  "link_id": "lnk_your_created_link_id",
  "short_url": "https://lnkgo.app/your-slug",
  "slug": "your-slug",
  "clicks_total": 184,
  "clicks_non_bot": 159,
  "clicks_bot": 25,
  "top_referrers": [
    { "referrer": "producthunt.com", "visits": 82 },
    { "referrer": "news.ycombinator.com", "visits": 31 }
  ],
  "top_countries": [
    { "country": "US", "visits": 96 },
    { "country": "DE", "visits": 18 }
  ],
  "timeseries": [
    { "date": "2026-06-09", "visits": 44 },
    { "date": "2026-06-10", "visits": 72 },
    { "date": "2026-06-11", "visits": 68 }
  ],
  "truncated": false
}

Install the agent skill

npx --yes skills add citedy/lnkgo --skill lnkgo -a codex -g -y
npx --yes skills add citedy/lnkgo --skill lnkgo -a claude-code -g -y
npx --yes skills add citedy/lnkgo --skill lnkgo -a cursor -g -y

# Fallback bundled with the npm CLI:
npx --yes lnkgo skill install --target codex
npx --yes lnkgo skill install --target claude
npx --yes lnkgo skill install --target cursor
npx --yes lnkgo skill install --target project

Custom domain

Use lnkgo.app immediately, then add your own domain when you want branded links for emails, campaigns, support flows, or agent-created outbound URLs.

curl -sS -X POST "https://api.lnkgo.app/v1/domains" \
  -H "Authorization: Bearer $LNKGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"links.example.com"}'

# Add the returned DNS records:
# CNAME links.example.com -> edge.lnkgo.app
# TXT _lnkgo.links.example.com -> lnkgo-verify=...

lnkgo domain status links.example.com

lnkgo create \
  --url https://example.com/pricing \
  --domain links.example.com \
  --tag pricing

Compare

Email verification starts small. DNS proof unlocks the real launch offer: 10 custom domains and 10,000 API-created links, without starting from a marketer dashboard. Click to expand
Capability Lnkgo Short.io Dub Bitly Rebrandly
Free custom domains 10 unlocked by DNS proof 5 on Free 3 on Free Paid Growth plan 1 on Free
Launch free usage 10K API-created links/mo after DNS proof 1K API/bulk links Free link quota not listed; 60 API/min 5 links/mo 10 links/mo; 100 API/min
Launch free analytics 14-day click analytics after DNS proof Detailed stats for first 50K clicks/mo 1K tracked clicks/mo No data history on Free Detailed data on 100 clicks/mo
Workflow CLI, REST API, and agent skill first Dashboard plus API Dashboard plus SDK/API Dashboard-led campaigns Dashboard plus API
Agent safety Idempotent creates and domain status commands API available; dashboard remains primary SDK/API available; app remains primary API exists; campaign UX remains primary API available; branded-link dashboard remains primary
Best for Developers and agents needing generous free automation Teams that want a mature dashboard Partner/referral teams using SDKs and APIs Large teams already on Bitly Teams buying a branded-link suite

Pricing

Starter - Free

Email-verified starter limits are intentionally small before DNS proof: 100 links/month, 10 creates/hour, 1,000 API calls/month, and 1-day analytics. Prove DNS ownership to unlock the launch offer below.

Launch domain verified - Free launch offer

DNS ownership proof unlocks 10 custom domains, 10,000 links/month, 1,000 links/domain/month, 50,000 API calls/month, and 14-day analytics.