Skip to main content
Analytics endpoints require a Pro plan subscription or higher.
Links data allows you to analyze how individual links and link collections are performing across your workspace. The top links by event count.
import { Dub } from "dub";

export const dub = new Dub({
  token: process.env.DUB_API_KEY,
});

const result = await dub.analytics.retrieve({
  event: "sales",
  groupBy: "top_links",
  interval: "30d",
  // saleType: "new" // Optional: filter by new or recurring sales
});
You can also filter analytics for a specific link (or set of links) by passing the linkId parameter. It supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with -).
import { Dub } from "dub";

export const dub = new Dub({
  token: process.env.DUB_API_KEY,
});

const result = await dub.analytics.retrieve({
  event: "sales",
  groupBy: "top_links",
  linkId: "-fold_xxx...",
  interval: "30d",
  // saleType: "new" // Optional: filter by new or recurring sales
});
The top link folders by event count, including folder names and IDs.
import { Dub } from "dub";

export const dub = new Dub({
  token: process.env.DUB_API_KEY,
});

const result = await dub.analytics.retrieve({
  event: "sales",
  groupBy: "top_folders",
  interval: "30d",
  // saleType: "new" // Optional: filter by new or recurring sales
});
You can also filter analytics for a specific folder (or set of folders) by passing the folderId parameter. It supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with -).
import { Dub } from "dub";

export const dub = new Dub({
  token: process.env.DUB_API_KEY,
});

const result = await dub.analytics.retrieve({
  event: "sales",
  groupBy: "top_links",
  folderId: "fold_xxx...",
  interval: "30d",
  // saleType: "new" // Optional: filter by new or recurring sales
});
The top link tags by event count, including tag names and IDs.
import { Dub } from "dub";

export const dub = new Dub({
  token: process.env.DUB_API_KEY,
});

const result = await dub.analytics.retrieve({
  event: "sales",
  groupBy: "top_link_tags",
  interval: "30d",
  // saleType: "new" // Optional: filter by new or recurring sales
});
You can also filter analytics by one or more tags by passing the tagIds parameter. It supports advanced filtering: single value, multiple values, or exclusion (prefix with -).
import { Dub } from "dub";

export const dub = new Dub({
  token: process.env.DUB_API_KEY,
});

const result = await dub.analytics.retrieve({
  event: "sales",
  groupBy: "top_links",
  tagId: ["tag_12345", "-tag_67890"],
  interval: "30d",
  // saleType: "new" // Optional: filter by new or recurring sales
});