Skip to main content

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

  1. Add Middleware

In your settings.py:

MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # ... 'django_api_gate.middleware.ApiGateMiddleware', # <--- Add this # ... ]

  1. Add Your Merchant Key

Go to API Gate Hub and create an account.

Copy your API Key from the dashboard.

Add it to settings.py:

API_GATE_API_KEY = "your-merchant-uuid-here"

Optional Settings

You can customize the behavior with these optional variables:

Change which URLs are protected (Default: '/api/')

API_GATE_URL_PREFIX = "/v1/"

Change cost per request (Default: 1 credit)

API_GATE_PRICE = 5

🛠️ Usage

For Your Users (The Consumers)

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

Error Responses

If a user is missing a key or 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/" }

🏗️ 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

django_api_gate-0.0.1.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_api_gate-0.0.1-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file django_api_gate-0.0.1.tar.gz.

File metadata

  • Download URL: django_api_gate-0.0.1.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

Hashes for django_api_gate-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3dde3dc5be2fd1be9b542eb6959867172f3282b5f4ab5dd88eb4089707dd32f8
MD5 72ed2884159dd29f0bd91d63b9b4854a
BLAKE2b-256 2d5e864a9279e48b1fe9039692ee2530293743de70e7148934c51d56b1e7179a

See more details on using hashes here.

File details

Details for the file django_api_gate-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_api_gate-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6c02d78282ff0d20a15b9d6929f9bbcf3f968572ed83599b25b16364cd9a13c3
MD5 27c66d2e639c50a896227b852659d802
BLAKE2b-256 c56845af6ce834c5c8553cc16466f9e172d37653ead09c56b7f2fb7ebae3f86f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page