Skip to main content
GET
/
emails
/
:email_id
/
attachments
/
:attachment_id
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.emails.attachments.get({
  id: '2a0c9ce0-3112-4728-976e-47ddcd16a318',
  emailId: '4ef9a417-02e9-4d39-ad75-9611e0fcc33c',
});
$resend = Resend::client('re_xxxxxxxxx');

$resend->emails->attachments->get(
  id: '2a0c9ce0-3112-4728-976e-47ddcd16a318',
  emailId: '4ef9a417-02e9-4d39-ad75-9611e0fcc33c'
);
import resend

resend.api_key = 're_xxxxxxxxx'

attachment = resend.Emails.Attachments.get(
  email_id='4ef9a417-02e9-4d39-ad75-9611e0fcc33c',
  attachment_id='2a0c9ce0-3112-4728-976e-47ddcd16a318'
)
require 'resend'

Resend.api_key = 're_xxxxxxxxx'

Resend::Emails::Attachments.get(
  id: "2a0c9ce0-3112-4728-976e-47ddcd16a318",
  email_id: "4ef9a417-02e9-4d39-ad75-9611e0fcc33c"
)
import (
	"context"

	"github.com/resend/resend-go/v3"
)

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

	client.Emails.GetAttachmentWithContext(
		context.TODO(),
		"4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
		"2a0c9ce0-3112-4728-976e-47ddcd16a318",
	)
}
use resend_rs::{Resend, Result};

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

  let _email = resend
    .emails
    .get_attachment(
      "2a0c9ce0-3112-4728-976e-47ddcd16a318",
      "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
    )
    .await?;

  Ok(())
}
import com.resend.*;

public class Main {
  public static void main(String[] args) {
    Resend resend = new Resend("re_xxxxxxxxx");

    AttachmentResponse attachment = resend.emails().getAttachment(
      "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
      "2a0c9ce0-3112-4728-976e-47ddcd16a318"
    );
  }
}
using Resend;

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

var resp = await resend.EmailAttachmentRetrieveAsync(
  emailId: new Guid( "4ef9a417-02e9-4d39-ad75-9611e0fcc33c" ),
  attachmentId: new Guid( "2a0c9ce0-3112-4728-976e-47ddcd16a318" )
);
Console.WriteLine( "URL={0}", resp.Content.DownloadUrl );
curl -X GET 'https://api.resend.com/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/attachments/2a0c9ce0-3112-4728-976e-47ddcd16a318' \
     -H 'Authorization: Bearer re_xxxxxxxxx'
resend emails attachment 4ef9a417-02e9-4d39-ad75-9611e0fcc33c 2a0c9ce0-3112-4728-976e-47ddcd16a318
{
  "object": "attachment",
  "id": "2a0c9ce0-3112-4728-976e-47ddcd16a318",
  "filename": "avatar.png",
  "size": 4096,
  "content_type": "image/png",
  "content_disposition": "inline",
  "content_id": "img001",
  "download_url": "https://outbound-cdn.resend.com/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/attachments/2a0c9ce0-3112-4728-976e-47ddcd16a318?some-params=example&signature=sig-123",
  "expires_at": "2026-10-17T14:29:41.521Z"
}

Path Parameters

id
string
required
The Attachment ID.
email_id
string
required
The Email ID.
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.emails.attachments.get({
  id: '2a0c9ce0-3112-4728-976e-47ddcd16a318',
  emailId: '4ef9a417-02e9-4d39-ad75-9611e0fcc33c',
});
$resend = Resend::client('re_xxxxxxxxx');

$resend->emails->attachments->get(
  id: '2a0c9ce0-3112-4728-976e-47ddcd16a318',
  emailId: '4ef9a417-02e9-4d39-ad75-9611e0fcc33c'
);
import resend

resend.api_key = 're_xxxxxxxxx'

attachment = resend.Emails.Attachments.get(
  email_id='4ef9a417-02e9-4d39-ad75-9611e0fcc33c',
  attachment_id='2a0c9ce0-3112-4728-976e-47ddcd16a318'
)
require 'resend'

Resend.api_key = 're_xxxxxxxxx'

Resend::Emails::Attachments.get(
  id: "2a0c9ce0-3112-4728-976e-47ddcd16a318",
  email_id: "4ef9a417-02e9-4d39-ad75-9611e0fcc33c"
)
import (
	"context"

	"github.com/resend/resend-go/v3"
)

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

	client.Emails.GetAttachmentWithContext(
		context.TODO(),
		"4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
		"2a0c9ce0-3112-4728-976e-47ddcd16a318",
	)
}
use resend_rs::{Resend, Result};

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

  let _email = resend
    .emails
    .get_attachment(
      "2a0c9ce0-3112-4728-976e-47ddcd16a318",
      "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
    )
    .await?;

  Ok(())
}
import com.resend.*;

public class Main {
  public static void main(String[] args) {
    Resend resend = new Resend("re_xxxxxxxxx");

    AttachmentResponse attachment = resend.emails().getAttachment(
      "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
      "2a0c9ce0-3112-4728-976e-47ddcd16a318"
    );
  }
}
using Resend;

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

var resp = await resend.EmailAttachmentRetrieveAsync(
  emailId: new Guid( "4ef9a417-02e9-4d39-ad75-9611e0fcc33c" ),
  attachmentId: new Guid( "2a0c9ce0-3112-4728-976e-47ddcd16a318" )
);
Console.WriteLine( "URL={0}", resp.Content.DownloadUrl );
curl -X GET 'https://api.resend.com/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/attachments/2a0c9ce0-3112-4728-976e-47ddcd16a318' \
     -H 'Authorization: Bearer re_xxxxxxxxx'
resend emails attachment 4ef9a417-02e9-4d39-ad75-9611e0fcc33c 2a0c9ce0-3112-4728-976e-47ddcd16a318
{
  "object": "attachment",
  "id": "2a0c9ce0-3112-4728-976e-47ddcd16a318",
  "filename": "avatar.png",
  "size": 4096,
  "content_type": "image/png",
  "content_disposition": "inline",
  "content_id": "img001",
  "download_url": "https://outbound-cdn.resend.com/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/attachments/2a0c9ce0-3112-4728-976e-47ddcd16a318?some-params=example&signature=sig-123",
  "expires_at": "2026-10-17T14:29:41.521Z"
}