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.
importresendimportosresend.api_key="re_yourkey"You can get an overview about all parameters in the Send Email API reference.
importosimportresendresend.api_key="re_yourkey"params: resend.Emails.SendParams= {
"from": "onboarding@resend.dev",
"to": ["delivered@resend.dev"],
"subject": "hi",
"html": "<strong>hello, world!</strong>",
"reply_to": "to@gmail.com",
"bcc": "bcc@resend.dev",
"cc": ["cc@resend.dev"],
"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:
importasyncioimportresendresend.api_key="re_yourkey"asyncdefmain():
params: resend.Emails.SendParams= {
"from": "onboarding@resend.dev",
"to": ["delivered@resend.dev"],
"subject": "hi",
"html": "<strong>hello, world!</strong>",
}
email: resend.Emails.SendResponse=awaitresend.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:
importresendresend.api_key="re_yourkey"resend.default_async_http_client=resend.HTTPXClient(timeout=60)