⚙️ Admin
REAL-TIME LIVE · under 50ms latency

Capture Amazon Relay tours in real time

Professional system with Chrome extension + Python receiver for monitoring, filtering and automated booking on the Amazon Relay loadboard. Detection profile identical to a real user.

receiver.py — live monitoring
$ python3 receiver.py [receiver] started on 0.0.0.0:9001 [receiver] grace_period=1.5s · ring=1000 [ws] ext connected · tab 1: relay.amazon.es [capture] 200 OK · 143036B · fetch=87ms [capture] 200 OK · 143036B · fetch=92ms [pool] +3 new · ~12 changed [broadcast]2 dispatchers [health] fresh · 92 polls/min [capture] 200 OK · 143036B
<50ms
Latency ext→recv
10/sec
B_PLUS validated rate
10
Safety gates on book
1000
JSONs in RAM (default)

Everything you need for real-time capture

From fetch interception to WebSocket dispatch — every component optimized for zero detection and minimal latency.

🌐

Chrome Extension MV3

Strict PAGE/ISOLATED/SW architecture. Monkey-patch fetch + XHR for transparent capture.

  • Multi-host (es/de/it/fr/uk/com)
  • Auto-pagination up to 20 pages
  • CSRF auto-capture from real traffic
🐍

Python Receiver (FastAPI)

WebSocket + HTTP server for capture, dispatch and storage. Local SQLite for audit.

  • Deduplicated pool with TTL grace period
  • Parallel multi-dispatcher broadcast
  • Auto-stop on consecutive fails
📊

Live Dashboard

6 live charts + tabs for recent captures and raw JSONs from RAM with ZIP download.

  • Status pie · latency · body size
  • Polls/min sparkline
  • Fetch ms · recv→UI ms
🛡️

10-Gate Safety Chain

Book defense in depth: file gate + popup toggle + DOM verify + URL verify + LEVEL 4 fetch/XHR block.

  • book_unlock.json gate file
  • Lock tour ID + URL match
  • Native Amazon error code
🎯

Pull via UI Click

Click on the native Refresh button. Full telemetry, indistinguishable from a real user.

  • Robust selector via SVG path
  • Trusted click events
  • Zero bot signature

Real-time WebSocket

Instant push to dispatchers (UI, agent, etc). Queue with reconnect + backoff on connection loss.

  • 200 messages queue in background
  • Concurrent broadcast (asyncio.gather)
  • __server_ts for latency tracking
🔍

UI with advanced filters

Tours page with custom filters: country, city, distance, payout, ppd, duration, equipment, time windows, multi-stop.

  • Savable presets (see FILTER_PRESETS)
  • Instant client-side filtering
  • Highlight + sound on match
📦

Raw JSON Export

Ring buffer with last 1000 raw JSONs in RAM. ZIP download with _manifest for audit/replay/training data.

  • Ring configurable via env var
  • Download 50/100/500/1000 as ZIP
  • Formatted JSON preview in UI
🔔

Alerts & Notifications

Automatic move-to-top on new tours, CSS highlight, configurable sounds (new/price/booked), auto-clear timer.

  • 3 distinct sounds (new/price/booked)
  • Visual move-to-top + animation
  • Per-panel alert config

See it in action

Live dashboard, UI with filters, stats modal, raw JSON viewer — all in a consistent dark design.

📊
Dashboard Stats Modal
6 live charts + memory + ring info
Upload from /admin
🎯
UI Loadboard with Filters
Filter sidebar + presets + table
Upload from /admin
📦
Raw JSONs Tab
List + viewer + ZIP download
Upload from /admin
⚙️
Extension Popup
Poll rate, jitter, filter settings
Upload from /admin
🛡️
Safety Gates
book_unlock + popup + LEVEL 4
Upload from /admin
🔔
Alerts Highlight
Move-to-top + sound on new tour
Upload from /admin

Images are loaded dynamically. For admin: → open /admin

Three components, one single flow

Browser → WebSocket LAN → Python Receiver → Multi-dispatcher broadcast

┌─────────────────────────────────────────────────────────────────┐ │ BROWSER │ │ │ │ Tab Amazon Relay (relay.amazon.com / mock relay-api.myvio.eu) │ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────┐ │ │ │ PAGE world │ │ ISOLATED world │ │ SERVICE │ │ │ │ │ │ │ │ WORKER │ │ │ │ injected.js │←→│ content_script │←→│ background │ │ │ │ (fetch override │ │ (bridge IPC) │ │ (WS + poll) │ │ │ └──────────────────┘ └──────────────────┘ └──────┬───────┘ │ └──────────────────────────────────────────────────────┼──────────┘ │ WebSocket ↓ ┌─────────────────────────────────────────────────────────────────┐ │ PYTHON RECEIVER (FastAPI) │ │ ws://192.168.0.31:9001/ws/stream │ │ │ │ Memorie: POOL · LAST_SEEN · POLL_HISTORY │ │ LATENCIES · LATENCIES_OUT · RAW_RING (1000) │ │ Disk: reports_db.sqlite (book history, snapshots, events) │ └──────────────────────┬──────────────────────────────────────────┘ │ WS broadcast ↓ ┌─────────────────────────────────────┐ │ BOOKER-ADMIN UI · AGENTI · CUSTOM │ │ Multi-dispatcher real-time │ └─────────────────────────────────────┘

From fetch to dispatcher in <50ms

1

Fetch Amazon

Amazon page JS makes the request normally /api/loadboard/search

2

Ext intercept

injected.js monkey-patch captures response + measures fetch_ms

3

IPC Bridge

postMessage → content_script → background SW

4

WS push

background.js sends payload through WebSocket to receiver

5

Broadcast

Receiver diff vs POOL → parallel broadcast to dispatchers

What Amazon sees — honest analysis

Detection profile identical to a real user using the Amazon Relay UI.

⚠️ What Amazon SEES

  • Normal HTTP requests Standard server-side logging. Unavoidable — user makes the request via UI anyway.
  • Normal headers (cookie, csrf, UA) Pass-through, unchanged by extension.
  • Trusted click events Pendo, csa.ContentInteraction see native clicks. Good for us: shows real user activity.
  • window.fetch wrapped Theoretically via fetch.toString(). Production anti-bot does not check this in practice.

✅ What Amazon DOES NOT SEE

  • Internal postMessage __relay_capture: true — they have no listener with this filter.
  • performance.now() local Just CPU clock, zero network.
  • Captured body Stays on device + private LAN WebSocket.
  • btn.click() vs trusted Native event listeners fire identically. Empirically verified on real Amazon production.
  • WebSocket to receiver Private LAN, inaccessible from amazon.com origin.

Full stack

Only mature technologies, no hype. Zero JS framework in browser for capture.

🟦
Chrome MV3
Extension platform
🐍
Python 3.11+
Receiver runtime
FastAPI
HTTP + WebSocket
🗄️
SQLite
Reports & audit
🐘
PHP 8 + MySQL
Admin UI + multi-tenant
📈
Chart.js 4
Live charts dashboard
🎨
Bootstrap 5
UI components
🐳
Docker
Mock + reverse proxy

Ready to start?

Everything you need: Chrome extension, Python receiver, and 5 minutes of configuration. The complete documentation guides you step by step.