Skip to content

Analytics, logging & monitoring for REST APIs built in Python.

License

Notifications You must be signed in to change notification settings

apitally/apitally-py

Repository files navigation

Apitally logo

Analytics, logging & monitoring for REST APIs.

Apitally helps you understand how your APIs are being used and alerts you when things go wrong.
It's super easy to use and designed to protect your data privacy.

🔗 apitally.io

Apitally screenshots


Apitally client library for Python

Tests Codecov PyPI

This client library for Apitally currently supports the following Python web frameworks:

Learn more about Apitally on our 🌎 website or check out the 📚 documentation.

Key features

  • Middleware for different frameworks to capture metadata about API endpoints, requests and responses
  • Non-blocking clients that aggregate and send captured data to Apitally in regular intervals

Install

Use pip to install and provide your framework of choice as an extra, for example:

pip install apitally[fastapi]

The available extras are: fastapi, flask, django_rest_framework, django_ninja, starlette and litestar.

Usage

Our setup guides include all the details you need to get started.

FastAPI

This is an example of how to add the Apitally middleware to a FastAPI application. For further instructions, see our setup guide for FastAPI.

from fastapi import FastAPI
from apitally.fastapi import ApitallyMiddleware

app = FastAPI()
app.add_middleware(
    ApitallyMiddleware,
    client_id="your-client-id",
    env="dev",  # or "prod" etc.
)

Flask

This is an example of how to add the Apitally middleware to a Flask application. For further instructions, see our setup guide for Flask.

from flask import Flask
from apitally.flask import ApitallyMiddleware

app = Flask(__name__)
app.wsgi_app = ApitallyMiddleware(
    app,
    client_id="your-client-id",
    env="dev",  # or "prod" etc.
)

Django

This is an example of how to add the Apitally middleware to a Django Ninja or Django REST Framework application. For further instructions, see our setup guide for Django.

In your Django settings.py file:

MIDDLEWARE = [
    "apitally.django.ApitallyMiddleware",
    # Other middleware ...
]
APITALLY_MIDDLEWARE = {
    "client_id": "your-client-id",
    "env": "dev",  # or "prod" etc.
}

Litestar

This is an example of how to add the Apitally plugin to a Litestar application. For further instructions, see our setup guide for Litestar.

from litestar import Litestar
from apitally.litestar import ApitallyPlugin

app = Litestar(
    route_handlers=[...],
    plugins=[
        ApitallyPlugin(
            client_id="your-client-id",
            env="dev",  # or "prod" etc.
        ),
    ]
)

Getting help

If you need help please create a new discussion on GitHub or join our Slack workspace.

License

This library is licensed under the terms of the MIT license.