Python ASGI
This module is made for Python Asynchronous Server Gateway Interface (ASGI) application.
Supported version
DataDome supports Python versions until they reach their End of Life date.
You can find the status of Python versions on the official website.
This module is compatible with ASGI application version 3.0 and above.
Prerequisites
- The server-side key available in your DataDome dashboard
Usage
The Python ASGI module is built as an ASGI middleware.
from datadome_asgi import DataDomeMiddleware
# Create FastAPI application
app = FastAPI()
# Bind the ASGI middleware on the FastAPI application
app.add_middleware(
DataDomeMiddleware,
server_side_key="YOUR_SERVER_SIDE_KEY",
)Settings
| Setting | Description | Default value |
|---|---|---|
| server_side_key | You DataDome server-side key. | |
| app | The ASGI application the middleware needs to be attached to. | |
| url_pattern_exclusion | Regex to match to exclude requests from being processed with the Protection API. | r"\.(avi|avif|bmp|css|eot|flac|flv|gif|gz|ico|jpeg|jpg|js|json|less|map|mka|mkv|mov|mp3|mp4|mpeg|mpg|ogg|ogm|opus|otf|png|svg|svgz|swf|tiff|ttf|wav|webm|webp|woff|woff2|xml|zip)$" |
| url_pattern_inclusion | Regex to match to process the request with the Protection API. | "" |
| endpoint_host | Host of the Protection API. | api.datadome.co |
| timeout | The timeout limit for requests sent to the Protection API, in milliseconds. | 150 |
| enable_mcp_support | Boolean to enable Model Context Protocol support. | false |
Here is an example of configuration with default values that you can modify according to your needs:
from datadome_asgi import DataDomeMiddleware
# Create FastAPI application
app = FastAPI()
# Bind the ASGI middleware on the FastAPI application
app.add_middleware(
DataDomeMiddleware,
server_side_key="YOUR_SERVER_SIDE_KEY",
urlPatternExclusion=r"\.(avi|avif|bmp|css|eot|flac|flv|gif|gz|ico|jpeg|jpg|js|json|less|map|mka|mkv|mov|mp3|mp4|mpeg|mpg|ogg|ogm|opus|otf|png|svg|svgz|swf|tiff|ttf|wav|webm|webp|woff|woff2|xml|zip)$",
urlPatternInclusion="",
endpoint_host="api.datadome.co",
timeout=0.15,
enable_mcp_support=False,
)Updated 1 day ago
