One delta decides whether an Amazon data API is real-time: your request time minus the moment the source page was fetched. Seconds make it real-time; minutes to hours make it near-real-time; days make it a snapshot. Until you compute that delta, “real time” is a word a vendor wrote on a landing page, not a property of the data you receive. Most API home pages claim it, and a claim needs no evidence, while a delta does. This article turns “real time” into executable checks: how to align three clocks, how to measure latency without fooling yourself, the five signatures of cache masquerading as live data, how much data age each scenario tolerates, and a 48-hour procurement protocol you can run before signing.
1. Why “real time” turned from a selling point into noise
Open the home page of almost any Amazon data API and you find the same set of words: real-time, live, fresh, no stale caches. Those words now carry zero signal. When every vendor uses them, they stop helping you decide and only confirm that all candidates landed in the same bucket. The informative difference sits elsewhere: one service fetches Amazon on every request, another serves the last batch from its own database, and the two landing pages read alike.
Public discussions of data age leave a few reference points you can anchor on. Amazon’s report-style endpoints (most SP-API reports) generate on request, with cycles measured in hours to days; ad data refreshes on a daily cadence; subscription product-research tools maintain their own databases, described in industry writing as 24 to 72 hours behind. These anchors share one property: data age is decided by the source’s structure, not chosen by the vendor. A database that refreshes once a day cannot become real-time because the copy on the page says so.
For a buyer, the cost of noise is a wrong decision. You design a price alert around an assumption of real-time and receive last night’s snapshot; the gap between the alert and the market is time your competitor uses. The length of that gap is set by the vendor’s data model, which lives in the contract and the docs, not the marketing page. Procurement therefore starts not by comparing who shouts “real time” louder, but by aligning the measurable data-age items across candidates.
2. Three clocks: splitting “real time” into measurable deltas
One API call carries three observable anchors on its timeline. Call them the three clocks.
Request time: the moment your program sends the HTTP request, and the easiest one to record, since you read the local clock before and after. It marks when the intent “I want data” happened.
Capture time: the moment the server fetches the source page from Amazon. This is the anchor that decides “real time.” A service that fetches on every request keeps capture time near request time. A service that serves from a database carries a capture time equal to when the last batch ran, in some cases far earlier than your request.
As-of time: the moment on Amazon’s side to which the returned fields correspond. Prices, stock, and Buy Box ownership update on Amazon’s pages by seller actions and Amazon’s own caching, in most cases seconds to minutes before capture. Aggregates such as review counts and star ratings sit behind Amazon’s display cache, so their as-of time can lag longer. As-of time comes from upstream; no collector changes it, only exposes it.
Put the three clocks side by side and “real time” becomes a set of measurable deltas:
| Delta | What it means | Acceptable scale |
|---|---|---|
| capture time − request time | Whether the server fetches after receiving your request | Real-time: seconds; near-real-time: minutes; snapshot: hours to days |
| as-of time − capture time | How old the field is on Amazon’s side | Price and stock: seconds to minutes; ratings: hours, normal upstream |
| receive time − capture time | Total latency from network and parsing | Consistent with the vendor’s stated median and percentile |
Of the three deltas, the first is under the vendor’s control, the second belongs to Amazon, and the third you can measure on site. The core of procurement verification is turning the first delta from “as claimed” into “as read from the response.” When a response carries no capture timestamp, that delta is unobservable to you, and you are left trusting marketing copy, which is what item one of the verification checklist exists to prevent.
Why a response without a timestamp cannot prove real-time
A vendor can state that every request fetches live, while the JSON you receive holds only product fields. Without a capture timestamp you cannot distinguish two cases: this data was fetched three seconds ago, or thirty-six hours ago. Both look the same on your side. Two directions make the claim self-evident: the response headers or payload carry a server capture timestamp, or you infer it with your own contrast probes, the ones in section 6. A candidate that offers no timestamp and asks you to trust the architecture has moved the verification cost onto you.
3. Freshness by object type: what changes in minutes, what changes in days
“The data should be real-time” is a false statement. “How fresh does the data behind this decision need to be” is the real question. Amazon’s data objects sort into tiers by change velocity, and each tier maps to a sensible refresh cycle and an age tolerance.
- Minute-level: price, stock state, Buy Box ownership, coupons. Sellers reprice, restock, and contest the Buy Box within minutes. In a price war two repricers pointed at each other can produce dozens of changes in a day; a state like “Only 1 left” can flip between two polls of yours.
- Hour-level: BSR, ad placement distribution, keyword rankings. BSR rolls with sales and shifts with time of day and promotions; Sponsored placements move with bids and budgets. An hourly cadence serves competitor monitoring.
- Day-level: review count, star rating, launch date, variation structure. Reviews accumulate from a few to dozens per day, and the rating decimal moves slower. Polling them every minute burns budget.
- Week-level: review content, product description, images. Content fields need a weekly look unless a batch review event happens.
Amazon’s own push capability calibrates the industry ceiling for “real time.” The Notifications API offers event subscriptions, but price-change events carry an aggregation window with only two options, five minutes and ten minutes, and intermediate events inside the window are dropped; only the first and final states are sent. Amazon’s official push is therefore near-real-time with lossy sampling for high-frequency events, not event-by-event real-time. When even the official push promises a five-minute granularity for such events, your requirement against a third-party API should sit at the same scale, not at an unanchored “fresher is better.”
Write the refresh cadence as config, not as a slogan
Sound freshness design is layered: minute-level polling for price and stock fields where the scenario demands it, hourly for BSR and rankings, daily or weekly for reviews and content. When choosing an API, compare each layer on whether it can fetch on demand and expose the fields the scenario needs, rather than comparing overall slogans. Writing “poll price every ten minutes, reviews once a day” in your own config beats writing “vendor provides real-time data” in a contract. The first is executable, the second is not verifiable.
4. What one real response tells you
Enough theory. Here is a real product response, fields trimmed, values untouched. We fetched the same ASIN twice on 2026-09-09, about twenty minutes apart, through the product endpoint. The four volatile fields came back identical in both calls:
{
"asin": "B0CMZFCQ6D",
"title": "Apple iPhone 15 Pro, 512GB, White Titanium - Unlocked (Renewed)",
"price": "$618.90",
"inStock": "Only 1 left in stock - order soon.",
"star": "3.9",
"rating": "(5222)",
"bestSellersRank": "#24 in Amazon Renewed / #15 in Renewed Smartphones / #21 in Cell Phones",
"delivery": { "deliveryTime": "Friday, September 11" },
"badge": "Renewed",
"seller": { "name": "TECHMINT", "id": "A2AO9OKCJ1UF2O" }
}
The key observations from the two calls sit side by side below:
| Observation | Call 1 | Call 2 (about 15 minutes later) |
|---|---|---|
| price | $618.90 | $618.90 |
| inStock | Only 1 left in stock – order soon. | Only 1 left in stock – order soon. |
| bestSellersRank | #24 / #15 / #21 | #24 / #15 / #21 |
| delivery.deliveryTime | Friday, September 11 | Friday, September 11 |
Several points in this response demonstrate the as-of clock at work.
The delivery field comes first. Amazon computes the ship date at serve time: the request went out on Wednesday, September 9, and the estimate returned Friday, September 11, two days out, matching the shipping calendar for an order placed that day. Had the data come from a cache hours or days old, the ship date would contradict the request date or sit at a suspicious fixed value. Time-based fields that Amazon computes live, ship dates, promotion countdowns, coupon deadlines, are free probes for whether a response is alive.
The stock line “Only 1 left in stock – order soon.” is second. Single-unit stock is a minute-level volatile state. It did not change between our two calls, which says the listing held steady across the interval, a finding, not a defect. In a monitoring scenario this is the exact ability you want: the moment stock flips from one to zero, or back, decides who sends the alert first.
The third observation matters most: this response carries no capture timestamp. You see the field values, not the moment the server fetched this data from Amazon. The data is alive, the ship date aligns with the request day, yet “how old it is” is not exposed. This confirms the point from section 2: verifying that capture time sits near request time requires either a timestamp in the response or your own contrast probes. Both methods appear in the protocol below.
5. A fast response is not fresh data: measuring latency the right way
The most common confusion in procurement treats “responds fast” as “data is new.” A cache hit can return last night’s data in 100 milliseconds; a live fetch can take three seconds to return the current state. The first response time is a thirtieth of the second, while its data is thousands of times older. Latency measures how fast the service is; freshness measures how old the data is; one cannot substitute for the other.
Latency still needs measuring, because it sets the floor of the live-fetch experience. Measure it by splitting the timeline rather than reading one total:
curl -s -o /dev/null -w \
"dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} \
ttfb:%{time_starttransfer} total:%{time_total}\n" \
"https://api.pangolinfo.com/v2/amazon/product" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"asin":"B0CMZFCQ6D","marketplace":"amazon.com"}'
What each segment means: dns is name resolution, connect is the TCP handshake, tls is the TLS handshake, ttfb is time to first byte, the moment the server starts responding, and total is when the full body arrived. For a live-fetch API, the gap between ttfb and total approximates “one Amazon fetch plus parsing on the server,” in most cases the dominant share.
Four ways measurement fools itself
First, cold versus warm connections. The first request opens a connection and runs a TLS handshake; the second reuses it and finishes faster. One measurement tells you only whether that call happened to be cold or warm. Send ten or more calls in a row and record the first value and the stable median apart.
Second, reporting only the average. Latency has a long tail. An average gets pulled up by a few slow calls and hides that most calls are fast; a good median can still hide a tail of timeouts. Read the median and p95 together. P95 is the value you feel at peak hours.
Third, your own network polluting the result. Testing a US exit API from Singapore adds hundreds of milliseconds of pure network round trip. Run the same suite from two regions and you separate the network leg from the service leg.
Fourth, latency under concurrency. A single call being fast says nothing about twenty concurrent ones. Press the endpoint at 5, 10, and 20 concurrent calls for a minute each and watch the median rise. A live-fetch service rotates IPs and paces requests under load, so latency climbs with concurrency; the slope tells you more about its engineering than the single number does.
6. Five signatures of cache masquerading as live data
Putting data-age verification into operation means probing. Any one of the five signatures below suggests the data you receive is not fresh as of your request.
Signature one: the timestamp stalls or is missing. When the response carries a capture timestamp, request the same ASIN hours apart and it should move forward. A stalled timestamp means a cache hit. A missing one means, per section 2, you cannot verify the claim.
Signature two: volatile fields ignore the real page. Pick an ASIN with an active price or stock, fetch three times minutes apart, and open the Amazon product page in a browser as a control. Three identical API responses while the page changed means an old copy sits somewhere in the path. The reverse, both changed in the same direction, is what a live fetch should do. Use one postal code for the control; prices vary by delivery address.
Signature three: responses reproduce in single-digit milliseconds with no jitter. A live fetch crosses Amazon once per call, and round trips carry natural variance. Ten stable responses in a few milliseconds against a defended Amazon product page point to a cache, not a fetch.
Signature four: time-dependent fields contradict each other. The probes from section 4 apply here: ship dates, promotion countdowns, and coupon deadlines that Amazon computes live. If a Wednesday request returns a Monday ship date for several days running, the data age has a problem.
Signature five: freshness differs across endpoints with no disclosure. The same service returns product detail live while reviews come from a batch import a week old, and no doc says so. Not a bug, a data-model difference, but silence about it is concealment. Test every object type you plan to use, not the most polished endpoint.
Turn the probes into a repeatable script
The five signatures are not a one-off exercise. Put them in a script of a few dozen lines that records timestamps and page controls. One pass yields a table per candidate: request time, timestamp in the response, page-control result. That table belongs in the procurement report more than any landing page does. The scenario SLAs come next, and section 10 assembles these probes into a full 48-hour protocol.
7. Scenario SLAs: how fresh your scenario needs
The right question for freshness is: how late can the data arrive before it produces a wrong decision? Answers span three orders of magnitude across scenarios, so SLA belongs to the scenario, not to one blanket “real time.”
| Scenario | Key fields | Age tolerance | Suggested cadence |
|---|---|---|---|
| Dynamic pricing / price war watch | Price, Buy Box, coupons | Minutes (5–15) | Tiered: hot 5–10 min, normal 30–60 min |
| Stockout / restock alerts | Stock state, listing state | Minutes to hours | Core competitors 15–30 min, tail hourly |
| Ad placement / keyword rank watch | Sponsored placements, organic rank | Hours | Every 1–6 hours |
| BSR / category rank trend | BSR, chart positions | Hours to a day | Every 4–24 hours |
| Review and rating watch | Review count, rating, new content | A day | Once or twice daily |
| Product research / market structure | Categories, variations, long price series | Days to weeks | Weekly snapshot |
Read the table backwards: confirm which row your scenario occupies, then decide what to pay for data age. A weekly product researcher demanding second-level freshness across the stack makes the same mistake as a price-war participant accepting a daily snapshot. Both used the wrong freshness.
The cadences in the table are starting points. Real monitoring tiers ASINs by activity: sort them into hot, warm, and cold by price-change frequency, give the hot tier the shortest interval, and stretch the cold tier until it stops wasting budget. This mirrors Amazon’s own push design, which promises only a five-minute aggregated window for high-frequency events; your polling cadence has no reason to be more aggressive than the official push.
8. The price of freshness: put “older” into the cost
A cache-based service costs less per unit than a service that fetches live each time. The gap is structural: one database refresh serves unlimited queries, while a live fetch pays a real fetch cost per request. The source of the low price is data reuse, and the price of data reuse is data age. Procurement compares not the unit-rate gap but which is larger: the decision cost of old data, or the interface fees you save.
Comparing the two price levels in one formula takes three inputs: your scenario tolerance from section 7, the per-thousand-usable-records cost of both options, and the expected loss from a wrong decision on old data. In price monitoring the loss is easy to quantify, a one-hour delay in noticing a competitor cut can cost an hour of conversions and Buy Box impressions. In weekly product research that loss sits near zero, and paying for real-time is waste.
Cost comparison also trips on units. A live-fetch service bills per request and a cache service bills per query, both called “request,” with different cost structures. Following the discipline from earlier cluster pieces, convert both to cost per 1,000 usable records before comparing, records retrieved and carrying the fields you need, not requests sent. Failed retries, empty fields, and block pages raise the real unit price, and their share differs between the cache side and the live side, so compute each side’s number on its own to stay fair.
9. What a vendor should publish: a verifiable real-time statement
Rather than probing every candidate, first ask each one to define “real time” as verifiable metrics. The list below doubles as a procurement questionnaire. It filters out vendors who cannot answer before the contract draft does.
- Data model: Does every request trigger a live fetch, or do you serve the last batch from a database? At what cadence does the batch run? Say it in one sentence. The word “real-time” is not an answer.
- Capture timestamp: Do the response headers or payload carry a server fetch time? What is the field called? If not, how does a customer verify data age?
- Latency distribution: What are the median and p95 latencies, measured in which region, at what concurrency? Share the last 30 days, not a screenshot from one day.
- Success definition: What counts as success? Does a 200 with missing fields count? Does a block page? Give per-field fill rates, not only status-code success rates.
- Contrast testing: Will you accept a customer running the probes from section 6 on price and stock fields during the trial period?
- Throttling and degradation: What is the concurrency cap? When exceeded, are calls queued, dropped, or served from cache, and what is the cache’s data age?
- SLA granularity: At what granularity is availability promised, month, week, or day, and what is the remedy?
Items one and two decide how fresh the data is; items three through five decide whether fresh data arrives on time and whether bad data slips in; items six and seven decide who answers when something breaks. A vendor that answers all seven with checkable numbers says more than a page that prints real-time one hundred times.
10. Real-Time Amazon Data API: the 48-hour procurement protocol
Assemble the methods into one executable protocol. It takes two days and needs no heavy framework, just a script that records timestamps and writes a table.
Hours 0–6: baseline. Pick 20 ASINs that span price-active electronics, consumables, and your actual category, across at least two marketplaces. Fetch each object type you will use, product detail, search results, reviews, once per ASIN, and record success, field fill rate, and whether the response carries a capture timestamp. This round is the baseline for every later control.
Hours 6–24: repetition and page control. Take five price-active samples from the 20, fetch every 30 minutes, and open the Amazon product page in a browser hourly as a control. Record three series: API price and stock, page price and stock, and the moments and directions where they diverge. A divergence lasting longer than your scenario tolerance is a data-age finding.
Hours 24–30: concurrency and latency. Run section 5: ten consecutive calls for cold and warm median and p95, then one minute each at 5, 10, and 20 concurrent calls, recording how the median climbs with load.
Hours 30–48: change-capture drill. Watch for at least one real price or stock event, a promotion starting, the Buy Box changing hands, stock hitting zero, and measure the interval from the event to the next API response reflecting it. That interval is the true latency floor of your monitoring, closer to feel than any SLA number. If no event happens in 48 hours, extend the drill until one does. A monitoring verification that never captured a change has verified nothing.
The protocol outputs one three-column table per candidate: latency distribution, field fill rate, and the longest “event-to-visible” interval. Align the three columns and the argument about who is live and who is cache resolves itself.
11. When near-real-time and snapshots are the right call
Reading this far can push a reader toward “fresher is always better.” The opposite of real-time is not backwardness, it is waste. In three situations a snapshot or near-real-time cadence is the rational choice.
First, when the decision cycle is longer than the change cycle. Weekly or monthly product research and quarterly market structure reports reach the same conclusion whether the data is a day old or an hour old; a weekly snapshot is enough and live fetching burns budget. Second, when history matters more than the current state. Price curves and BSR trajectories depend on a complete, continuous time series, not on the precision of one instant; the task is to record on schedule and lengthen the series, not to fetch one point faster. Third, under a budget constraint with tiering. Let a daily snapshot carry full-ASIN coverage and reserve minute-level live calls for the top five percent at highest risk of a price war or stockout. After tiering, the live budget lands where it produces decisions and the snapshot covers the rest.
To choose the right tier, return to the table in section 7: fix scenario tolerance first, then cadence, then data model. Reversing the order, picking a “real-time API” first and inventing a use later, more often than not pays for freshness you never consume.
12. How Pangolinfo defines real-time
Applying the same ruler to Pangolinfo: its Amazon Scraper API runs on a fetch-on-request model. One request triggers one live fetch of the Amazon source page and returns structured JSON, with no separate data-cache layer on the request path. The checkable public anchors are a median latency around three seconds, which includes one full fetch and parse, a 99 percent success rate, and over 30 million calls per day, figures consistent across published material. For capture timestamps, latency distribution, and success rates, ask sales for raw definitions and the last 30 days of data per the checklist in section 9 rather than accepting one marketing page.
Verifying the fetch-on-request model takes the probes from section 6: fetch a ship-date field and align it with your request day, run page controls on price-active ASINs, and take ten or more calls for a latency distribution. Pangolinfo prices every part, residential IPs, fingerprints, rendering, and parsing, inside one request, with no render multiple and no per-endpoint difficulty multiplier, as listed on the pricing page; the quote page sits close to the invoice. The full breakdown of the build-versus-buy crossover and authorization boundaries lives in the cost crossover between building and calling, field-level comparisons and the six billing units in best Amazon data APIs and per 1,000 usable records. The engineering that follows the data sits in the Amazon data pipeline, with the Python build in the Python implementation and the Node.js build in the Node.js implementation.
None of this asks you to trust Pangolinfo. It tells you what kind of verification it accepts: run the protocol from section 10 and decide afterward. A vendor willing to put “real time” on the test bench and a vendor that prints it on the home page answer question seven of the procurement list in different ways. Start with the free tier against real ASINs when you are unsure which endpoint to try, run the three clocks from section 2 and the signature probes from section 6 against real responses, and you will know what you need better than a hundred comparison posts could tell you.
13. Beyond polling: push, webhooks, and aggregation windows
Everything so far assumed one model: your program polls on a fixed cadence. A second path exists, letting the data push itself to you. The trade-off is not that one side wins; it is event density against reaction-time requirements.
Polling pays in a balance between blind spots and waste. A long interval widens the gap between an event and its discovery; a short one repeats unchanged data and burns budget on repetition. Push inverts the cost: it fires when an event lands, skips empty polls, but requires a resident, reliable, replayable receiver. Restock recovery and Buy Box changes, sparse events that need an immediate reaction, favor push. Price curves and BSR trajectories that need a continuous sample series favor polling, because push delivers change points, not a contiguous state series.
Push is not zero-latency either. Two links add delay: the upstream aggregation window and the downstream queue backlog. The upstream example appeared earlier, Amazon’s Notifications API aggregates price events into five- or ten-minute windows and drops the intermediate ones. The downstream example sits on your side: a webhook crosses the vendor’s queue, your gateway, and your consumer process before it lands, and any backlog along the way grows an invisible queue delay between “when the event happened” and “when you see it.” Verification of a push model therefore adds one item over polling: give webhook delivery a timeout and out-of-order handling, and record both event time and arrival time in the consumer, or a queue backlog ages the push into near-staleness without a trace.
For most buyers, a third-party API’s push capability is a plus, not a requirement. A polling model bills per request with a transparent unit, and the table in section 7 prices freshness and cost. A push model asks you to run a receiver and handle replay and reordering, engineering cost that teams understate. Fix the freshness tier your scenario needs first, then decide whether push complexity is worth paying for. The log design in the next section repeats this order.
14. Put the three clocks in your logs: making freshness auditable
Freshness verification should not be a one-time act. It should run as a resident metric. The method is plain: record the three clocks on every return so data age is always queryable. Your collector writes request_time before sending, received_at when the response lands, and captured_at when the payload carries a server fetch timestamp. Three timestamps collapse into one structured log line:
{
"asin": "B0CMZFCQ6D",
"request_time": "2026-09-09T07:32:11.210Z",
"received_at": "2026-09-09T07:32:14.402Z",
"captured_at": null,
"stale_ms": null,
"price": "$618.90",
"in_stock": true
}
With captured_at null, stale_ms cannot be computed, and the line tells you only that the request took 3.2 seconds, not whether the data was fetched 3.2 seconds ago or 36 hours ago. That is the runtime version of the conclusion in section 2: a response without a capture timestamp is missing the root of its freshness metric. When a vendor exposes captured_at, stale_ms becomes a runtime metric that alerts past your scenario tolerance, and freshness turns from “verified once at procurement” into “verified every day.”
Without captured_at, the fallback is sampling: run the page controls from section 6 on a few price-active ASINs each day and write the divergence count into the same logging system. Sampling cannot cover every return, but it catches systemic aging, a vendor switching one endpoint to batch mode, price fields lagging by the hour, and the page control flags it the same day. Run “freshness sample divergence,” “success rate,” and “field fill rate” as three runtime metrics; alert when any one drifts, which beats signing an unverifiable SLA at procurement.
One last note for the people writing monitors: keep the freshness alert separate from the success-rate alert. A 99.9 percent success rate can hide a state where every call succeeds and the data is 24 hours old. Both metrics green means the data is usable; one green means check the other. This is the scenario-tolerance table from section 7 projected into runtime: tolerance lives in config, metrics connect to alerts, and freshness stops being a marketing word and becomes a number in your system.
15. Real-Time Amazon Data API: questions teams ask
How should “real-time” on an Amazon data API be defined?
By the delta between capture time and request time. When the server fetches the source page after your request arrives, the delta sits in seconds, real-time. When it serves from a database, the delta equals the time since the last batch ran, minutes to days. Without a capture timestamp in the response, that delta is not measurable, and only contrast probes can infer it.
A response comes back in a few hundred milliseconds. Does that mean the data is fresh?
No. Response speed measures the service; data age measures the data. A cache hit returns last night’s data in 100 milliseconds, while a live fetch crosses Amazon and takes seconds. Measure age for freshness and latency for experience, two separate metrics.
How do I spot cache pretending to be live?
Five signatures, any one a warning: a stalled or missing timestamp; volatile fields that ignore the real page; responses that reproduce in single-digit milliseconds with no jitter; Amazon-computed fields such as ship dates that contradict the request day; and freshness that differs across endpoints with no disclosure in the docs.
How fresh does my data need to be? Same for every scenario?
No, three orders of magnitude apart. Price, stock, and Buy Box change in minutes; BSR, ad placements, and keyword ranks in hours; review counts and ratings daily; review content weekly. Set tolerance by scenario first, then cadence. Do not standardize one “real-time” for everything.
Do Amazon’s official APIs deliver real-time data?
In most cases, no. SP-API reports generate on request over hours to days, and ad data refreshes daily. The Notifications API aggregates price events into five- or ten-minute windows and drops intermediate events. A third-party API cannot exceed the freshness its source model allows.
How long does procurement verification take, and what do I test?
48 hours builds a baseline: fetch 20 ASINs across two marketplaces and record success and fill rates; run page controls on five price-active samples; take ten or more calls for median and p95; then capture one real price or stock event and measure the event-to-visible interval. Verification without a captured change does not count.
How do I measure latency without fooling myself?
Split the timeline: DNS, TCP, TLS, first byte, and total, each on its own. Take ten consecutive calls to separate cold from warm connections. Read median and p95 together. Run from two regions to separate network from service. Then press the endpoint at 5, 10, and 20 concurrent calls and watch the median climb.
Cache services cost less. Is a snapshot enough?
It depends on scenario tolerance. Weekly research and trend analysis run on long cycles, so a daily snapshot serves and paying for live data is waste. Price-war and stockout scenarios decide in minutes, and old data produces wrong decisions whose cost exceeds the fees you saved. Fix tolerance first, then the data model.
Pangolinfo says it fetches live. How do I verify that?
Use the methods in this article: fetch a ship-date field and align it with the request day, run page controls on price-active ASINs, and take ten or more calls for a latency distribution. Pangolinfo’s stated model is fetch-on-request with a median latency around three seconds and a 99 percent success rate; ask sales for the raw definitions and last 30 days of data, then test with the free tier before deciding.
Polling or webhook push, which one should I pick?
By event density and reaction time. Sparse events that need an immediate reaction, restock recovery, Buy Box changes, favor push. Continuous state series for price and BSR trends favor polling. Push latency comes from the upstream aggregation window and the downstream queue backlog, and the receiver must handle replay and reordering, engineering cost teams understate. Most third-party APIs are polling models with transparent per-request billing; fix the freshness tier first, then decide on push complexity.
How do I turn freshness into a runtime alert?
Record received_at on every return and captured_at when the payload carries a server timestamp; staleness is the difference, and it alerts past your scenario tolerance. Without a timestamp, run daily page-control sampling and keep the divergence rate alongside success rate and field fill rate as three metrics. Keep the freshness alert separate from the success-rate alert, since a green success rate can hide data that is 24 hours old.
