fastapi-poe
A demonstration of the Poe protocol using FastAPI
Decision gist · record as of 2026-08-14
Yes, if you are building a bot for the Poe platform and want to avoid implementing the protocol yourself. The low install friction and permissive license make it straightforward to adopt. However, note that maintenance is aging, so verify compatibility with your fastapi and Python versions before committing to production use.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.9.
- To expose your bot publicly for Poe integration, you will need a tunneling tool.
- Low install friction with a pure-Python wheel distribution.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache Software License (permissive), so you can use and modify the package freely in commercial and open-source projects without significant legal constraints.
last release 2026-01-22 (204 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 123,862 downloads/mo, #11,895 on PyPI
Alternatives
Verify before relying
pip install fastapi-poe
import fastapi_poe as fp
class EchoBot(fp.PoeBot):
async def get_response(self, request: fp.QueryRequest):
last_message = request.query[-1].content
yield fp.PartialResponse(text=last_message)
if __name__ == "__main__":
fp.run(EchoBot(), allow_without_key=True)- Whether the aging maintenance status indicates active development or dormancy.
- Real-world performance characteristics when handling concurrent requests or large message volumes.
- Compatibility with recent versions of fastapi and its ecosystem dependencies.
What it is and what it does
fastapi-poe is a Python library that implements the Poe protocol specification on top of fastapi, enabling you to build and deploy bots that work with the Poe platform. It provides a base class, PoeBot, that you subclass to define your bot's behavior by implementing an async get_response method. The library handles the HTTP protocol details, request parsing, and response streaming so you can focus on the bot logic itself.
The package depends on fastapi, httpx, httpx-sse, pydantic, sse-starlette, typing-extensions, and uvicorn. It's designed for developers who want to create custom bots for Poe without building the protocol layer from scratch. To make your bot accessible to Poe, you run it locally and use a tunneling tool to expose it publicly, then register it on the Poe platform.
Use it for
- Build a custom bot that responds to user queries on the Poe platform without implementing the protocol yourself.
- Create a bot that echoes or transforms user messages, or wraps an existing API as a Poe-compatible service.
- Integrate a local service or model with Poe by exposing it through fastapi-poe.
- Prototype and test bot behavior locally before deploying to production.
- Extend Poe's capabilities with domain-specific bots that inherit from PoeBot and override get_response.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building a bot for the Poe platform and want to avoid implementing the protocol yourself.
The low install friction and permissive license make it straightforward to adopt. However, note that maintenance is aging, so verify compatibility with your fastapi and Python versions before committing to production use.
Install
fastapi-poe on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance status is aging, so expect slower response to issues or breaking changes in dependencies.
Requires Python >=3.9. To expose your bot publicly for Poe integration, you will need a tunneling tool.
License in practice
Licensed under Apache Software License (permissive), so you can use and modify the package freely in commercial and open-source projects without significant legal constraints.
Quickstart
pip install fastapi-poe
import fastapi_poe as fp
class EchoBot(fp.PoeBot):
async def get_response(self, request: fp.QueryRequest):
last_message = request.query[-1].content
yield fp.PartialResponse(text=last_message)
if __name__ == "__main__":
fp.run(EchoBot(), allow_without_key=True)
Verify before relying
- Whether the aging maintenance status indicates active development or dormancy.
- Real-world performance characteristics when handling concurrent requests or large message volumes.
- Compatibility with recent versions of fastapi and its ecosystem dependencies.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 7 packagesfastapihttpxhttpx-ssepydanticsse-starlettetyping-extensionsuvicorn |
| Maintenance | Aging 204 days since the last release |
| First released | |
| Downloads | 123,862 / month, #11,895 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: fastapi_poe-0.0.83-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “poe bot framework”
- fastapi-poeImplements the Poe protocol using FastAPI, allowing you to build and…
- botframework-streamingProvides streaming protocol support for Microsoft Bot Framework bots,…
- botbuilder-schemaProvides serialized data schemas and message types for communication…
Give your agent the search over MCP, or paste the wish link into any chat.
More Dynamic Content packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.
Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.
Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.
See also botframework-streaming · botbuilder-core · botbuilder-integration-aiohttp · line-bot-sdk · botframework-connector · pyTelegramBotAPI · zulip · python-telegram-bot · twitchAPI · fastapi-cli