Structured webpage change monitoring

Know what changed before they do

Monitor competitor pricing, job postings, and landing pages. FlyPython filters out noise and sends you field-level diffs — not just "the page changed."

Get alerts in Slack, email, or webhook when prices drop, jobs are posted, or messaging pivots.

No credit card · 100 free calls / month
page.changed
{
  "event": "page.changed",
  "url": "https://competitor.com/pricing",
  "change_type": "price_drop",
  "confidence": 0.97,
  "diff": {
    "price": { "before": 129.00, "after": 99.00 },
    "stock_status": { "before": "in_stock", "after": "in_stock" }
  },
  "summary": "Price dropped 23%. Stock unchanged."
}

Not just “the page changed.”

“Price dropped 23%. Stock unchanged.”

Field-level structured diffs, classified and delivered as webhook events.

100
Free calls / month
$0.003
Per API call
<3 min
Setup time
Field-level
Structured diffs

Built for teams tracking:

Competitor pricingJob postingsLanding pagesProduct launchesFunding news

Use cases

What teams monitor with FlyPython

Get alerted when the fields that matter actually change — not when timestamps, ads, or tokens shift.

Competitor pricing

Track competitor prices, promotions, and plan changes. Get alerted the same day a rival undercuts you.

Example diff

Price dropped 23% ($129 → $99)

Job postings

Watch career pages for new roles, department expansions, and hiring velocity. Spot growth signals early.

Example diff

3 new "Engineering" roles added in London

Landing page changes

Detect headline changes, CTA updates, hero swaps, and pricing-block moves. See messaging pivots in real time.

Example diff

Headline changed: "Old message" → "New message"

How It Works

From pages to events

FlyPython handles the web-reading loop so your team can work with stable events instead of brittle page checks.

01

Pick a template

Choose competitor pricing, job postings, landing pages, or describe what you want to watch in plain English.

02

Add targets & channels

Enter the URLs to monitor, how often to check, and where to deliver alerts — Slack, email, webhook, or all three.

03

Get structured events

When a meaningful field changes, receive a signed webhook with before/after values, confidence, and a short summary.

A webhook your code can trust

Each event includes the changed fields, before/after values, a confidence score, and a human-readable summary. Delivery is signed, retried, and logged.

See the API docs
POST /events → 200 OK
{
  "event": "page.changed",
  "url": "https://competitor.com/pricing",
  "change_type": "price_drop",
  "confidence": 0.97,
  "diff": {
    "price": { "before": 129.00, "after": 99.00 },
    "stock_status": { "before": "in_stock", "after": "in_stock" }
  },
  "summary": "Price dropped 23%. Stock unchanged."
}

Why FlyPython

Not just another change detector

Ordinary crawler
FlyPython
The page changed
Price dropped 23%, stock unchanged
Text diff noise
Field-level structured diffs
Polling loops
Webhook events on real changes
Browser/proxy setup
Managed Cloudflare runtime
Raw HTML/Markdown
Agent-ready JSON + Markdown
Timestamps & tokens
Built-in noise filtering

Live Playground

Try it with a URL

Extract structured data, search the web, or create a monitor before you sign up.

Extract structured data from a URL

JSON schema for structured extraction. Leave empty for auto-detection.

Paste a URL above and click Extract to see structured data

For developers

One Python SDK for web-aware agents

Use FlyPython for one-off extraction, scheduled monitors, and agent workflows. Get typed Pydantic models, signed webhooks, and MCP server support.

  • Typed Python SDK with sync and async clients
  • Extract, search, crawl, and monitor through one API
  • Signed webhook delivery with retries and logs
  • Pydantic models and MCP server support
agent.py
import flypython

# One-shot extraction
result = flypython.extract(
    url="https://example.com/product",
    schema={"title": "string", "price": "number"},
)

# Or create a monitor
flypython.monitor(
    url="https://competitor.com/pricing",
    schema={"price": "number", "stock_status": "string"},
    webhook="https://myagent.com/events",
    schedule="0 */6 * * *",
)

# Your webhook receives a typed diff only when real fields change.

Pricing

Pricing that scales with usage

No subscriptions. No minimums. Start with 100 free calls every month, then pay only for successful API calls and monitor checks.

$0.003/ API call
Extract, search, crawl, and monitor checks. Failed requests are not charged. Funds never expire.

Ready to turn the web into events?

Get started in minutes with 100 free API calls every month. No credit card required.