> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apollodeploy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send emails with Python

> Send a transactional email with the official Apollo Signal Python SDK

The Python SDK provides a class-based client and uses
`https://api.signal.apollodeploy.com` by default.

Before you start, [create an API key](/signal/create-an-api-key) with **Emails: Send** permission
and [verify the From domain](/signal/add-a-domain).

<Steps>
  <Step title="Install the SDK">
    ```bash theme={"dark"}
    python -m pip install apollo-deploy-signal-sdk
    ```
  </Step>

  <Step title="Store your API key">
    Set `SIGNAL_API_KEY` in the server environment or secret manager.
  </Step>

  <Step title="Send an email">
    ```python theme={"dark"}
    import os

    from apollo_deploy_signal_sdk import create_apollo_signal_api_client
    from apollo_deploy_signal_sdk.types import SendEmailRequest

    with create_apollo_signal_api_client(
        default_headers={
            "Authorization": f"Bearer {os.environ['SIGNAL_API_KEY']}"
        }
    ) as signal:
        email = signal.emails.send_email(
            SendEmailRequest(
                from_="auth@mail.company.com",
                to=["alex@example.com"],
                subject="Reset your password",
                text="Use the secure link in your account to choose a new password.",
            )
        )

        print(email.id)
    ```
  </Step>
</Steps>

<Note>
  Python uses `from_` because `from` is a reserved keyword. Recipient fields are lists, and the From
  domain must be verified in the same Signal project as the API key.
</Note>

<CardGroup cols={2}>
  <Card title="All SDKs" icon="code" href="/signal/send-with/sdk-overview">
    Compare every supported language and framework.
  </Card>

  <Card title="Manage emails" icon="envelope" href="/signal/dashboard/emails/introduction">
    Follow message states and delivery timelines.
  </Card>
</CardGroup>
