วิธีขอ Resend API Key และส่งอีเมลฉบับแรกของคุณ

รับ Resend API key แบบทีละขั้นตอน: ยืนยันโดเมน, กำหนดขอบเขตของคีย์, ส่งอีเมลฉบับแรกของคุณด้วย curl, Node และ Python, และทดสอบใน Apidog

INEZA Felin-Michel

INEZA Felin-Michel

18 September 2026

วิธีขอ Resend API Key และส่งอีเมลฉบับแรกของคุณ

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

Resend คือ API สำหรับอีเมลที่สร้างมาเพื่อนักพัฒนา: เพียงแค่ส่งคำขอ POST หนึ่งครั้ง พร้อมกับ JSON body หนึ่งตัว ก็สามารถส่งอีเมลธุรกรรมออกไปได้ ทุกคำขอจะต้องใช้ API key และวิธีที่คุณสร้าง key นั้นจะส่งผลต่อความเสียหายที่อาจเกิดขึ้นได้หาก key รั่วไหล คู่มือนี้จะแนะนำขั้นตอนทั้งหมด: ตั้งแต่การลงทะเบียน, การยืนยันโดเมนผู้ส่ง (หรือใช้ที่อยู่ทดสอบในตัว), การสร้าง key ที่มีขอบเขตการอนุญาตที่ถูกต้อง, และการส่งอีเมลฉบับแรกของคุณด้วย curl, Node และ Python คุณยังจะได้จัดเก็บ key ไว้ใน Apidog เพื่อทดสอบปลายทางโดยไม่ต้องวางข้อมูลลับลงในเชลล์ของคุณ

หากคุณต้องการภาพรวมที่กว้างขึ้นว่า API ทำอะไรได้บ้างนอกเหนือจากการส่งอีเมล คู่มือเริ่มต้นใช้งาน Resend API สำหรับผู้เริ่มต้น จะครอบคลุมส่วนที่เหลือทั้งหมด เนื้อหาด้านล่างทั้งหมดได้รับการตรวจสอบกับ เอกสารทางการของ Resend ดังนั้นตัวเลขและสตริงข้อผิดพลาดจะตรงกับสิ่งที่คุณเห็น

ปุ่ม

สิ่งที่คุณต้องเตรียมก่อนเริ่มต้น

ขั้นตอนที่ 1: สร้างบัญชี Resend

ลงทะเบียนที่ resend.com และยืนยันอีเมลของคุณ จดที่อยู่ที่คุณใช้ลงทะเบียนไว้: จนกว่าคุณจะยืนยันโดเมน ที่อยู่นี้เป็นเพียงกล่องจดหมายเดียวที่ Resend จะส่งอีเมลทดสอบไปให้ และการลืมสิ่งนี้จะทำให้เกิดข้อผิดพลาด 403 ที่น่าสับสนที่สุดที่คุณจะพบในวันแรก

ขั้นตอนที่ 2: ยืนยันโดเมนผู้ส่ง หรือใช้ที่อยู่ทดสอบ

มีสองเส้นทาง; เริ่มต้นด้วยเส้นทางที่รวดเร็ว

เส้นทาง A: ที่อยู่ทดสอบการเริ่มต้นใช้งาน Resend ให้คุณสามารถส่งจาก onboarding@resend.dev โดยไม่ต้องตั้งค่าใดๆ ข้อควรระวังคือผู้รับ: จะต้องเป็นอีเมลบัญชีของคุณเอง หากส่งไปยังผู้อื่น API จะส่งคืนข้อผิดพลาด 403 พร้อมข้อความ “You can only send testing emails to your own email address” (คุณสามารถส่งอีเมลทดสอบไปยังที่อยู่อีเมลของคุณเองเท่านั้น)

เส้นทาง B: โดเมนของคุณเอง สำหรับการใช้งานจริง ให้เพิ่มโดเมนในแดชบอร์ดภายใต้ "Domains" Resend แนะนำให้ใช้โดเมนย่อย เช่น notifications.example.com แทนโดเมนหลักของคุณ เพื่อให้ชื่อเสียงการส่งอีเมลของผลิตภัณฑ์ของคุณแยกต่างหากจากอีเมลองค์กรของคุณ เลือกภูมิภาคที่ใกล้ที่สุดกับผู้รับของคุณ จากนั้นคัดลอกระเบียน DNS ที่ Resend สร้างขึ้นไปยังผู้ให้บริการ DNS ของคุณ เอกสารอธิบายว่าเป็น “การกำหนดค่า DKIM และ SPF (ระเบียน TXT และ MX หรือ CNAME)” โดเมนย่อย Return-Path จะเป็น send.example.com โดยค่าเริ่มต้น

การยืนยันมักจะเสร็จสิ้นภายใน 15 นาที แม้ว่าการเผยแพร่ DNS อาจใช้เวลาถึง 72 ชั่วโมง หากติดขัด ให้ตรวจสอบสองสาเหตุหลักๆ ที่พบบ่อย: ระเบียนที่วางอยู่บน root แทนที่จะเป็นโดเมนย่อย send และ Cloudflare proxying (ไอคอนคลาวด์ต้องเป็นสีเทา ไม่ใช่สีส้ม) แก้ไขระเบียน จากนั้นคลิก “Restart verification” (เริ่มการยืนยันใหม่) เพิ่มระเบียน DMARC หลังจากนั้น; ไม่จำเป็นต้องใช้ในการส่ง แต่ผู้ให้บริการกล่องจดหมายจะให้รางวัล (เช่น ความน่าเชื่อถือที่เพิ่มขึ้น)

ขั้นตอนที่ 3: สร้าง API key ด้วยขอบเขตที่เหมาะสม

เปิดหน้า API keys ในแดชบอร์ดแล้วคลิก Create API Key มีสามฟิลด์ที่สำคัญ; เอกสาร การสร้าง API key ครอบคลุมแต่ละฟิลด์:

Resend จะแสดง key เพียงครั้งเดียวเท่านั้น Key จะขึ้นต้นด้วย re_ และเมื่อคุณปิดกล่องโต้ตอบไปแล้ว คุณจะสามารถเปลี่ยนชื่อ key ได้ แต่จะไม่สามารถดูค่า key ได้อีกต่อไป คัดลอก key นี้ลงในตัวแปรสภาพแวดล้อมทันที:

export RESEND_API_KEY="re_xxxxxxxxx"

คำแนะนำจาก Resend: key ไม่มีวันหมดอายุ ดังนั้นควรหมุนเวียน key ทุก 90 วันหรือเร็วกว่านั้น; แดชบอร์ดจะแจ้งเตือน key ที่ไม่ได้ใช้งานเป็นเวลา 30 วัน; และหาก key รั่วไหล ให้ลบ key นั้นทันทีแทนที่จะรอการหมุนเวียนครั้งถัดไป การ commit สตริง re_ ลงใน git เป็นเส้นทางที่พบบ่อยที่สุดสำหรับการรั่วไหล ดังนั้นควรเรียกใช้ โปรแกรมสแกนข้อมูลลับบน repository ของคุณ ก่อนการ push ครั้งแรก

คุณยังสามารถสร้าง key ด้วย POST https://api.resend.com/api-keys โดยส่งค่า name, permission (full_access หรือ sending_access) และ domain_id (ไม่บังคับ) การเรียกนี้จำเป็นต้องใช้ key แบบ full-access ซึ่งเป็นอีกเหตุผลหนึ่งที่จะเก็บ key ประเภทนี้ไว้เพียงหนึ่งเดียวเท่านั้น

ขั้นตอนที่ 4: ส่งอีเมลฉบับแรกของคุณ

ปลายทางสำหรับการส่งคือ POST https://api.resend.com/emails การยืนยันตัวตนใช้ Bearer token ในส่วนหัว Authorization, เนื้อหาเป็น JSON และรับเฉพาะ HTTPS เท่านั้น มีสามฟิลด์ที่จำเป็น: from, to และ subject เพิ่ม html, text หรือทั้งสองอย่าง; หากคุณส่งเฉพาะ html, Resend จะสร้างส่วนข้อความธรรมดาให้เอง to รับค่าเป็นสตริงหรืออาร์เรย์ได้สูงสุด 50 ที่อยู่ รายการพารามิเตอร์ทั้งหมดอยู่ใน เอกสารอ้างอิงการส่งอีเมล

curl

curl -X POST 'https://api.resend.com/emails' \
  -H "Authorization: Bearer $RESEND_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "from": "Acme <onboarding@resend.dev>",
    "to": ["you@yourcompany.com"],
    "subject": "First Resend email",
    "html": "<p>Your Resend key works.</p>"
  }'

การเรียกที่สำเร็จจะส่งคืน {"id": "49a3999c-0ce1-4ea6-ab68-afcd6dc2e794"} ข้อสังเกตหนึ่งคือ: ทุกคำขอจะต้องมีส่วนหัว User-Agent มิฉะนั้น API จะตอบกลับด้วย 403 พร้อมรหัส 1010 curl และ SDKs จะตั้งค่านี้ให้โดยอัตโนมัติ; แต่ไคลเอ็นต์ที่เขียนขึ้นเองใน edge runtime อาจไม่ทำ

Node.js

npm install resend
import { Resend } from 'resend';

const resend = new Resend(process.env.RESEND_API_KEY);

const { data, error } = await resend.emails.send({
  from: 'Acme <notifications@example.com>',
  to: ['you@yourcompany.com'],
  subject: 'First Resend email',
  html: '<p>Your Resend key works.</p>',
});

if (error) {
  console.error(error);
} else {
  console.log(data.id);
}

Node SDK จะไม่ส่งข้อผิดพลาดสำหรับข้อผิดพลาด API โดยจะส่งคืน { data, error } ดังนั้นควรตรวจสอบ error ก่อนที่จะใช้งาน data.id

Python

pip install resend
import os
import resend
from resend.exceptions import ResendError

resend.api_key = os.environ["RESEND_API_KEY"]

params: resend.Emails.SendParams = {
    "from": "Acme <notifications@example.com>",
    "to": ["you@yourcompany.com"],
    "subject": "First Resend email",
    "html": "<p>Your Resend key works.</p>",
}

try:
    email = resend.Emails.send(params)
    print(email["id"])
except ResendError as err:
    print(err)

Python SDK ทำตรงกันข้าม: มันจะส่ง ResendError เมื่อเกิดความล้มเหลว ดังนั้นควรครอบคำสั่งส่งด้วย try/except

ขั้นตอนที่ 5: จัดเก็บและทดสอบ key ใน Apidog

Curl พิสูจน์ว่า key ใช้งานได้เพียงครั้งเดียว Apidog เปลี่ยนการใช้งานเพียงครั้งเดียวนั้นให้กลายเป็นสิ่งที่ทีมของคุณสามารถเรียกใช้ซ้ำได้ และช่วยป้องกันไม่ให้ key ไปอยู่ในประวัติเชลล์และบันทึกการแชท

จัดเก็บ key เป็นตัวแปรลับ สร้างสภาพแวดล้อมที่ชื่อ Resend เพิ่ม RESEND_API_KEY เป็นตัวแปร และทำเครื่องหมายว่าเป็นความลับ เพื่อให้ค่าถูกปิดบังใน UI และไม่รวมอยู่ในการส่งออก คู่มือสภาพแวดล้อมและตัวแปรลับ จะครอบคลุมการแบ่งแยกระหว่าง dev, staging และ prod หากคุณเก็บ key สำหรับการส่งเท่านั้นที่แตกต่างกันไปในแต่ละสภาพแวดล้อม ซึ่งเป็นสิ่งที่คุณควรทำ

ส่งคำขอ สร้างคำขอ POST ไปยัง https://api.resend.com/emails ตั้งค่า Auth เป็น Bearer Token ด้วย {{RESEND_API_KEY}} และวาง JSON body จากตัวอย่าง curl กด Send ID จะปรากฏในแผงการตอบกลับ ถัดจากส่วนหัว rate-limit ที่กล่าวถึงด้านล่าง

บันทึกเป็นชุดทดสอบ เพิ่มการยืนยันสองอย่าง: สถานะเท่ากับ 200 และ $.id มีอยู่ นำคำขอนี้ไปใส่ในสถานการณ์ทดสอบ แล้วคุณจะมี smoke test ที่ทำงานทุกครั้งที่มีคนแก้ไขโค้ดอีเมล ชี้ไปที่ staging ด้วย key การส่งที่จำกัดโดเมน และมันจะปลอดภัยสำหรับการรันจาก CI

จำลองปลายทางสำหรับการทำงานฝั่ง frontend Frontend ของคุณต้องการรูปแบบการตอบกลับ ไม่ใช่การส่งจริง จำลองปลายทางใน Apidog เพื่อให้มันส่งคืน {"id": "mock-email-id"} ในทุกการเรียก ทีม UI สามารถสร้างสถานะ “email sent” ได้ตลอดทั้งวันโดยไม่กระทบโควต้าฟรี 100 ครั้งต่อวัน หรือส่งสแปมไปยังกล่องจดหมายจริง ดาวน์โหลด Apidog เพื่อตั้งค่านี้; แผนฟรีครอบคลุมผู้ใช้สี่คน

ข้อจำกัดของแผนฟรีที่คุณจะเจอเป็นอันดับแรก

หน้าการกำหนดราคาของ Resend ระบุว่าแผนฟรีสามารถส่งอีเมลได้ 3,000 ฉบับต่อเดือน โดยจำกัดที่ 100 ฉบับต่อวัน พร้อมโดเมน 3 โดเมน และการเก็บข้อมูล 30 วัน แผน Pro เริ่มต้นที่ $20 ต่อเดือน สำหรับ 50,000 อีเมล, 10 โดเมน, และไม่มีข้อจำกัดรายวัน โดยมีค่าใช้จ่ายเพิ่มเติมที่ $0.90 ต่อ 1,000 อีเมล

อีเมลทดสอบที่ส่งไปยังที่อยู่ resend.dev จะนับรวมอยู่ในโควต้าเหล่านั้น ดังนั้นการทดสอบโหลดที่ส่งไปยัง delivered@resend.dev ก็ยังคงใช้โควต้า 100 ฉบับต่อวันของคุณ ที่อยู่ bounced@resend.dev, complained@resend.dev และ suppressed@resend.dev จะจำลอง hard bounce, การร้องเรียนสแปม และผู้รับที่ถูกระงับ โดยไม่ต้องใช้ที่อยู่ที่ไม่ดีจริง

นอกเหนือจากโควต้า อัตราการจำกัด (rate limit) ถูกตั้งค่าเริ่มต้นไว้ที่ 10 คำขอต่อวินาทีต่อทีม ซึ่งใช้ร่วมกันกับทุก key ในทีม การตอบกลับแต่ละครั้งจะมีส่วนหัว ratelimit-limit, ratelimit-remaining, ratelimit-reset และ retry-after เพื่อให้การส่งวนซ้ำสามารถชะลอตัวลงได้ก่อนที่จะถึงข้อผิดพลาด 429 ต้องการเพิ่มขึ้นหรือไม่? Resend ขอให้คุณติดต่อฝ่ายสนับสนุนแทนการสร้างทีมเพิ่มเติม

ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข

ความล้มเหลวทุกครั้งจะส่งคืนเป็น JSON พร้อมด้วย statusCode, name และ message นี่คือข้อผิดพลาดที่คุณจะพบในวันแรก อ้างอิงจาก เอกสารอ้างอิงข้อผิดพลาด:

สถานะ ชื่อ เกิดอะไรขึ้น วิธีแก้ไข
401 missing_api_key ไม่มีส่วนหัว Authorization เพิ่ม Authorization: Bearer re_...
401 restricted_api_key ใช้ key แบบส่งเท่านั้นกับปลายทางที่ไม่ใช่การส่ง ใช้ key แบบ full-access สำหรับการเรียกนั้น
403 validation_error “โดเมนไม่ได้รับการยืนยัน” ทำการยืนยัน DNS ให้เสร็จสิ้น หรือแก้ไขที่อยู่จาก
403 validation_error ที่อยู่ทดสอบถูกส่งไปยังบุคคลอื่นที่ไม่ใช่คุณ ส่งไปยังอีเมลบัญชีของคุณ หรือยืนยันโดเมน
403 restricted_api_key “API key ไม่ทำงาน” key ถูกลบแล้ว; สร้าง key ใหม่
422 missing_required_field ขาดฟิลด์ from, to, หรือ subject ตรวจสอบ body เทียบกับเอกสารอ้างอิง
429 rate_limit_exceeded เกิน 10 คำขอต่อวินาที จัดคิวการส่ง, เคารพ retry-after
429 daily_quota_exceeded เกิน 100 อีเมลในวันนี้สำหรับแผนฟรี รอการรีเซ็ตหรืออัปเกรดแผน

ข้อผิดพลาด 401 พร้อม key ที่คุณมั่นใจว่าถูกต้อง มักจะหมายถึงมี new line ที่เกินมาในตัวแปร หรือไฟล์ .env ที่ไม่ถูกโหลด ทั้งสองกรณีนี้ดูเหมือนเป็น key ที่หายไปจากฝั่ง API

คำถามที่พบบ่อย (FAQ)

ฉันสามารถดู Resend API key ของฉันอีกครั้งหลังจากสร้างได้หรือไม่?

ไม่ได้ Resend จะแสดงค่า key เพียงครั้งเดียวเมื่อสร้าง หากคุณทำหาย ให้สร้าง key ใหม่ที่มีชื่อและการอนุญาตเดียวกัน นำไปปรับใช้ จากนั้นลบ key เก่าออก

ฉันควรเลือก "full access" หรือ "sending access"?

ควรใช้ "sending access" ที่จำกัดเฉพาะโดเมนเดียว สำหรับ key ทุกอันที่ออกจากเครื่องของคุณ เก็บ key แบบ full-access เพียงหนึ่งเดียวสำหรับงานที่เกี่ยวข้องกับแดชบอร์ด เช่น การเพิ่มโดเมนหรือการสร้าง key อื่นๆ และห้ามใส่ key นี้ลงในแอปพลิเคชันเด็ดขาด

ฉันสามารถทดสอบการส่งโดยไม่ยืนยันโดเมนได้หรือไม่?

ได้ คุณสามารถใช้ onboarding@resend.dev เป็นที่อยู่ from และอีเมลบัญชีของคุณเองเป็นผู้รับ ผู้รับอื่นๆ จะได้รับข้อผิดพลาด 403 จนกว่าโดเมนจะได้รับการยืนยัน

มีวิธีจัดการ Resend จากเทอร์มินัลแทนแดชบอร์ดได้หรือไม่?

มี คู่มือการใช้งาน Resend CLI ครอบคลุมการติดตั้งและการเรียกใช้คำสั่งโดเมนและอีเมลทั่วไปโดยไม่ต้องเปิดเบราว์เซอร์

จะเกิดอะไรขึ้นเมื่อฉันส่งอีเมลเกิน 100 ฉบับต่อวันในแผนฟรี?

API จะส่งคืนข้อผิดพลาด 429 พร้อมข้อความ daily_quota_exceeded และการส่งจะกลับมาดำเนินการต่อหลังจากรีเซ็ตรายวัน หากคุณต้องการส่งอีเมลมากกว่านี้เป็นประจำ แผน Pro จะยกเลิกข้อจำกัดนี้ และ บทสรุปเกี่ยวกับ free email API จะแสดงให้เห็นว่าแผนฟรีของผู้ให้บริการรายอื่นเปรียบเทียบกันอย่างไร

สรุป

การรับ Resend API key ใช้เวลาสองนาที; การทำให้ถูกต้องใช้เวลาห้านาที ยืนยันโดเมนย่อย สร้าง key แบบส่งเท่านั้นที่จำกัดเฉพาะโดเมนนั้น เก็บไว้ในตัวแปรสภาพแวดล้อม และส่งอีเมลหนึ่งฉบับด้วย curl เพื่อยืนยันการทำงาน จากนั้นย้ายคำขอนั้นไปที่ Apidog บันทึกการยืนยัน และจำลองปลายทางเพื่อให้ทีมของคุณสามารถพัฒนาต่อได้โดยไม่ใช้โควต้าของคุณ ส่งมอบ key ที่มีอำนาจน้อยที่สุดที่ยังคงทำงานได้ตามต้องการ

ปุ่ม

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API