Skip to main content
POST
/
topics
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.topics.create({
  name: 'Weekly Newsletter',
  defaultSubscription: 'opt_in',
});
$resend = Resend::client('re_xxxxxxxxx');

$resend->topics->create([
  'name' => 'Weekly Newsletter',
  'default_subscription' => 'opt_in',
]);
import resend

resend.api_key = "re_xxxxxxxxx"

resend.Topics.create({
    "name": "Weekly Newsletter",
    "default_subscription": "opt_in",
    "description": "Subscribe to our weekly newsletter for updates",
})
require "resend"

Resend.api_key = "re_xxxxxxxxx"

Resend::Topics.create(
  name: "Weekly Newsletter",
  default_subscription: "opt_in"
)
import (
	"context"

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

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

	client.Topics.CreateWithContext(context.TODO(), &resend.CreateTopicRequest{
		Name:                "Weekly Newsletter",
		DefaultSubscription: resend.DefaultSubscriptionOptIn,
	})
}
use resend_rs::{
  types::{CreateTopicOptions, SubscriptionType},
  Resend, Result,
};

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

  let opts = CreateTopicOptions::new("Weekly Newsletter", SubscriptionType::OptIn);
  let _topic = resend.topics.create(opts).await?;

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

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

    CreateTopicOptions createTopicOptions = CreateTopicOptions.builder()
      .name("Weekly Newsletter")
      .defaultSubscription("opt_in")
      .build();

    CreateTopicResponseSuccess response = resend.topics().create(createTopicOptions);
  }
}
using Resend;

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

var resp = await resend.TopicCreateAsync( new TopicData() {
  Name = "Weekly Newsletter",
  Description = "Weekly newsletter for our subscribers",
  SubscriptionDefault = SubscriptionType.OptIn,
} );
Console.WriteLine( "Topic Id={0}", resp.Content );
curl -X POST 'https://api.resend.com/topics' \
     -H 'Authorization: Bearer re_xxxxxxxxx' \
     -H 'Content-Type: application/json' \
     -d $'{
  "name": "Weekly Newsletter",
  "default_subscription": "opt_in"
}'
resend topics create --name "Weekly Newsletter" --default-subscription opt_in
{
  "object": "topic",
  "id": "b6d24b8e-af0b-4c3c-be0c-359bbd97381e"
}

Body Parameters

name
string
required
The topic name. Max length is 50 characters.
description
string
The topic description. Max length is 200 characters.
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.topics.create({
  name: 'Weekly Newsletter',
  defaultSubscription: 'opt_in',
});
$resend = Resend::client('re_xxxxxxxxx');

$resend->topics->create([
  'name' => 'Weekly Newsletter',
  'default_subscription' => 'opt_in',
]);
import resend

resend.api_key = "re_xxxxxxxxx"

resend.Topics.create({
    "name": "Weekly Newsletter",
    "default_subscription": "opt_in",
    "description": "Subscribe to our weekly newsletter for updates",
})
require "resend"

Resend.api_key = "re_xxxxxxxxx"

Resend::Topics.create(
  name: "Weekly Newsletter",
  default_subscription: "opt_in"
)
import (
	"context"

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

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

	client.Topics.CreateWithContext(context.TODO(), &resend.CreateTopicRequest{
		Name:                "Weekly Newsletter",
		DefaultSubscription: resend.DefaultSubscriptionOptIn,
	})
}
use resend_rs::{
  types::{CreateTopicOptions, SubscriptionType},
  Resend, Result,
};

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

  let opts = CreateTopicOptions::new("Weekly Newsletter", SubscriptionType::OptIn);
  let _topic = resend.topics.create(opts).await?;

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

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

    CreateTopicOptions createTopicOptions = CreateTopicOptions.builder()
      .name("Weekly Newsletter")
      .defaultSubscription("opt_in")
      .build();

    CreateTopicResponseSuccess response = resend.topics().create(createTopicOptions);
  }
}
using Resend;

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

var resp = await resend.TopicCreateAsync( new TopicData() {
  Name = "Weekly Newsletter",
  Description = "Weekly newsletter for our subscribers",
  SubscriptionDefault = SubscriptionType.OptIn,
} );
Console.WriteLine( "Topic Id={0}", resp.Content );
curl -X POST 'https://api.resend.com/topics' \
     -H 'Authorization: Bearer re_xxxxxxxxx' \
     -H 'Content-Type: application/json' \
     -d $'{
  "name": "Weekly Newsletter",
  "default_subscription": "opt_in"
}'
resend topics create --name "Weekly Newsletter" --default-subscription opt_in
{
  "object": "topic",
  "id": "b6d24b8e-af0b-4c3c-be0c-359bbd97381e"
}