Metadata-Version: 2.4
Name: pingoni
Version: 0.1.2
Summary: Drop-in API monitoring for Flask and FastAPI
Author-email: Ayomide <afolaluayomide5@gmail.com>
License: MIT
Project-URL: Homepage, https://pingoni.com
Project-URL: Repository, https://github.com/Ayomide780/pingoni-python
Keywords: monitoring,flask,fastapi,api,observability
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Framework :: Flask
Classifier: Framework :: FastAPI
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.25.0

# pingoni

Drop-in API monitoring for Flask and FastAPI. One install, every request tracked.

## Install

```bash
pip install pingoni
```

## Flask

```python
from flask import Flask
from pingoni import init_flask

app = Flask(__name__)
init_flask(app, api_key="your_pingoni_api_key")

@app.route("/")
def home():
    return {"status": "ok"}
```

## FastAPI

```python
from fastapi import FastAPI
from pingoni import init_fastapi

app = FastAPI()
init_fastapi(app, api_key="your_pingoni_api_key")

@app.get("/")
def home():
    return {"status": "ok"}
```

## LLM cost tracking

Track every OpenAI / Anthropic call by cost, per-user, per-feature.

```python
from openai import OpenAI
from pingoni import track_llm

client = OpenAI()
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Hello"}],
)

track_llm(
    provider="openai",
    model="gpt-4o-mini",
    usage=response.usage.model_dump(),
    user_id="user_123",
    feature="chat",
    api_key="your_pingoni_api_key",
)
```

## Get an API key

Sign up at [pingoni.com](https://pingoni.com).

## License

MIT
