Buttondown
Subscribe to a newsletter.
export default async (req, res) => {
const { email } = req.body;
if (!email) {
return res.status(400).json({ error: 'Email is required' });
}
try {
const API_KEY = process.env.BUTTONDOWN_API_KEY;
const response = await fetch(
`https://api.buttondown.email/v1/subscribers`,
{
body: JSON.stringify({ email }),
headers: {
Authorization: `Token ${API_KEY}`,
'Content-Type': 'application/json'
},
method: 'POST'
}
);
if (response.status >= 400) {
return res.status(400).json({
error: `There was an error subscribing to the newsletter.`
});
}
return res.status(201).json({ error: '' });
} catch (error) {
return res.status(500).json({ error: error.message || error.toString() });
}
};
Usage
1
Create Buttondown Account
First, create a Buttondown account.
2
Find API Key
From the Settings page, retrieve your API key.
3
Add Environment Variables
To securely access the API, we need to include the secret with each request. We also do not want to commit secrets to git. Thus, we should use an environment variable. Learn how to add environment variables in Vercel.