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"
}
Retrieve Attachment
Retrieve a single attachment from a sent email.
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
The Attachment ID.
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"
}
Was this page helpful?
⌘I