Use case · October 2026
Password-reset and magic-link emails.
Your app creates the token and the link. SendPanda sends the message from a verified domain, once, even when the request is retried. The sample below is a Next.js server action.
A reset or magic link is ordinary transactional email. The secret stays in your database. The message only carries the URL you build. SendPanda does not issue the token, store the session, or decide when the link expires.
Use an idempotency key tied to the business event, such as reset plus the user id plus the token id. A timeout or a job retry then returns the original accept instead of mailing the person twice. The key is for that one event. A later reset needs its own key.
Send from a domain you have verified. The from address, SPF and DKIM are what receivers check. A queued status from the API means the message was accepted, not that the inbox delivered it. Delivery and bounces arrive as webhooks.
New accounts start at 100 emails a day. That is enough for a small app's resets. Limits rise as you send without bounces or complaints. Free is 1,000 emails a month.
Next.js server action. The SDK needs the Node.js runtime, not Edge.
// app/actions.ts
"use server";
import { SendPanda } from "@sendpanda/sdk";
const panda = new SendPanda(process.env.SENDPANDA_API_KEY!);
export async function sendPasswordReset(
userId: string,
resetId: string,
to: string,
url: string,
) {
const email = await panda.emails.send(
{
from: "Your app <hello@your-verified-domain.com>",
to: [to],
subject: "Reset your password",
html: `<p><a href="${url}">Reset your password</a></p>`,
text: `Reset your password: ${url}`,
},
{ idempotencyKey: `reset-${userId}-${resetId}` },
);
return { id: email.id, status: email.status };
}FAQ
Questions, answered.
Does SendPanda create the magic link?
No. Your app creates the token and the URL. SendPanda sends the email you give it.
How do I stop a retry from sending a second reset?
Pass an idempotency key for that reset. Reusing the key returns the original accept. A new reset needs a new key.
When we're not the right fit: if you send millions of emails a month, Amazon SES directly or SendGrid Pro will serve you better. Our largest plan is 200,000 a month; for dedicated IPs or more volume, email us about Enterprise. And if you need Outlook or Apple Mail to connect straight to a mailbox, that is not ready yet: our inbox is for support-style mail with daily limits, and you can forward any mailbox to Outlook or Gmail meanwhile.
Send, receive and design email. A few DNS records away.
Free for 1,000 emails a month. No card needed.
All comparisonsEmail toolsSend email with Next.jsIdempotency keysVerify webhooksVerify the sending domainResend alternative