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)
Legacy configurations that assign an AsyncHTTPClient to
resend.default_http_client are also supported. Async requests select a client
in this order:
- A replacement client assigned to
resend.default_async_http_client. - An
AsyncHTTPClientassigned toresend.default_http_client. - The automatic
HTTPXClient, if httpx is installed.
Setting resend.default_async_http_client = None still permits the legacy
fallback. Prefer the dedicated async setting for new code, so the sync client
remains available for synchronous calls.