Interactive background (mouse parallax + cursor glow) + OpenAPI spec + agent structured data

This commit is contained in:
drjones
2026-09-19 21:17:13 -07:00
parent 8502e3471a
commit 19625811d6
3 changed files with 100 additions and 11 deletions

42
app.py
View File

@@ -530,6 +530,7 @@ Sells residential SOCKS5 and HTTP CONNECT proxies with global geo-targeting
- Signup: username + password only (no email, no KYC)
## API
- OpenAPI spec: {SITE_HOST}/openapi.json
- GET /api/v1/info -> service info (JSON)
- GET /api/v1/plans -> residential GB plans (JSON)
- POST /api/v1/proxy -> one-call purchase (JSON: plan_id, country, city, username, password) -> creds + BTCPay checkout URL
@@ -652,6 +653,47 @@ def api_order_status(order_id):
return jsonify({"order_id": order_id, "status": o["status"], "amount_sats": o["amount_sats"]})
@app.route("/openapi.json")
def openapi():
spec = {
"openapi": "3.0.3",
"info": {
"title": "Clean Proxys API",
"version": "1.0.0",
"description": "Programmatic residential SOCKS5/HTTP proxy purchase. No KYC. "
"One-call provisioning with Bitcoin (BTCPay) billing.",
},
"servers": [{"url": f"https://{SITE_HOST}"}],
"paths": {
"/api/v1/info": {"get": {"summary": "Service info", "responses": {"200": {"description": "ok"}}}},
"/api/v1/plans": {"get": {"summary": "List residential GB plans", "responses": {"200": {"description": "plans"}}}},
"/api/v1/proxy": {"post": {
"summary": "One-call purchase: create account + invoice, return proxy credentials",
"requestBody": {"content": {"application/json": {"schema": {"type": "object", "properties": {
"plan_id": {"type": "integer", "description": "plan id from /api/v1/plans"},
"country": {"type": "string", "description": "ISO country code, e.g. US"},
"city": {"type": "string", "description": "optional city"},
"username": {"type": "string", "description": "optional; auto-generated if omitted"},
"password": {"type": "string", "description": "optional; auto-generated if omitted"},
}}}}},
"responses": {"200": {"description": "username, proxy_password, socks5/http strings, invoice checkout_url, status_url"}},
}},
"/api/v1/order/{order_id}": {"get": {
"summary": "Payment status (pending/paid)",
"parameters": [{"name": "order_id", "in": "path", "required": True, "schema": {"type": "string"}}],
"responses": {"200": {"description": "status"}},
}},
"/api/v1/dedicated/locations": {"get": {
"summary": "Dedicated IP location catalog",
"parameters": [{"name": "product", "in": "query", "schema": {"type": "integer", "enum": [3, 9]},
"description": "3=datacenter, 9=ISP"}],
"responses": {"200": {"description": "locations"}},
}},
},
}
return jsonify(spec)
@app.route("/sitemap.xml")
def sitemap():
urls = [f"https://{SITE_HOST}/{p}" for p in ["", "plans", "signup", "login", "llms.txt"]]