Skip to main content

Simple API monitoring and API key management for REST APIs built with FastAPI, Flask, Django, and Starlette.

Project description

Apitally logo

Your refreshingly simple REST API companion.

Apitally is a simple and affordable API monitoring and API key management solution with a focus on data privacy. It is easy to set up and use for new and existing API projects using Python or Node.js.

🔗 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 (no sensitive data is captured)
  • Non-blocking clients that aggregate and send captured data to Apitally and optionally synchronize API key hashes in 1 minute intervals
  • Functions to easily secure endpoints with API key authentication and permission checks

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, starlette, flask, django_ninja and django_rest_framework.

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.
)

Starlette

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

from starlette.applications import Starlette
from apitally.starlette import ApitallyMiddleware

app = Starlette(routes=[...])
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 Ninja

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

In your Django settings.py file:

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

Django REST Framework

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

In your Django settings.py file:

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

Getting help

If you need help please create a new discussion on GitHub.

License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apitally-0.3.4.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

apitally-0.3.4-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file apitally-0.3.4.tar.gz.

File metadata

  • Download URL: apitally-0.3.4.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.2.0-1018-azure

File hashes

Hashes for apitally-0.3.4.tar.gz
Algorithm Hash digest
SHA256 a1917ace49781a04961324430286d55fbd83562eaf48f4e1a0b2403f1c94ebe5
MD5 ab192356745be8a7e99482eaee3f848a
BLAKE2b-256 9138246ff213f46c9fcb594fc2f5e36cc96745de872c9505dc7e9a6f9a38a4dd

See more details on using hashes here.

File details

Details for the file apitally-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: apitally-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.2.0-1018-azure

File hashes

Hashes for apitally-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 381af76d009af969b9589ba3caa07630ea397f610f91dee2f19a0efee5bb6229
MD5 532fa371e22bbd22009a2ad201df6c24
BLAKE2b-256 dc5bed4bf773eb0c24b4a9c90f85ca28316e37aee9df7cc067d1d20c1e3e38b5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page