{"id":13691286,"url":"https://github.com/apitally/apitally-py","last_synced_at":"2026-03-08T07:12:29.781Z","repository":{"id":179084729,"uuid":"661287015","full_name":"apitally/apitally-py","owner":"apitally","description":"Simple API monitoring \u0026 analytics for Python apps","archived":false,"fork":false,"pushed_at":"2026-01-12T12:55:50.000Z","size":2946,"stargazers_count":214,"open_issues_count":1,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-12T18:45:00.913Z","etag":null,"topics":["api","api-analytics","api-logging","api-monitoring","api-observability","blacksheep","django","django-ninja","django-rest-framework","fastapi","flask","litestar","monitoring","python","rest-api","starlette"],"latest_commit_sha":null,"homepage":"https://apitally.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apitally.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-02T11:27:07.000Z","updated_at":"2026-01-12T12:55:54.000Z","dependencies_parsed_at":"2023-08-15T12:42:26.126Z","dependency_job_id":"fb65f0a2-6c35-4590-861c-296c17542050","html_url":"https://github.com/apitally/apitally-py","commit_stats":{"total_commits":174,"total_committers":2,"mean_commits":87.0,"dds":0.367816091954023,"last_synced_commit":"29565af7931bd408238736c185cd30feee742451"},"previous_names":["apitally/starlette-apitally","apitally/apitally-python","apitally/python-client","apitally/apitally-py"],"tags_count":64,"template":false,"template_full_name":null,"purl":"pkg:github/apitally/apitally-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apitally%2Fapitally-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apitally%2Fapitally-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apitally%2Fapitally-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apitally%2Fapitally-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apitally","download_url":"https://codeload.github.com/apitally/apitally-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apitally%2Fapitally-py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-analytics","api-logging","api-monitoring","api-observability","blacksheep","django","django-ninja","django-rest-framework","fastapi","flask","litestar","monitoring","python","rest-api","starlette"],"created_at":"2024-08-02T17:00:42.881Z","updated_at":"2026-03-08T07:12:29.769Z","avatar_url":"https://github.com/apitally.png","language":"Python","funding_links":[],"categories":["Monitoring","RESTful API","Third-Party Extensions","Extensions"],"sub_categories":["Utils","Monitoring","APM \u0026 Monitoring"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://apitally.io\" target=\"_blank\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://assets.apitally.io/logos/logo-horizontal-new-dark.png\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://assets.apitally.io/logos/logo-horizontal-new-light.png\"\u003e\n      \u003cimg alt=\"Apitally logo\" src=\"https://assets.apitally.io/logos/logo-horizontal-new-light.png\" width=\"220\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cb\u003eAPI monitoring \u0026 analytics made simple\u003c/b\u003e\u003c/p\u003e\n\u003cp align=\"center\" style=\"color: #ccc;\"\u003eMetrics, logs, traces, and alerts for your APIs — with just a few lines of code.\u003c/p\u003e\n\u003cbr\u003e\n\u003cp\u003e\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://assets.apitally.io/screenshots/overview-dark.png\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://assets.apitally.io/screenshots/overview-light.png\"\u003e\n  \u003cimg alt=\"Apitally dashboard\" src=\"https://assets.apitally.io/screenshots/overview-light.png\"\u003e\n\u003c/picture\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n# Apitally SDK for Python\n\n[![Tests](https://github.com/apitally/apitally-py/actions/workflows/tests.yaml/badge.svg?event=push)](https://github.com/apitally/apitally-py/actions)\n[![Codecov](https://codecov.io/gh/apitally/apitally-py/graph/badge.svg?token=UNLYBY4Y3V)](https://codecov.io/gh/apitally/apitally-py)\n[![PyPI](https://img.shields.io/pypi/v/apitally?logo=pypi\u0026logoColor=white\u0026color=%23006dad)](https://pypi.org/project/apitally/)\n\nApitally is a simple API monitoring and analytics tool that makes it easy to understand API usage, monitor performance, and troubleshoot issues.\nGet started in minutes by just adding a few lines of code. No infrastructure changes required, no dashboards to build.\n\nLearn more about Apitally on our 🌎 [website](https://apitally.io) or check out\nthe 📚 [documentation](https://docs.apitally.io).\n\n## Key features\n\n### API analytics\n\nTrack traffic, error and performance metrics for your API, each endpoint and\nindividual API consumers, allowing you to make informed, data-driven engineering\nand product decisions.\n\n### Request logs\n\nDrill down from insights to individual API requests or use powerful search and filters to\nfind specific requests. View correlated application logs and traces for a complete picture\nof each request, making troubleshooting faster and easier.\n\n### Error tracking\n\nUnderstand which validation rules in your endpoints cause client errors. Capture\nerror details and stack traces for 500 error responses, and have them linked to\nSentry issues automatically.\n\n### API monitoring \u0026 alerts\n\nGet notified immediately if something isn't right using custom alerts, synthetic\nuptime checks and heartbeat monitoring. Alert notifications can be delivered via\nemail, Slack and Microsoft Teams.\n\n## Supported frameworks\n\n| Framework                                                                    | Supported versions | Setup guide                                                         |\n| ---------------------------------------------------------------------------- | ------------------ | ------------------------------------------------------------------- |\n| [**FastAPI**](https://github.com/fastapi/fastapi) \\*                         | `\u003e=0.94.1`         | [Link](https://docs.apitally.io/setup-guides/fastapi)               |\n| [**Flask**](https://github.com/pallets/flask)                                | `\u003e=2.0.0`          | [Link](https://docs.apitally.io/setup-guides/flask)                 |\n| [**Django REST Framework**](https://github.com/encode/django-rest-framework) | `\u003e=3.10.0`         | [Link](https://docs.apitally.io/setup-guides/django-rest-framework) |\n| [**Django Ninja**](https://github.com/vitalik/django-ninja)                  | `\u003e=1.0.0`          | [Link](https://docs.apitally.io/setup-guides/django-ninja)          |\n| [**Starlette**](https://github.com/encode/starlette)                         | `\u003e=0.26.1`         | [Link](https://docs.apitally.io/setup-guides/starlette)             |\n| [**Litestar**](https://github.com/litestar-org/litestar)                     | `\u003e=2.4.0`          | [Link](https://docs.apitally.io/setup-guides/litestar)              |\n| [**BlackSheep**](https://github.com/Neoteroi/blacksheep)                     | `\u003e=2.0.0`          | [Link](https://docs.apitally.io/setup-guides/blacksheep)            |\n\n\\* For FastAPI on Cloudflare Workers use our [Python Serverless SDK](https://github.com/apitally/apitally-py-serverless) instead.\n\nApitally also supports many other web frameworks in [JavaScript](https://github.com/apitally/apitally-js), [Go](https://github.com/apitally/apitally-go), [.NET](https://github.com/apitally/apitally-dotnet) and [Java](https://github.com/apitally/apitally-java) via our other SDKs.\n\n## Getting started\n\nIf you don't have an Apitally account yet, first [sign up here](https://app.apitally.io/?signup). Then create an app in the Apitally dashboard. You'll see detailed setup instructions with code snippets you can copy and paste. These also include your client ID.\n\nSee the [SDK reference](https://docs.apitally.io/sdk-reference/python) for all available configuration options, including how to mask sensitive data, customize request logging, and more.\n\n### FastAPI\n\nInstall the SDK with the `fastapi` extra:\n\n```bash\npip install \"apitally[fastapi]\"\n```\n\nThen add the Apitally middleware to your application:\n\n```python\nfrom fastapi import FastAPI\nfrom apitally.fastapi import ApitallyMiddleware\n\napp = FastAPI()\napp.add_middleware(\n    ApitallyMiddleware,\n    client_id=\"your-client-id\",\n    env=\"dev\",  # or \"prod\" etc.\n)\n```\n\nFor further instructions, see our\n[setup guide for FastAPI](https://docs.apitally.io/setup-guides/fastapi).\n\n### Django\n\nInstall the SDK with the `django_rest_framework` or `django_ninja` extra:\n\n```bash\npip install \"apitally[django_rest_framework]\"\n# or\npip install \"apitally[django_ninja]\"\n```\n\nThen add the Apitally middleware to your Django settings:\n\n```python\nMIDDLEWARE = [\n    \"apitally.django.ApitallyMiddleware\",\n    # Other middleware ...\n]\nAPITALLY_MIDDLEWARE = {\n    \"client_id\": \"your-client-id\",\n    \"env\": \"dev\",  # or \"prod\" etc.\n}\n```\n\nFor further instructions, see our\n[setup guide for Django](https://docs.apitally.io/setup-guides/django).\n\n### Flask\n\nInstall the SDK with the `flask` extra:\n\n```bash\npip install \"apitally[flask]\"\n```\n\nThen add the Apitally middleware to your application:\n\n```python\nfrom flask import Flask\nfrom apitally.flask import ApitallyMiddleware\n\napp = Flask(__name__)\napp.wsgi_app = ApitallyMiddleware(\n    app,\n    client_id=\"your-client-id\",\n    env=\"dev\",  # or \"prod\" etc.\n)\n```\n\nFor further instructions, see our\n[setup guide for Flask](https://docs.apitally.io/setup-guides/flask).\n\n### Starlette\n\nInstall the SDK with the `starlette` extra:\n\n```bash\npip install \"apitally[starlette]\"\n```\n\nThen add the Apitally middleware to your application:\n\n```python\nfrom starlette.applications import Starlette\nfrom apitally.starlette import ApitallyMiddleware\n\napp = Starlette(routes=[...])\napp.add_middleware(\n    ApitallyMiddleware,\n    client_id=\"your-client-id\",\n    env=\"dev\",  # or \"prod\" etc.\n)\n```\n\nFor further instructions, see our\n[setup guide for Starlette](https://docs.apitally.io/setup-guides/starlette).\n\n### Litestar\n\nInstall the SDK with the `litestar` extra:\n\n```bash\npip install \"apitally[litestar]\"\n```\n\nThen add the Apitally plugin to your application:\n\n```python\nfrom litestar import Litestar\nfrom apitally.litestar import ApitallyPlugin\n\napp = Litestar(\n    route_handlers=[...],\n    plugins=[\n        ApitallyPlugin(\n            client_id=\"your-client-id\",\n            env=\"dev\",  # or \"prod\" etc.\n        ),\n    ]\n)\n```\n\nFor further instructions, see our\n[setup guide for Litestar](https://docs.apitally.io/setup-guides/litestar).\n\n### BlackSheep\n\nInstall the SDK with the `blacksheep` extra:\n\n```bash\npip install \"apitally[blacksheep]\"\n```\n\nThen add the Apitally middleware to your application:\n\n```python\nfrom blacksheep import Application\nfrom apitally.blacksheep import use_apitally\n\napp = Application()\nuse_apitally(\n    app,\n    client_id=\"your-client-id\",\n    env=\"dev\",  # or \"prod\" etc.\n)\n```\n\nFor further instructions, see our\n[setup guide for BlackSheep](https://docs.apitally.io/setup-guides/blacksheep).\n\n## Getting help\n\nIf you need help please\n[create a new discussion](https://github.com/orgs/apitally/discussions/categories/q-a)\non GitHub or email us at [support@apitally.io](mailto:support@apitally.io). We'll get back to you as soon as possible.\n\n## License\n\nThis library is licensed under the terms of the [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapitally%2Fapitally-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapitally%2Fapitally-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapitally%2Fapitally-py/lists"}