tools/integrations/dub-co.md
Link management and attribution platform for modern marketing teams.
| Integration | Available | Notes |
|---|---|---|
| API | ✓ | REST API for links, analytics, domains |
| MCP | - | Not available |
| CLI | - | Not available |
| SDK | ✓ | TypeScript SDK available |
Authorization: Bearer {api_key}POST https://api.dub.co/links
{
"url": "https://example.com/landing-page",
"domain": "link.example.com",
"key": "summer-sale",
"tags": ["campaign:summer", "channel:email"]
}
GET https://api.dub.co/links?domain=link.example.com&key=summer-sale
GET https://api.dub.co/links?domain=link.example.com&page=1
GET https://api.dub.co/analytics?domain=link.example.com&key=summer-sale&interval=30d
GET https://api.dub.co/analytics/country?domain=link.example.com&key=summer-sale
GET https://api.dub.co/analytics/device?domain=link.example.com&key=summer-sale
PATCH https://api.dub.co/links/{link_id}
{
"url": "https://example.com/new-landing-page",
"tags": ["campaign:summer", "channel:social"]
}
DELETE https://api.dub.co/links/{link_id}
POST https://api.dub.co/links/bulk
[
{"url": "https://example.com/page1", "key": "page1"},
{"url": "https://example.com/page2", "key": "page2"}
]
npm install dub
import { Dub } from "dub";
const dub = new Dub({ token: "YOUR_API_KEY" });
// Create link
const link = await dub.links.create({
url: "https://example.com",
domain: "link.example.com"
});
// Get analytics
const analytics = await dub.analytics.retrieve({
domain: "link.example.com",
key: "summer-sale"
});
clicks - Total click countcountry - Clicks by countrycity - Clicks by citydevice - Clicks by device typebrowser - Clicks by browseros - Clicks by operating systemreferer - Clicks by referrer