Installation
- PIP
- Poetry
- Shell and script usage with uv
PIP is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line.
pip install novu-py
Poetry is a modern tool that simplifies dependency management and package publishing by using a single pyproject.toml file to handle project metadata and dependencies.
poetry add novu-py
You can use this SDK in a Python shell with uv and the uvx command that comes with it like so:It’s also possible to write a standalone Python script without needing to set up a whole project like so:Once that is saved to a file, you can run it with uv run
uvx --from novu-py python
#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.9"
# dependencies = [
# "novu-py",
# ]
# ///
from novu_py import Novu
sdk = Novu(
# SDK arguments
)
# Rest of script here...
script.py where script.py can be replaced with the actual file name.Usage
- US Region
- EU Region
- Synchronous
- Asynchronous
import novu_py
from novu_py import Novu
import os
with Novu(
secret_key=os.getenv("NOVU_SECRET_KEY", ""),
) as novu:
res = novu.trigger(trigger_event_request_dto=novu_py.TriggerEventRequestDto(
workflow_id="workflow_identifier",
to={
"subscriber_id": "subscriber_unique_identifier",
"first_name": "Albert",
"last_name": "Einstein",
"email": "albert@einstein.com",
},
payload={
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides={
"email": {
"bcc": "no-reply@novu.co"
}
},
))
# Handle response
print(res)
import asyncio
import novu_py
from novu_py import Novu
import os
async def main():
async with Novu(
secret_key=os.getenv("NOVU_SECRET_KEY", ""),
) as novu:
res = await novu.trigger_async(trigger_event_request_dto=novu_py.TriggerEventRequestDto(
workflow_id="workflow_identifier",
to={
"subscriber_id": "subscriber_unique_identifier",
"first_name": "Albert",
"last_name": "Einstein",
"email": "albert@einstein.com",
},
payload={
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides={
"email": {
"bcc": "no-reply@novu.co",
}
},
))
# Handle response
print(res)
asyncio.run(main())
import novu_py
from novu_py import Novu
import os
with Novu(
server_url="https://eu.api.novu.co",
secret_key=os.getenv("NOVU_SECRET_KEY", ""),
) as novu:
res = novu.trigger(trigger_event_request_dto=novu_py.TriggerEventRequestDto(
workflow_id="workflow_identifier",
to={
"subscriber_id": "subscriber_unique_identifier",
},
payload={
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides={
"email": {
"bcc": "no-reply@novu.co"
}
},
))
# Handle response
print(res)