To install Resend Python SDK, simply execute the following command in a terminal:
pip install resend
First, you need to get an API key, which is available in the Resend Dashboard.
import resend
import os
resend.api_key = "re_yourkey"You can get an overview about all parameters in the Send Email API reference.
import os
import resend
resend.api_key = "re_yourkey"
params: resend.Emails.SendParams = {
"from": "[email protected]",
"to": ["[email protected]"],
"subject": "hi",
"html": "<strong>hello, world!</strong>",
"reply_to": "[email protected]",
"bcc": "[email protected]",
"cc": ["[email protected]"],
"tags": [
{"name": "tag1", "value": "tagvalue1"},
{"name": "tag2", "value": "tagvalue2"},
],
}
email: resend.Emails.SendResponse = resend.Emails.send(params)
print(email)The SDK supports async operations via httpx. Install the async extra:
pip install resend[async]Once installed, async methods (suffixed with _async) work automatically — no extra setup needed:
import asyncio
import resend
resend.api_key = "re_yourkey"
async def main():
params: resend.Emails.SendParams = {
"from": "[email protected]",
"to": ["[email protected]"],
"subject": "hi",
"html": "<strong>hello, world!</strong>",
}
email: resend.Emails.SendResponse = await resend.Emails.send_async(params)
print(email)
if __name__ == "__main__":
asyncio.run(main())To use a custom async HTTP client or configure options like timeouts, set resend.default_async_http_client:
import resend
resend.api_key = "re_yourkey"
resend.default_async_http_client = resend.HTTPXClient(timeout=60)