Self-hosted web API that exposes free, unlimited access to modern LLM providers through a single, simple HTTP interface. It includes an optional web GUI for configuration and supports running via Python or Docker.
- Free to use
- Unlimited requests
- Simple HTTP interface (returns plain text)
- Optional Web GUI
- Docker image available
Note: The demo server, when available, can be overloaded and may not always respond.
- Features
- Screenshots
- Quick start
- Run with Docker
- Run from source
- Usage
- Quick examples (browser, curl, Python)
- File input
- Web GUI
- Command-line options
- Configuration
- Cookies
- Proxies
- Models and providers
- Private mode and password
- Siri integration
- Requirements
- Star history
- Contributing
- License
- Self-hosted DeepSeek-R1 and GPT-4o API
- Unlimited usage
- Free of cost
- User-friendly GUI
Pull and run with an optional cookies.json and port mapping. In Docker, setting a GUI password is recommended (and required by some setups).
- Minimal (no cookies):
docker run -p 5500:5500 d0ckmg/free-gpt4-web-api:latest
- With cookies (read-only mount):
docker run \
-v /path/to/your/cookies.json:/cookies.json:ro \
-p 5500:5500 \
d0ckmg/free-gpt4-web-api:latest
- Override container port mapping:
docker run -p YOUR_PORT:5500 d0ckmg/free-gpt4-web-api:latest
- docker-compose.yml:
version: "3.9"
services:
api:
image: "d0ckmg/free-gpt4-web-api:latest"
ports:
- "YOUR_PORT:5500"
#volumes:
# - /path/to/your/cookies.json:/cookies.json:ro
Note:
- If you plan to use the Web GUI in Docker, set a password (see “Command-line options”).
- The API listens on port 5500 in the container.
- Clone the repo
git clone https://github.com/aledipa/Free-GPT4-WEB-API.git
cd Free-GPT4-WEB-API
- Install dependencies
pip install -r requirements.txt
- Start the server (basic)
python3 FreeGPT4_Server.py
The API returns plain text by default.
- Quick browser test:
- Start the server
- Open: http://127.0.0.1:5500/?text=Hello
Examples:
- GET http://127.0.0.1:5500/?text=Write%20a%20haiku
- If you changed the keyword parameter (see
--keyword
), replacetext
with your chosen keyword.
- Simple text prompt:
curl "http://127.0.0.1:5500/?text=Explain%20quicksort%20in%20simple%20terms"
- File input (see
--file-input
in options):
fileTMP="$1"
curl -s -F file=@"${fileTMP}" http://127.0.0.1:5500/
import requests
resp = requests.get("http://127.0.0.1:5500/", params={"text": "Give me a limerick"})
print(resp.text)
- Start with GUI enabled:
python3 FreeGPT4_Server.py --enable-gui
- Open settings or login:
From the GUI you can configure common options (e.g., model, provider, keyword, history, cookies).
Show help:
python3 FreeGPT4_Server.py [-h] [--remove-sources] [--enable-gui]
[--private-mode] [--enable-history] [--password PASSWORD]
[--cookie-file COOKIE_FILE] [--file-input] [--port PORT]
[--model MODEL] [--provider PROVIDER] [--keyword KEYWORD]
[--system-prompt SYSTEM_PROMPT] [--enable-proxies] [--enable-virtual-users]
Options:
- -h, --help Show help and exit
- --remove-sources Remove sources from responses
- --enable-gui Enable graphical settings interface
- --private-mode Require a private token to access the API
- --enable-history Enable message history
- --password PASSWORD Set/change the password for the settings page
- Note: Mandatory in some Docker environments
- --cookie-file COOKIE_FILE Use a cookie file (e.g., /cookies.json)
- --file-input Enable file-as-input support (see curl example)
- --port PORT HTTP port (default: 5500)
- --model MODEL Model to use (default: gpt-4)
- --provider PROVIDER Provider to use (default: Bing)
- --keyword KEYWORD Change input query keyword (default: text)
- --system-prompt SYSTEM_PROMPT System prompt to steer answers
- --enable-proxies Use one or more proxies to reduce blocking
- --enable-virtual-users Enable virtual users to divide requests among multiple users
Some providers require cookies to work properly. For the Bing model, only the “_U” cookie is needed.
- Passing cookies via file:
- Use
--cookie-file /cookies.json
when running from source - In Docker, mount your cookies file read-only:
-v /path/to/cookies.json:/cookies.json:ro
- Use
- The GUI also exposes cookie-related settings.
Enable proxies to mitigate blocks:
- Start with
--enable-proxies
- Ensure your environment is configured for aiohttp/aiohttp_socks if you need SOCKS/HTTP proxies.
- Models: includes gpt-4 (and variants such as GPT-4o) and DeepSeek-R1
- Default model:
gpt-4
- Default provider:
Bing
- Change via flags or in the GUI:
--model gpt-4o --provider Bing
--private-mode
requires a private token to access the API--password
protects the settings page (mandatory in some Docker setups)- Use a strong password if you expose the API beyond localhost
Use the GPTMode Apple Shortcut to ask your self-hosted API via Siri.
Shortcut:
Say “GPT Mode” to Siri and ask your question when prompted.
- Python 3
- Flask[async]
- g4f (from https://github.com/xtekky/gpt4free)
- aiohttp
- aiohttp_socks
- auth
- Werkzeug
Contributions are welcome! Feel free to open issues and pull requests to improve features, docs, or reliability.
Credits:
- Some examples and tips credited to community members, including @git-malik and @ayoubelmhamdi.
GNU General Public License v3.0
See LICENSE for details.