Skip to main content

AI Marketplace Monitor

PyPI - Version PyPI - Python Version Tests Codecov Read the Docs PyPI - License

Black pre-commit Contributor Covenant

An intelligent tool that monitors Facebook Marketplace listings using AI to help you find the best deals. Get instant notifications when items matching your criteria are posted, with AI-powered analysis of each listing.

📚 Read the Full Documentation

Search In Action

Example notification from PushBullet:

Found 1 new gopro from facebook
[Great deal (5)] Go Pro hero 12
$180, Houston, TX
https://facebook.com/marketplace/item/1234567890
AI: Great deal; A well-priced, well-maintained camera meets all search criteria, with extra battery and charger.

What's New

  • Built-in Web UI: Edit config, add AI backends, and monitor live logs from your browser — starts automatically with the monitor. See Web UI documentation.
  • Anthropic/Claude AI Backend: Use Claude models (e.g. claude-sonnet-4-20250514) to evaluate listings alongside OpenAI, DeepSeek, Gemini, and Ollama. See AI Services for configuration.
  • Configurable Rate Limiting: Rate limiting framework for all notification types with per-instance and global limits. Telegram notifications use optimized defaults automatically.

Table of Contents:

✨ Key Features

🔍 Smart Search

  • Search multiple products using keywords
  • Filter by price and location
  • Exclude irrelevant results and spammers
  • Support for different Facebook Marketplace layouts

🤖 AI-Powered

  • Intelligent listing evaluation
  • Smart recommendations
  • Multiple AI service providers supported
  • Self-hosted model option (Ollama)

📱 Notifications

  • PushBullet, PushOver, Telegram, or Ntfy notifications
  • HTML email notifications with images
  • Customizable notification levels
  • Repeated notification options

🖥️ Web UI

  • Built-in config editor with TOML syntax highlighting
  • Live log streaming and filtering
  • Add, edit, and delete config sections from your browser
  • No password required on localhost

Web UI

🌎 Location Support

  • Multi-city search
  • Pre-defined regions (USA, Canada, etc.)
  • Customizable search radius
  • Flexible seller location filtering

🚀 Quick Start

⚠️ Legal Notice: Facebook's EULA prohibits automated data collection without authorization. This tool was developed for personal, hobbyist use only. You are solely responsible for ensuring compliance with platform terms and applicable laws.

Installation

Requires Python 3.10 or higher. Check your version with python --version. If your system default is older, use pip3.10 (or pip3.11, pip3.12, etc.) instead of pip, or create a virtual environment with the correct version.

pip install ai-marketplace-monitor
playwright install

Basic Configuration

Create ~/.ai-marketplace-monitor/config.toml:

[marketplace.facebook]
search_city = 'houston'  # Replace with your city

[item.gopro]
search_phrases = 'Go Pro Hero 11'
min_price = 100
max_price = 300

[user.me]
pushbullet_token = 'your_token_here'  # Get from pushbullet.com

Run the Monitor

ai-marketplace-monitor

The program will open a browser, search Facebook Marketplace, and notify you of matching items. A web UI also starts automatically at http://127.0.0.1:8467 for editing config and monitoring logs — see Web UI Guide.

Run with Docker

A prebuilt Linux image is published to GitHub Container Registry. It bundles Python, Playwright Chromium, a virtual display (Xvfb), and an embedded noVNC client so you can solve Facebook CAPTCHAs / interactive logins from the web UI — useful on macOS, headless servers, or NAS boxes.

docker run -d --name aimm \
  -p 8467:8467 \
  -v "$HOME/.ai-marketplace-monitor:/root/.ai-marketplace-monitor" \
  -e FACEBOOK_USERNAME -e FACEBOOK_PASSWORD \
  -e ANTHROPIC_API_KEY \
  --restart unless-stopped \
  ghcr.io/bopeng/ai-marketplace-monitor:latest

Then open http://localhost:8467. When Facebook needs an interactive login or CAPTCHA, click the Browser button in the header to view and control the in-container Chromium.

Mounting ~/.ai-marketplace-monitor shares your existing config, cache, and logs between the host install and the container — so you can switch back and forth freely. Update with docker pull ghcr.io/bopeng/ai-marketplace-monitor:latest && docker restart aimm.

To build the image yourself instead of pulling: docker build -t aimm . from a checkout of this repo.

💡 Example Usage

Find GoPro cameras under $300:

[item.gopro]
search_phrases = 'Go Pro Hero'
keywords = "('Go Pro' OR gopro) AND (11 OR 12 OR 13)"
min_price = 100
max_price = 300

Search nationwide with shipping:

[item.rare_item]
search_phrases = 'vintage collectible'
search_region = 'usa'
delivery_method = 'shipping'
seller_locations = []

AI-powered filtering:

[ai.openai]
api_key = 'your_openai_key'

[item.camera]
description = '''High-quality DSLR camera in good condition.
Exclude listings with water damage or missing parts.'''
rating = 4  # Only notify for 4+ star AI ratings

📚 Documentation

For detailed information on setup and advanced features, see the comprehensive documentation:

Key Topics Covered in Documentation

Notification Setup:

  • Email (SMTP), PushBullet, PushOver, Telegram, Ntfy
  • Multi-user configurations
  • HTML email templates

AI Integration:

  • OpenAI, DeepSeek, Gemini, Anthropic, Ollama setup
  • Custom prompt configuration
  • Rating thresholds and filtering

Advanced Search:

  • Multi-city and region search
  • Currency conversion
  • Keyword filtering with Boolean logic
  • Proxy/anonymous searching

Configuration:

  • TOML file structure
  • Environment variables
  • Multiple marketplace support
  • Language/translation support

🤝 Contributing

Contributions are welcome! Here are some ways you can contribute:

  • 🐛 Report bugs and issues
  • 💡 Suggest new features
  • 🔧 Submit pull requests
  • 📚 Improve documentation
  • 🏪 Add support for new marketplaces
  • 🌍 Add support for new regions and languages
  • 🤖 Add support for new AI providers
  • 📱 Add new notification methods

Please read our Contributing Guidelines before submitting a Pull Request.

📜 License

This project is licensed under the Affero General Public License (AGPL). For the full terms and conditions, please refer to the official GNU AGPL v3.

💬 Support

We provide multiple ways to access support and contribute to AI Marketplace Monitor:

Important Note: Due to time constraints, priority support is provided to sponsors and donors. For general questions, please use the GitHub Discussions or Issues.

🙏 Credits

Metadata

Release files for ai-marketplace-monitor 0.10.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ai-marketplace-monitor 0.10.3
File Size Uploaded
ai_marketplace_monitor-0.10.3.tar.gz 7.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ai-marketplace-monitor 0.10.3
File Interpreter ABI Platform
ai_marketplace_monitor-0.10.3-py3-none-any.whl Python 3 none any Details

Total release size: 7.7 MB

Release files / ai_marketplace_monitor-0.10.3.tar.gz

Download URL ai_marketplace_monitor-0.10.3.tar.gz
Size 7.3 MB
Tags Source
SHA-256 checksum
How to use checksums
752b25425ce9974469df06f3d09cd0c529030ea24cf4ca9f47c231d0be0148f2
BLAKE2b-256 checksum
How to use checksums
eee8eb469162e41581a3935330b104b54feb2c0b8773ccc0552b86ab55c354b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / ai_marketplace_monitor-0.10.3-py3-none-any.whl

Download URL ai_marketplace_monitor-0.10.3-py3-none-any.whl
Size 345.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7770246181b4b8c7c12fac69bb82a11cc744c3a4402350aa3cecedc02915e06e
BLAKE2b-256 checksum
How to use checksums
2f3dd4e1b567c0e07d693447945d5b8196a64d7bc522e45c6092e01fe1ffe898
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.10.3 This release

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.11

2 release files

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.5

2 release files

0.3.3

2 release files

0.2.7

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page