Skip to main content
Resend Docs

Search documentation

Type to search this documentation.

On this pageOverview

Retrieve Attachment

GET

/

emails

/

:email_id

/

attachments

/

:attachment_id

Node.js
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',
});
PHP
$resend = Resend::client('re_xxxxxxxxx');

$resend->emails->attachments->get(
  id: '2a0c9ce0-3112-4728-976e-47ddcd16a318',
  emailId: '4ef9a417-02e9-4d39-ad75-9611e0fcc33c'
);
Python
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'
)
Ruby
require 'resend'

Resend.api_key = 're_xxxxxxxxx'

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

import (
	"context"

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

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

	client.Emails.GetAttachmentWithContext(
		context.TODO(),
		"4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
		"2a0c9ce0-3112-4728-976e-47ddcd16a318",
	)
}
Rust
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(())
}
Java
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.emails.model.AttachmentResponse;

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

    AttachmentResponse attachment = resend.emails().getAttachment(
      "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
      "2a0c9ce0-3112-4728-976e-47ddcd16a318"
    );
  }
}
.NET
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
curl -X GET 'https://api.resend.com/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/attachments/2a0c9ce0-3112-4728-976e-47ddcd16a318' \
     -H 'Authorization: Bearer re_xxxxxxxxx'
CLI
resend emails attachment 4ef9a417-02e9-4d39-ad75-9611e0fcc33c 2a0c9ce0-3112-4728-976e-47ddcd16a318
Response
{
  "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"
}

string

required

The Attachment ID.

string

required

The Email ID.

Node.js
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',
});
PHP
$resend = Resend::client('re_xxxxxxxxx');

$resend->emails->attachments->get(
  id: '2a0c9ce0-3112-4728-976e-47ddcd16a318',
  emailId: '4ef9a417-02e9-4d39-ad75-9611e0fcc33c'
);
Python
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'
)
Ruby
require 'resend'

Resend.api_key = 're_xxxxxxxxx'

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

import (
	"context"

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

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

	client.Emails.GetAttachmentWithContext(
		context.TODO(),
		"4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
		"2a0c9ce0-3112-4728-976e-47ddcd16a318",
	)
}
Rust
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(())
}
Java
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.emails.model.AttachmentResponse;

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

    AttachmentResponse attachment = resend.emails().getAttachment(
      "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
      "2a0c9ce0-3112-4728-976e-47ddcd16a318"
    );
  }
}
.NET
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
curl -X GET 'https://api.resend.com/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/attachments/2a0c9ce0-3112-4728-976e-47ddcd16a318' \
     -H 'Authorization: Bearer re_xxxxxxxxx'
CLI
resend emails attachment 4ef9a417-02e9-4d39-ad75-9611e0fcc33c 2a0c9ce0-3112-4728-976e-47ddcd16a318
JSON
{
  "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

Suggest an edit

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

Export
Documentation menu