A middleware to monetize Django APIs with Stripe and the 402 Error Code
Project description
Django API Gate 🏦
Monetize your Django API in minutes. django-api-gate is a drop-in middleware that turns your API into a metered, paid service. It connects to the API Gate Hub protocol to handle API keys, credit balances, and billing automatically.
🚀 Features
Instant Paywall: Protects your API routes with one line of code.
Metered Billing: Deducts credits per request automatically.
Zero-Config Banking: No need to set up Stripe or Ledger logic yourself—API Gate Hub handles the backend.
High Performance: Uses persistent connection pooling for minimal latency impact (~20ms).
📦 Installation
pip install django-api-gate
⚙️ Configuration
- Add into your settings.py:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# ...
'django_api_gate.middleware.ApiGateMiddleware', # <--- Add this
# ...
]
-
Go to API Gate Hub and create an account.
-
Copy your API Key from the dashboard.
-
Add your API Key to settings.py:
API_GATE_API_KEY = "your-merchant-uuid-here"
OPTIONAL VARIABLES:
Change which URLS are protected (Default: '/api/'):
API_GATE_URL_PREFIX = "/v1/"
Change the cost per request (Default: 1 credit):
API_GATE_PRICE = 5
🛠️ Usage
Once installed, any request to your protected URL prefix (e.g., /api/data) will require an API Gate Key in the header:
curl -H "X-Api-Key: 'customer-uuid-here'" https://yoursite.com/api/data
If a user runs out of credits, they receive a standard 402 Payment Required response:
{ "error": "Insufficient Credits", "balance": 0, "top_up_url": "https://api-gate-production.onrender.com/" }
If a user is missing a key, they receive a standard 402 Payment Required response:
{ "error": "Payment Required", "message": "Access requires a prepaid API Key in header 'X-Api-Key'.", "portal_url": "https://api-gate-production.onrender.com/" }
🏗️ Architecture
This library operates as a Spoke in a Hub-and-Spoke financial model.
The Hub: The API Gate Hub (Ledger, Stripe Processing, User Accounts).
The Spoke: Your Django App (Product, Logic, Value).
When a request comes in, this middleware pings the Hub to verify funds and transfer credits from the Consumer to the Merchant.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_api_gate-0.0.4.tar.gz.
File metadata
- Download URL: django_api_gate-0.0.4.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51068f6b757c02661468504bf46fb48f9e103ac7f44399ac6febcd222af6a748
|
|
| MD5 |
ba63965cbe07bfb956c048abe16a4375
|
|
| BLAKE2b-256 |
b7b6c40d0e9db91a27ea35ad60d06bcdabab21e572cd054df67c865a6c3eb5b3
|
File details
Details for the file django_api_gate-0.0.4-py3-none-any.whl.
File metadata
- Download URL: django_api_gate-0.0.4-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1e96ef1a26cd39792bcdf1b552ff5e514c97a711ac8ac81d0574525db2e80a3
|
|
| MD5 |
624208f00d2e2751f511a3f050c76322
|
|
| BLAKE2b-256 |
5ef81e65336c1533ea8bf8f548a257d097be4a1dbabed6aa786b410cb9d8dd52
|