Skip to content


Use the following options to configure Uvicorn, when running from the command line.

If you're running using programmatically, using, then use equivalent keyword arguments, eg., port=5000, debug=True, access_log=False).


  • APP - The ASGI application to run, in the format "<module>:<attribute>".

Socket Binding

  • --host - Bind socket to this host. Use --host to make the application available on your local network. Default: ''.
  • --port - Bind to a socket with this port. Default: 8000.
  • --uds - Bind to a UNIX domain socket. Useful if you want to run Uvicorn behind a reverse proxy.
  • --fd - Bind to socket from this file descriptor. Useful if you want to run Uvicorn within a process manager.


  • --debug - Enable debug mode. Provides error tracebacks in the browser, and enables auto-reloading.


  • --log-level - Set the log level. Options: 'critical', 'error', 'warning', 'info', 'debug'. Default: 'info'.
  • --no-access-log - Disable access log only, without changing log level.


  • --loop - Set the event loop implementation. The uvloop implementation provides greater performance, but is not compatible with Windows or PyPy. Options: 'auto', 'asyncio', 'uvloop'. Default: 'auto'.
  • --http - Set the HTTP protocol implementation. The httptools implementation provides greater performance, but it not compatible with PyPy, and requires compilation on Windows. Options: 'auto', 'h11', 'httptools'. Default: 'auto'.
  • --ws - Set the WebSockets protocol implementation. Either of the websockets and wsproto packages are supported. Use 'none' to deny all websocket requests. Options: 'auto', 'none', 'websockets', 'wsproto'. Default: 'auto'.

Application Interface

  • --wsgi - Use WSGI as the application interface rather than ASGI. Note that WSGI mode always disables WebSocket support, as it is not supported by the WSGI interface.


  • --root-path - Set the ASGI root_path for applications submounted below a given URL path.
  • --proxy-headers - Use X-Forwarded-Proto, X-Forwarded-For, X-Forwarded-Port to populate remote scheme/address info.

Resource Limits

  • --limit-concurrency - Maximum number of concurrent connections or tasks to allow, before issuing HTTP 503 responses. Useful for ensuring known memory usage patterns even under over-resourced loads.
  • --limit-max-requests - Maximum number of requests to service before terminating the process. Useful when running together with a process manager, for preventing memory leaks from impacting long-running processes.


  • --timeout-keep-alive - Close Keep-Alive connections if no new data is received within this timeout. Default: 5.