Skip to main content
Resend Docs

Search documentation

Type to search this documentation.

On this pageOverview

Create Event

POST

/

events

Node.js
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.events.create({
  name: 'user.created',
  schema: {
    plan: 'string',
  },
});
PHP
$resend = Resend::client('re_xxxxxxxxx');

$resend->events->create([
  'name' => 'user.created',
  'schema' => ['plan' => 'string'],
]);
Python
import resend

resend.api_key = "re_xxxxxxxxx"

params: resend.Events.CreateParams = {
  "name": "user.created",
  "schema": {
    "plan": "string",
  },
}

resend.Events.create(params)
Ruby
require "resend"

Resend.api_key = "re_xxxxxxxxx"

params = {
  name: "user.created",
  schema: {
    plan: "string",
  },
}

Resend::Events.create(params)
Go
package main

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

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

	params := &resend.CreateEventRequest{
		Name: "user.created",
		Schema: map[string]string{
			"plan": resend.EventSchemaTypeString,
		},
	}

	client.Events.Create(params)
}
Rust
use resend_rs::{json, types::CreateEventOptions, Resend, Result};

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

  let opts = CreateEventOptions {
    name: "user.created".to_owned(),
    schema: json!({
      "plan": "string",
    }),
  };

  let _event = resend.events.create(opts).await?;

  Ok(())
}
Java
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.events.model.CreateEventOptions;
import com.resend.services.events.model.CreateEventResponseSuccess;

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

        CreateEventOptions params = CreateEventOptions.builder()
                .name("user.created")
                .addSchema("plan", "string")
                .build();

        CreateEventResponseSuccess data = resend.events().create(params);
    }
}
.NET
using Resend;
using System.Text.Json;

IResend resend = ResendClient.Create( "re_xxxxxxxxx" );

var schema = JsonSerializer.SerializeToElement( new { plan = "string" } );

var resp = await resend.EventCreateAsync( new EventCreateData()
{
    Name = "user.created",
    Schema = schema,
} );
Console.WriteLine( "EventId={0}", resp.Content );
cURL
curl -X POST 'https://api.resend.com/events' \
     -H 'Authorization: Bearer re_xxxxxxxxx' \
     -H 'Content-Type: application/json' \
     -d '{
  "name": "user.created",
  "schema": {
    "plan": "string"
  }
}'
CLI
resend events create --name user.created --schema '{"plan":"string"}'
Response
{
  "object": "event",
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

string

required

The name of the event. Used to match events to automation triggers.

object

An optional schema definition for the event payload. Must be an object with flat key/type pairs. Supported types: string, number, boolean, date.

Node.js
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.events.create({
  name: 'user.created',
  schema: {
    plan: 'string',
  },
});
PHP
$resend = Resend::client('re_xxxxxxxxx');

$resend->events->create([
  'name' => 'user.created',
  'schema' => ['plan' => 'string'],
]);
Python
import resend

resend.api_key = "re_xxxxxxxxx"

params: resend.Events.CreateParams = {
  "name": "user.created",
  "schema": {
    "plan": "string",
  },
}

resend.Events.create(params)
Ruby
require "resend"

Resend.api_key = "re_xxxxxxxxx"

params = {
  name: "user.created",
  schema: {
    plan: "string",
  },
}

Resend::Events.create(params)
Go
package main

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

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

	params := &resend.CreateEventRequest{
		Name: "user.created",
		Schema: map[string]string{
			"plan": resend.EventSchemaTypeString,
		},
	}

	client.Events.Create(params)
}
Rust
use resend_rs::{json, types::CreateEventOptions, Resend, Result};

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

  let opts = CreateEventOptions {
    name: "user.created".to_owned(),
    schema: json!({
      "plan": "string",
    }),
  };

  let _event = resend.events.create(opts).await?;

  Ok(())
}
Java
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.events.model.CreateEventOptions;
import com.resend.services.events.model.CreateEventResponseSuccess;

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

        CreateEventOptions params = CreateEventOptions.builder()
                .name("user.created")
                .addSchema("plan", "string")
                .build();

        CreateEventResponseSuccess data = resend.events().create(params);
    }
}
.NET
using Resend;
using System.Text.Json;

IResend resend = ResendClient.Create( "re_xxxxxxxxx" );

var schema = JsonSerializer.SerializeToElement( new { plan = "string" } );

var resp = await resend.EventCreateAsync( new EventCreateData()
{
    Name = "user.created",
    Schema = schema,
} );
Console.WriteLine( "EventId={0}", resp.Content );
cURL
curl -X POST 'https://api.resend.com/events' \
     -H 'Authorization: Bearer re_xxxxxxxxx' \
     -H 'Content-Type: application/json' \
     -d '{
  "name": "user.created",
  "schema": {
    "plan": "string"
  }
}'
CLI
resend events create --name user.created --schema '{"plan":"string"}'
JSON
{
  "object": "event",
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

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