Skip to main content
Resend Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

Claim Domain

Claim a domain that is already verified by another team.

  • name (string, required) — The name of the domain you want to claim.

  • region (string) — The region where emails will be sent from. Possible values: 'us-east-1' | 'eu-west-1' | 'sa-east-1' | 'ap-northeast-1'

Choose a subdomain for the Return-Path address. Defaults to send (i.e., send.yourdomain.tld). Avoid setting values that could undermine credibility (e.g. testing), as they may be exposed to recipients.

Track the open rate of each email.

Track clicks within the body of each HTML email.

Configure a custom subdomain for click and open tracking. For example, setting "links" on domain example.com will produce a CNAME record for links.example.com. Avoid setting values that have a negative connotation (e.g. tracking).

Learn more about custom tracking subdomains.

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

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.domains.claims.create({
  name: 'example.com',
});
PHP
$resend = Resend::client('re_xxxxxxxxx');

$resend->domains->claims->create([
  'name' => 'example.com'
]);
Python
import resend

resend.api_key = "re_xxxxxxxxx"

params: resend.Domains.Claims.CreateParams = {
  "name": "example.com",
}

resend.Domains.Claims.create(params)
Ruby
require "resend"

Resend.api_key = "re_xxxxxxxxx"

params = {
  name: "example.com",
}
claim = Resend::Domains::Claims.create(params)
puts claim
Go
package main

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

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

	params := &resend.CreateDomainClaimRequest{
		Name: "example.com",
	}

	client.DomainClaims.Create(params)
}
Rust
use resend_rs::{Resend, Result, types::CreateDomainClaimOptions};

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

  let domain_claim = CreateDomainClaimOptions::new("example.com");
  let _data = resend.domains.claim(domain_claim).await?;

  Ok(())
}
Java
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.domains.model.ClaimDomainOptions;
import com.resend.services.domains.model.DomainClaimResponseSuccess;

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

        ClaimDomainOptions params = ClaimDomainOptions
                .builder()
                .name("example.com").build();

        DomainClaimResponseSuccess claim = resend.domains().claims().create(params);
    }
}
cURL
curl -X POST 'https://api.resend.com/domains/claim' \
     -H 'Authorization: Bearer re_xxxxxxxxx' \
     -H 'Content-Type: application/json' \
     -d $'{
  "name": "example.com"
}'
CLI
resend domains claim create --name example.com
Response
{
  "object": "domain_claim",
  "id": "dacf4072-4119-4d88-932f-6c6126d3a9d1",
  "name": "example.com",
  "status": "pending",
  "domain_id": "d91cd9bd-1176-453e-8fc1-35364d380206",
  "region": "us-east-1",
  "record": {
    "type": "TXT",
    "name": "example.com",
    "value": "resend-domain-verification=3f8a1c2d4e5b6a7f8091a2b3c4d5e6f7",
    "ttl": "Auto"
  },
  "blocked_reason": null,
  "failure_reason": null,
  "created_at": "2026-06-16 17:12:02.059593+00",
  "expires_at": "2026-06-23 17:12:02.059593+00"
}
Suggest an edit

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

Export
Documentation menu