list_tracked_links

list_tracked_links MCP tool: the links you bought or placed, with price, purchase date, campaign and how many times LLMs used each one as a source to cite your brand, plus spend and cost per cited link.

Updated 2026-09-24

list_tracked_links lists the links a project tracks in Link Tracking: guest posts, sponsored articles and other netlinking placements. Each row carries what the link cost, when it was bought, its campaign, and how many times an LLM used it as a source in an answer that cites the brand.

The summary object answers the money question in one call: total citations, and for each currency the amount spent, how many paid links got cited, the cost per cited link and the amount spent on links that were never cited.

When to use

Use it when the question is about the return of a netlinking budget: "which links I paid for never got me cited?", "what does a cited link cost me on the Q3 campaign?", "which site should I buy from again?".

A link with a url only counts citations of that exact page, so two articles bought on the same site stay apart. A link with url: null watches the whole domain and counts citations of any page on it. Citations come from the brand attributions of the existing scans: the tool costs no credits.

Input

Field Type Default Description
projectId string (CUID) required Project to query.
cursor string Opaque pagination cursor from a prior pageInfo.nextCursor.
limit integer 20 1 to 100.
filters.campaigns string[] Exact campaign names. Links without a campaign are left out.
filters.cited boolean true keeps links used at least once by an LLM, false keeps links never used.
sortBy enum citations_desc citations_desc, price_desc, purchased_desc, created_desc.

Response

data holds one row per tracked link, pageInfo the usual pagination envelope, and summary the totals over every link matching the filters (not only the current page).

Prices are in cents with their currency. priceCents is null for a free or earned link, and those links are left out of summary.spend. EUR and USD are never converted: spend holds one entry per currency.

{
  "data": [
    {
      "id": "cmufakcce000256it8dwo1sbp",
      "url": "blog-x.fr/guide-seo-local",
      "domain": "blog-x.fr",
      "campaign": "Q3 netlinking",
      "priceCents": 50000,
      "currency": "EUR",
      "purchasedAt": "2026-09-12T00:00:00.000Z",
      "citations": 4,
      "llms": ["CHATGPT", "PERPLEXITY"],
      "promptCount": 3,
      "firstSeenAt": "2026-09-15T08:12:40.000Z",
      "lastSeenAt": "2026-09-23T08:05:11.000Z"
    }
  ],
  "pageInfo": { "hasMore": false, "nextCursor": null, "totalCount": 7 },
  "summary": {
    "citations": 9,
    "spend": [
      {
        "currency": "EUR",
        "spentCents": 124000,
        "links": 6,
        "cited": 4,
        "wastedCents": 42000,
        "costPerCitedCents": 31000
      }
    ]
  }
}

citations counts answers where an LLM used the link to cite the brand, promptCount the distinct prompts behind them. costPerCitedCents is the amount spent divided by the number of cited paid links, null until one is cited. wastedCents is the amount spent on paid links never cited.

Tips and patterns

  • Read summary.spend first: wastedCents against spentCents tells you at a glance how much of the budget has not paid off yet.
  • filters: { cited: false } with sortBy: "price_desc" lists the most expensive links still waiting for a citation. price_desc compares amounts as is, without converting currencies.
  • A freshly bought page can take a few scans to be indexed and cited. Check purchasedAt before calling a link dead.
  • Group by domain in your agent to see which sites deliver across several purchases, then look for new ones with list_backlink_opportunities.

Related tools

You can see where you stand today.

Free trial. Start tracking your AI visibility, no credit card.