Skip to main content
Resend Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

List Clicked Links

Retrieve the links clicked in a broadcast.

Retrieve every link clicked in a broadcast, ranked by total clicks. Results are paginated with cursors. See Pagination for how after and before work.

The broadcast ID.

Number of links to return. Between 1 and 100. Defaults to 20.

Cursor to fetch the page after this link. Cannot be used with before.

Cursor to fetch the page before this link. Cannot be used with after.

  • object (string) — Always list.

  • has_more (boolean) — Whether more links exist beyond this page.

  • data (array) — The clicked links, ordered by total clicks, descending.

    properties
    • id (string) — An opaque cursor for this row, used only for pagination. It does not identify any entity in Resend.
    • url (string) — The URL that was clicked.
    • clicks (number) — Total clicks on this link, including repeat clicks by the same recipient.
    • unique_clicks (number) — The number of distinct recipients who clicked this link.
Node.js
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.broadcasts.clickedLinks(
  '559ac32e-9ef5-46fb-82a1-b76b840c0f7b',
  { limit: 20 },
);
PHP
$resend = Resend::client('re_xxxxxxxxx');

$resend->broadcasts->clickedLinks->list('559ac32e-9ef5-46fb-82a1-b76b840c0f7b',[
  'limit' => 20
]);
Python
import resend

resend.api_key = "re_xxxxxxxxx"

resend.Broadcasts.clicked_links(
    id="559ac32e-9ef5-46fb-82a1-b76b840c0f7b",
    params={"limit": 20},
)
Ruby
require "resend"

Resend.api_key = "re_xxxxxxxxx"

Resend::Broadcasts.clicked_links("559ac32e-9ef5-46fb-82a1-b76b840c0f7b", { limit: 20 })
Go
package main

import "github.com/resend/resend-go/v4"

func main() {
	client := resend.NewClient("re_xxxxxxxxx")

	client.Broadcasts.ClickedLinks("559ac32e-9ef5-46fb-82a1-b76b840c0f7b")
}
Rust
use resend_rs::{Resend, Result, list_opts::ListOptions};

#[tokio::main]
async fn main() -> Result<()> {
  let resend = Resend::new("re_xxxxxxxxx");

  let _links = resend
    .broadcasts
    .clicked_links("559ac32e-9ef5-46fb-82a1-b76b840c0f7b", ListOptions::default())
    .await?;

  Ok(())
}
Java
import com.resend.Resend;
import com.resend.services.broadcasts.model.ListBroadcastClickedLinksResponseSuccess;

Resend resend = new Resend("re_xxxxxxxxx");

ListBroadcastClickedLinksResponseSuccess data = resend.broadcasts().clickedLinks("559ac32e-9ef5-46fb-82a1-b76b840c0f7b");
.NET
using Resend;

IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI

var resp = await resend.BroadcastClickedLinksAsync( new Guid( "559ac32e-9ef5-46fb-82a1-b76b840c0f7b" ) );
Console.WriteLine( "Nr Links={0}", resp.Content.Data.Count );
cURL
curl -X GET 'https://api.resend.com/broadcasts/559ac32e-9ef5-46fb-82a1-b76b840c0f7b/clicked-links?limit=20' \
     -H 'Authorization: Bearer re_xxxxxxxxx'
CLI
resend broadcasts clicked-links 559ac32e-9ef5-46fb-82a1-b76b840c0f7b --limit 20
Response
{
  "object": "list",
  "has_more": true,
  "data": [
    {
      "id": "b2Zmc2V0OjA",
      "url": "https://resend.com/pricing",
      "clicks": 42,
      "unique_clicks": 30
    },
    {
      "id": "b2Zmc2V0OjE",
      "url": "https://resend.com/docs",
      "clicks": 17,
      "unique_clicks": 15
    }
  ]
}
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu