import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.templates.list({
limit: 2,
after: '34a080c9-b17d-4187-ad80-5af20266e535',
});
$resend = Resend::client('re_xxxxxxxxx');
$resend->templates->list([
'limit' => 2,
'after' => '34a080c9-b17d-4187-ad80-5af20266e535'
]);
import resend
resend.api_key = "re_xxxxxxxxx"
resend.Templates.list({
"limit": 2,
"after": "34a080c9-b17d-4187-ad80-5af20266e535",
})
require "resend"
Resend.api_key = "re_xxxxxxxxx"
Resend::Templates.list(
limit: 2,
after: "34a080c9-b17d-4187-ad80-5af20266e535"
)
import (
"context"
"github.com/resend/resend-go/v3"
)
func main() {
client := resend.NewClient("re_xxxxxxxxx")
client.Templates.ListWithContext(context.TODO(), &resend.ListOptions{
Limit: 2,
After: "34a080c9-b17d-4187-ad80-5af20266e535",
})
}
use resend_rs::{list_opts::ListOptions, Resend, Result};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let list_opts = ListOptions::default()
.with_limit(2)
.list_after("34a080c9-b17d-4187-ad80-5af20266e535");
let _list = resend.templates.list(list_opts).await?;
Ok(())
}
import com.resend.*;
public class Main {
public static void main(String[] args) {
Resend resend = new Resend("re_xxxxxxxxx");
ListParams params = ListParams.builder()
.limit(2)
.after("34a080c9-b17d-4187-ad80-5af20266e535")
.build();
ListTemplatesResponseSuccess data = resend.templates().list(params);
}
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.TemplateListAsync();
Console.WriteLine( "Nr Templates={0}", resp.Content.Data.Count );
curl -X GET 'https://api.resend.com/templates?limit=2&after=34a080c9-b17d-4187-ad80-5af20266e535' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json'
resend templates list
{
"object": "list",
"data": [
{
"id": "e169aa45-1ecf-4183-9955-b1499d5701d3",
"name": "reset-password",
"status": "draft",
"published_at": null,
"created_at": "2026-10-06 23:47:56.678+00",
"updated_at": "2026-10-06 23:47:56.678+00",
"alias": "reset-password"
},
{
"id": "b7f9c2e1-1234-4abc-9def-567890abcdef",
"name": "welcome-message",
"status": "published",
"published_at": "2026-10-06 23:47:56.678+00",
"created_at": "2026-10-06 23:47:56.678+00",
"updated_at": "2026-10-06 23:47:56.678+00",
"alias": "welcome-message"
}
],
"has_more": false
}
List Templates
List all templates.
GET
/
templates
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.templates.list({
limit: 2,
after: '34a080c9-b17d-4187-ad80-5af20266e535',
});
$resend = Resend::client('re_xxxxxxxxx');
$resend->templates->list([
'limit' => 2,
'after' => '34a080c9-b17d-4187-ad80-5af20266e535'
]);
import resend
resend.api_key = "re_xxxxxxxxx"
resend.Templates.list({
"limit": 2,
"after": "34a080c9-b17d-4187-ad80-5af20266e535",
})
require "resend"
Resend.api_key = "re_xxxxxxxxx"
Resend::Templates.list(
limit: 2,
after: "34a080c9-b17d-4187-ad80-5af20266e535"
)
import (
"context"
"github.com/resend/resend-go/v3"
)
func main() {
client := resend.NewClient("re_xxxxxxxxx")
client.Templates.ListWithContext(context.TODO(), &resend.ListOptions{
Limit: 2,
After: "34a080c9-b17d-4187-ad80-5af20266e535",
})
}
use resend_rs::{list_opts::ListOptions, Resend, Result};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let list_opts = ListOptions::default()
.with_limit(2)
.list_after("34a080c9-b17d-4187-ad80-5af20266e535");
let _list = resend.templates.list(list_opts).await?;
Ok(())
}
import com.resend.*;
public class Main {
public static void main(String[] args) {
Resend resend = new Resend("re_xxxxxxxxx");
ListParams params = ListParams.builder()
.limit(2)
.after("34a080c9-b17d-4187-ad80-5af20266e535")
.build();
ListTemplatesResponseSuccess data = resend.templates().list(params);
}
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.TemplateListAsync();
Console.WriteLine( "Nr Templates={0}", resp.Content.Data.Count );
curl -X GET 'https://api.resend.com/templates?limit=2&after=34a080c9-b17d-4187-ad80-5af20266e535' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json'
resend templates list
{
"object": "list",
"data": [
{
"id": "e169aa45-1ecf-4183-9955-b1499d5701d3",
"name": "reset-password",
"status": "draft",
"published_at": null,
"created_at": "2026-10-06 23:47:56.678+00",
"updated_at": "2026-10-06 23:47:56.678+00",
"alias": "reset-password"
},
{
"id": "b7f9c2e1-1234-4abc-9def-567890abcdef",
"name": "welcome-message",
"status": "published",
"published_at": "2026-10-06 23:47:56.678+00",
"created_at": "2026-10-06 23:47:56.678+00",
"updated_at": "2026-10-06 23:47:56.678+00",
"alias": "welcome-message"
}
],
"has_more": false
}
By default, the API will return the most recent 20 templates. You can optionally use the
limit parameter to return a different number of templates or control the pagination of the results with the after or before parameters.
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.templates.list({
limit: 2,
after: '34a080c9-b17d-4187-ad80-5af20266e535',
});
$resend = Resend::client('re_xxxxxxxxx');
$resend->templates->list([
'limit' => 2,
'after' => '34a080c9-b17d-4187-ad80-5af20266e535'
]);
import resend
resend.api_key = "re_xxxxxxxxx"
resend.Templates.list({
"limit": 2,
"after": "34a080c9-b17d-4187-ad80-5af20266e535",
})
require "resend"
Resend.api_key = "re_xxxxxxxxx"
Resend::Templates.list(
limit: 2,
after: "34a080c9-b17d-4187-ad80-5af20266e535"
)
import (
"context"
"github.com/resend/resend-go/v3"
)
func main() {
client := resend.NewClient("re_xxxxxxxxx")
client.Templates.ListWithContext(context.TODO(), &resend.ListOptions{
Limit: 2,
After: "34a080c9-b17d-4187-ad80-5af20266e535",
})
}
use resend_rs::{list_opts::ListOptions, Resend, Result};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let list_opts = ListOptions::default()
.with_limit(2)
.list_after("34a080c9-b17d-4187-ad80-5af20266e535");
let _list = resend.templates.list(list_opts).await?;
Ok(())
}
import com.resend.*;
public class Main {
public static void main(String[] args) {
Resend resend = new Resend("re_xxxxxxxxx");
ListParams params = ListParams.builder()
.limit(2)
.after("34a080c9-b17d-4187-ad80-5af20266e535")
.build();
ListTemplatesResponseSuccess data = resend.templates().list(params);
}
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.TemplateListAsync();
Console.WriteLine( "Nr Templates={0}", resp.Content.Data.Count );
curl -X GET 'https://api.resend.com/templates?limit=2&after=34a080c9-b17d-4187-ad80-5af20266e535' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json'
resend templates list
{
"object": "list",
"data": [
{
"id": "e169aa45-1ecf-4183-9955-b1499d5701d3",
"name": "reset-password",
"status": "draft",
"published_at": null,
"created_at": "2026-10-06 23:47:56.678+00",
"updated_at": "2026-10-06 23:47:56.678+00",
"alias": "reset-password"
},
{
"id": "b7f9c2e1-1234-4abc-9def-567890abcdef",
"name": "welcome-message",
"status": "published",
"published_at": "2026-10-06 23:47:56.678+00",
"created_at": "2026-10-06 23:47:56.678+00",
"updated_at": "2026-10-06 23:47:56.678+00",
"alias": "welcome-message"
}
],
"has_more": false
}
Was this page helpful?
⌘I