diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 9e1230c38..64c17b300 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -5409,6 +5409,25 @@ async def generate_key_fn( response["soft_budget"] = ( data.soft_budget ) # include the user-input soft budget in the response + event = WebhookEvent( + event="key_created", + event_group="key", + event_message=f"API Key Created", + token=response.get("token", None), + spend=response.get("spend", 0.0), + max_budget=response.get("max_budget", "Unlimited"), + user_id=response.get("user_id", None), + team_id=response.get("team_id", "Default Team"), + key_alias=response.get("key_alias", None), + ) + + # If user configured email alerting - send an Email letting their end-user know the key was created + asyncio.create_task( + proxy_logging_obj.slack_alerting_instance.send_key_created_email( + webhook_event=event, + ) + ) + return GenerateKeyResponse(**response) except Exception as e: traceback.print_exc() diff --git a/litellm/proxy/utils.py b/litellm/proxy/utils.py index 11470bcda..7eec25437 100644 --- a/litellm/proxy/utils.py +++ b/litellm/proxy/utils.py @@ -12,6 +12,7 @@ from litellm.proxy._types import ( LiteLLM_TeamTable, Member, CallInfo, + WebhookEvent, ) from litellm.caching import DualCache, RedisCache from litellm.router import Deployment, ModelInfo, LiteLLM_Params