ravn-sdk
Error monitoring for Python — without the Sentry tax.
100,000 events/month free. AI-powered root cause analysis included. Setup in 30 seconds.
→ getravn.com · Dashboard · Docs
Install
pip install ravn-sdk
Setup
import ravn
ravn.init(api_key="your_api_key_here")
That's it. Every unhandled exception that crashes the process — scripts, Celery tasks, background workers — is now captured automatically.
Using Django, Flask, or FastAPI? These frameworks catch request-handling exceptions themselves to render an error response, so they never reach the point ravn.init() hooks into. Add one line for your framework:
# Django — in AppConfig.ready() or wsgi.py/asgi.py
from ravn.integrations.django import install
install()
# Flask
from ravn.integrations.flask import init_app
init_app(app)
# FastAPI / Starlette
from ravn.integrations.fastapi import RavnMiddleware
app.add_middleware(RavnMiddleware)
Get your API key at app.getravn.com/register — free, no credit card required.
Features
Automatic exception capture
After ravn.init(), all unhandled exceptions are captured automatically.
Manual capture
try:
risky_operation()
except Exception as e:
ravn.capture_exception(e, metadata={"user_id": 42})
Log messages
ravn.capture_message("Payment processed", level="info", metadata={"amount": 99.99})
Supported levels: info, warning, error.
Performance monitoring
@ravn.measure
def slow_database_query():
...
Functions decorated with @ravn.measure send a warning event if they exceed slow_threshold_ms (default: 1000ms).
Configuration
ravn.init(
api_key="your_api_key_here",
slow_threshold_ms=500, # warn if functions take longer than 500ms
)
Pricing
| Plan | Events/month | Price |
|---|---|---|
| Free | 100,000 | $0 — forever |
| Solo | 1,000,000 | $9.99/mo |
| Team | 10,000,000 | $19.99/mo |
| Business | 100,000,000 | $49.99/mo |
All paid plans include AI root cause analysis, Slack/Discord alerts, and performance monitoring.
Full pricing at getravn.com/pricing.
Requirements
- Python ≥ 3.8
requests ≥ 2.28
License
MIT
Metadata
Release files for ravn-sdk 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ravn_sdk-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for ravn_sdk-0.2.1-py3-none-any.whl |
Release files / ravn_sdk-0.2.1-py3-none-any.whl
| Download URL | ravn_sdk-0.2.1-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
688716d84d86741d26df340053edbe462610d85d7a70e51cdfc421449a571dfe
|
|
BLAKE2b-256 checksum How to use checksums |
d37411903dc2baab1f6f4dc7b1c4d9afc384aa36ad23fd3be8f9efb30841c3a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.13
|
Security for ravn-sdk 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.