PRICIUM
All posts
dynamic pricingecommerceapireal-timeprice tracking

Dynamic Pricing in E-commerce: How to Capture It Accurately with an API

Dynamic pricing changes by the hour. Traditional scrapers can't keep up. Here's a guide to building systems that capture real-time dynamic pricing accurately - at any scale.

Aman Patel

Aman Patel

Founder & CEO

2026-03-24 8 min read

What Is Dynamic Pricing?

Dynamic pricing - also called demand-based pricing or real-time pricing - is the practice of adjusting prices continuously based on market conditions. Amazon reportedly changes prices approximately 2.5 million times per day. Airlines, hotels, and ridesharing apps have used it for decades.

For anyone building price intelligence tools, competitive monitoring systems, or AI shopping assistants, capturing dynamic prices accurately is the core technical challenge.

The Three Types of Dynamic Pricing

1. Time-Based Pricing

Prices fluctuate based on time of day, day of week, or season. A smart TV might be priced higher on weekends when shopping demand peaks and lower midweek to drive volume.

2. Demand-Based Pricing

When a product's inventory drops or demand spikes (viral social post, news mention), prices rise. When demand drops, prices fall to stimulate purchase.

3. Geo-Based Pricing

Different regions see different prices based on local competition, import costs, purchasing power, and strategic market positioning.

All three operate simultaneously on major platforms. The price of a specific shoe in size 10, in the US, at 2pm on a Friday during a sale is the product of all three forces.

Why Capturing Dynamic Prices Is Hard

Challenge 1: Freshness Windows Are Short

A "cached" price from 6 hours ago can be wildly wrong for dynamic categories. Electronics, fashion, and Amazon basics can change 5–10 times per day. Your data freshness window needs to match the volatility of your target category.

Challenge 2: Prices Are Variant-Specific

Dynamic pricing operates at the SKU level, not the product level. The blue version might be on sale while the black is not. The 64GB model might be discounted while the 128GB stays full price. Capturing listing-level prices misses SKU-level dynamics entirely.

Challenge 3: Geographic Price Dynamics Are Independent

A US sale event doesn't mean a UK sale. Each market has independent pricing logic. Cross-market price capture requires truly geo-aware data collection.

Challenge 4: Detection and Blocking

When you poll pricing frequently enough to capture dynamic changes, you generate request patterns that look like bot traffic. Anti-bot systems detect high-frequency polling and return stale, blocked, or honeypot responses.

The Right Approach: API-Based Real-Time Capture

The Pricium API is designed for exactly this use case:

import { PriciumClient } from '@pricium/sdk';

const pricium = new PriciumClient({ apiKey: process.env.PRICIUM_API_KEY });

// Poll a product every 15 minutes
async function trackDynamicPrices(productUrl: string) {
  const snapshot = await pricium.scrape({
    url: productUrl,
    location: 'US',
  });

  // Each variation has a current price captured at time of call
  for (const variation of snapshot.variations) {
    await storePriceSnapshot({
      productUrl,
      size: variation.size,
      color: variation.color,
      price: variation.price,
      available: variation.available,
      capturedAt: snapshot.scraped_at,
    });
  }

  return snapshot;
}

Because Pricium uses residential IPs and handles anti-bot evasion, frequent polling doesn't trigger blocks - you get real prices rather than bot-detection responses.

Building a Dynamic Price History Chart

Once you're capturing snapshots, you can visualize price history by variant:

// Fetch price history for a specific variant
const history = await db.query(`
  SELECT price, captured_at
  FROM price_snapshots
  WHERE product_url = $1 AND size = $2 AND color = $3
  ORDER BY captured_at ASC
  LIMIT 500
`, [productUrl, '10', 'Black']);

// Feed into a chart library (e.g., Recharts)
const chartData = history.rows.map(row => ({
  time: new Date(row.captured_at).toLocaleDateString(),
  price: parseFloat(row.price),
}));

A chart showing a product's price over the last 30 days, broken down by variant, is something no other tool on the market can generate without significant custom infrastructure. With Pricium + a time-series store, it's a weekend project.

Recommended Polling Intervals by Category

CategoryPrice VolatilityRecommended Poll Interval
Electronics (Amazon)Very High15–30 min
FashionHigh1–2 hours
Home goodsMedium4–6 hours
BooksLow24 hours
GroceriesVery High30–60 min

Summary

Dynamic pricing is a fact of modern e-commerce. Building tools that keep pace with it requires:

  • True real-time data capture (no caching tolerance)
  • Variant-level specificity (not just listing-level)
  • Geo-aware requests (each market is independent)
  • Anti-bot resilience (frequent polling without detection)

Pricium is built for all four requirements out of the box.


Start capturing dynamic prices accurately. Try Pricium →

Aman Patel

Written by Aman Patel

Founder & CEO at Pricium