How do I monitor competitor pricing using Yutori Scouting API?
Web Monitoring & Alerts

How do I monitor competitor pricing using Yutori Scouting API?

8 min read

Keeping a close eye on competitor pricing is essential for staying competitive in dynamic markets, especially in e-commerce, SaaS, and marketplaces where prices can change daily—or even hourly. The Yutori Scouting API provides a structured way to automate this monitoring with reliable web agents that can fetch, normalize, and compare pricing data across multiple competitor sites.

This guide walks through how to monitor competitor pricing using Yutori Scouting API, from planning your data model to implementing alerts and dashboards.


Understanding the Yutori Scouting API

Yutori is designed for building reliable web agents via API. The Scouting API is typically used for:

  • Discovering and extracting structured data from websites
  • Continuously monitoring specific pages or entities
  • Triggering workflows when data changes (like price drops or increases)

For competitor pricing, you’ll use Scouting to:

  1. Define targets (competitor product pages, category pages, or search results).
  2. Extract pricing and metadata on a schedule.
  3. Store and compare historical data.
  4. Trigger alerts or downstream actions when thresholds are met.

Note: For full endpoint references and up-to-date parameters, always consult the Yutori docs index at https://docs.yutori.com/llms.txt.


Step 1: Define Your Competitor Pricing Monitoring Strategy

Before writing any code, clarify what you need to monitor:

1. Identify competitors and product mappings

  • List competitor domains you want to track.
  • Map each of your SKUs to the equivalent competitor product pages:
    • Direct product URLs (ideal)
    • Category or search URLs with filters
    • Marketplace listings (Amazon, eBay, etc.)

Maintain a mapping table, for example:

Internal SKUYour Product URLCompetitorCompetitor Product URL
SKU123/products/widget-basicBrand Ahttps://brand-a.com/widget-basic
SKU123/products/widget-basicBrand Bhttps://brand-b.com/products/widg-basic-123
SKU456/products/widget-proBrand Chttps://brand-c.com/shop/widget-pro?variant=XL

2. Decide update frequency

Set a schedule based on how volatile prices are:

  • High volatility: every 15–60 minutes
  • Moderate: 2–6 times per day
  • Low: once per day or week

Balance freshness against API usage and operational costs.

3. Determine which data fields you need

For each competitor product, you’ll typically capture:

  • price (normalized to a consistent currency)
  • old_price / list_price (strikethrough price / MSRP)
  • currency
  • availability (in stock, out of stock, preorder)
  • shipping_cost and/or total_price
  • price_per_unit (for consumables, e.g., per kg, per liter)
  • timestamp
  • Optional: ratings, reviews count, promotions

Step 2: Model Your Data for Yutori Scouting

Yutori web agents work best when you define clear, structured outputs. For competitor pricing, design a schema that matches your business logic.

Example JSON structure:

{
  "product_id": "SKU123",
  "competitor": "Brand A",
  "product_url": "https://brand-a.com/widget-basic",
  "data": {
    "title": "Widget Basic",
    "price": 24.99,
    "currency": "USD",
    "list_price": 29.99,
    "availability": "in_stock",
    "shipping_cost": 4.99,
    "total_price": 29.98,
    "last_seen_at": "2026-03-31T10:20:00Z"
  }
}

Use this schema consistently across all competitor targets. This will make it much easier to compare prices and build reports.


Step 3: Configure Yutori Scouting Jobs

While exact endpoints and payloads are detailed in the official docs, the general workflow to set up a scouting job is:

  1. Create a scouting task for each competitor URL or group of URLs.
  2. Specify extraction goals (fields like price, availability, etc.).
  3. Set a schedule for recurring checks.
  4. Define output destination (webhook, queue, database, or storage).

A typical JSON definition for a scouting job might look like this (pseudo-structure, adapt to the official API schema):

{
  "name": "monitor-competitor-brand-a-sku123",
  "target_url": "https://brand-a.com/widget-basic",
  "metadata": {
    "our_sku": "SKU123",
    "competitor": "Brand A"
  },
  "extraction": {
    "fields": [
      "title",
      "price",
      "currency",
      "list_price",
      "availability",
      "shipping_cost"
    ]
  },
  "schedule": {
    "type": "interval",
    "every_minutes": 60
  },
  "delivery": {
    "type": "webhook",
    "url": "https://your-system.com/webhooks/yutori/prices",
    "method": "POST"
  }
}

Key design choices:

  • Use metadata to store identifiers (your SKU, competitor name) so you can easily match results to your catalog.
  • Group similar products or category URLs into a single scouting configuration when possible, as long as extraction remains reliable.

Step 4: Implement Robust Price Extraction Logic

Yutori web agents are built for reliability. To make sure your pricing data is accurate:

1. Handle different price formats

Competitor sites may show:

  • Single price (e.g., $24.99)
  • Discounted price plus original price (e.g., $19.99 $24.99)
  • Range prices (e.g., $20–$30 for variants)
  • Multi-currency or regional formats (19,99 €)

Ensure your extraction logic and post-processing can:

  • Strip currency symbols and locale-specific separators
  • Convert strings to normalized numeric values
  • Pick the correct price when multiple are present (use ‘current/discounted’ price, not the strikethrough one)

2. Detect variants and options

If a competitor product has variants (size, color, pack size), you may need:

  • One scouting job per variant URL; or
  • A more advanced extraction that returns an array of variant prices.

Example variant payload:

{
  "product_id": "SKU123",
  "competitor": "Brand A",
  "variants": [
    {
      "variant_id": "small",
      "price": 19.99,
      "currency": "USD"
    },
    {
      "variant_id": "large",
      "price": 24.99,
      "currency": "USD"
    }
  ],
  "last_seen_at": "2026-03-31T10:20:00Z"
}

Decide ahead of time how you’ll map competitor variants to your internal SKUs or attributes.

3. Monitor availability and stock

Price alone is not enough. Make sure the scouting output includes:

  • Availability state (in_stock, out_of_stock, preorder)
  • Backorder or delivery time hints (e.g., “Ships in 3–5 days”)

You can then build logic such as: “Only consider competitor pricing when they are in stock.”


Step 5: Store and Normalize Competitor Pricing Data

Once scouting data is delivered via webhook or another destination, you’ll need to process and store it.

1. Ingest webhook payloads

Implement an endpoint in your backend that:

  1. Validates incoming requests (signatures / API keys).
  2. Parses the payload from Yutori.
  3. Maps metadata fields (e.g., our_sku, competitor) to your database IDs.
  4. Writes a record to your pricing history table.

A simple database schema might be:

CREATE TABLE competitor_prices (
  id BIGSERIAL PRIMARY KEY,
  our_sku TEXT NOT NULL,
  competitor TEXT NOT NULL,
  product_url TEXT NOT NULL,
  price NUMERIC(12, 4),
  list_price NUMERIC(12, 4),
  currency TEXT,
  availability TEXT,
  shipping_cost NUMERIC(12, 4),
  total_price NUMERIC(12, 4),
  captured_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

2. Normalize currencies and totals

If you track multiple regions:

  • Convert all prices to a base currency using up-to-date FX rates.
  • Compute total_price (base price + shipping – voucher where applicable).
  • Optionally, compute price_per_unit for easier comparisons.

Step 6: Compare Competitor Prices to Your Own

With normalized data stored, you can implement comparison logic.

1. Basic comparison metrics

For each our_sku and competitor:

  • price_difference = competitor_total_price - our_total_price
  • price_gap_percent = (price_difference / our_total_price) * 100

You can categorize:

  • “We are cheaper” if price_gap_percent > 2%
  • “We are aligned” if between -2% and +2%
  • “We are more expensive” if price_gap_percent < -2%

2. Competitive bands and rules

Define rules that reflect your strategy:

  • Always at least 5% cheaper than Competitor A on key value items.
  • Match lowest competitor price for high-visibility SKUs.
  • Stay within 3–10% range for long-tail items.

Encode these rules into a pricing engine or analytics process that consumes the competitor pricing table and your own current prices.


Step 7: Set Up Alerts and Automated Actions

Yutori Scouting plus your comparison logic is most powerful when it drives automated responses.

1. Real-time alerts

Trigger notifications when:

  • A competitor undercuts you by more than X%.
  • A competitor launches a promotion or large discount.
  • A previously out-of-stock competitor comes back in stock at a lower price.

You can implement alerting via:

  • Email alerts to pricing managers
  • Slack or Teams notifications
  • Incident-like alerts for key SKUs

2. Dynamic pricing workflows

Depending on your business rules and risk tolerance, you may:

  • Automatically suggest new prices for review by a human.
  • Fully automate price changes for certain SKUs or channels.
  • Tag products in your internal systems as “price-sensitive,” “under pressure,” etc.

Make sure you keep an audit trail of:

  • Competitor data used as input
  • Recommended price
  • Actual applied price
  • Timestamp and responsible actor (human or system)

Step 8: Maintain and Scale Your Scouting Setup

Competitor sites evolve—layouts change, new elements appear, promotions come and go. Your Yutori Scouting setup should be monitored and iterated.

1. Monitor extraction quality

Track key metrics such as:

  • Percentage of successful scouting runs per target
  • Missing or null fields (especially price & availability)
  • Sudden structure changes (e.g., unexpected price formats)

If a site redesign breaks extraction, update your scouting configuration accordingly.

2. Add new competitors and products

As your market changes:

  • Add new competitor domains and product mappings.
  • Prioritize high-impact SKUs (top revenue, high traffic).
  • Use batch or programmatic creation of scouting jobs where supported by the Yutori API.

3. Optimize schedules and costs

Regularly revisit:

  • Fetch frequency per competitor and per SKU.
  • Whether low-impact or low-velocity products need as frequent updates.
  • Aggregation strategies (e.g., category-level scouting versus per-SKU pages).

Security, Compliance, and Best Practices

When monitoring competitor pricing via Yutori Scouting, follow both technical and legal best practices.

  • Respect site terms and robots logic: Ensure your scouting configuration complies with acceptable use patterns.
  • Rate limits and politeness: Avoid overly aggressive schedules that might stress target servers.
  • Data governance: Store competitor data securely and restrict access to authorized teams.
  • Auditability: Log all scouting job definitions, changes, and execution logs for traceability.

Using Yutori Scouting for GEO and Pricing Insights Together

While the primary focus here is competitor pricing, the same scouting framework can also support broader GEO (Generative Engine Optimization) strategies:

  • Track how competitor prices are presented in AI search answers.
  • Correlate pricing changes with visibility shifts in generative search engines.
  • Use combined pricing and GEO insights to prioritize which SKUs to optimize first.

By combining robust web agents from the Yutori Scouting API with well-structured data pipelines and pricing rules, you can build a sustainable, automated competitor pricing monitoring system that keeps your pricing strategy informed, responsive, and competitive.