Find the answer to your question
GetSellerEvents is a very powerful API call that is designed to return the most important item information. It is also designed to return the very latest information. The data returned is meaningful only if the call is made up to the current time minus 2 minutes and does not look any more than 48 hours into the past. We'll talk about this in more detail soon.
GetSellerEvents is actually a misleading name for this API call, because it doesn't really return "Events" that happened during a time span.
When used with the ModTime parameters, it returns information for the given seller's items whose last modified timestamp falls into the range provided in the input XML of the call. What exactly does this mean?
This means if you call GetSellerEvents for a 6 hour time period from 2 days ago, you will most likely get different results than when you originally made that same call 2 days ago for that same 6 hour time period. The point to remember is that GetSellerEvents should be used only with the most recent time period that just passed. It should not be used for reconciling activity from time periods well in the past.
Furthermore, attempting to make a GetSellerEvents call with either the ModTimeFrom or EndTimeFrom more than 48 hours in the past may result in a long response time or even timeout in many cases. This is because GetSellerEvents is optimized to return all price updates in one call for the most recent activity.
Let's take a look at an example to illustrate the point.
I just made the GetSellerEvents call using ModTime parameters for the last 2 hour period, up to the current time minus 2 minutes. I got back 76 items, meaning that there were 76 items whose last modified timestamp fell into this time period. Naturally some of these items are going to continue on and get more bids before ending, thereby changing the last modified timestamp. Let's say that 62 of the 76 items I got back are still active and continued to get higher bids. If I made the GetSellerEvents call again the next day for that same time period as I used in the first call I made, I will only get 14 items back (assuming of course that items other than the 62 that got new bids were not updated, so really it could be even less than 14 items the second time).
You might be asking why the "minus 2 minutes" in the TimeTo parameter. This recommendation is based on a few rare occurrences where inaccurate data was returned due to data propagation latency issues on our end or certain rare buying and bidding use case scenarios. The 2 minutes recommendation is just a recommendation; you can choose to go with a smaller time slice or just go right up to the current time, but we advise strongly against using the current time for the TimeTo parameter.
At this point you might also be asking what's the catch; it seems like I can get updates for an unlimited number of items in just one API call. Not quite; there are limits to this call.
This call returns upto 3000 items. Please remember that this call is not paginated, so if there are more events than this limit you will not be getting all of the events. If the value of \eBay\Events\Count is this hard limit then that probably means there were more events. These limits are subject to change in the future. Please check the release notes periodically to monitor any changes in Trading API:
Since this call is not paginated and there is a hard limit to the number of events returned, you should tune the frequency of this call based on the volume of the seller. Here is a set of recommendations based on the number of active items a seller has (these recommendations are only when using the default setting of the NewItemFilter parameter, which does not report newly listed items ... including reporting of newly listed items, as you can imagine, can quickly take you up to the limits):
40000+ active items - at least every 20 minutes
20000-40000 active items - at least every 20 to 30 minutes
10000-20000 active items - at least every 20 to 40 minutes
5000-10000 active items - at least every 45 - 60 minutes
2000-5000 active items - at least every 1 to 6 hours
500-2000 active items - at least every 6 hours
The rules of thumb:
1. Use GetSellerEvents with ModTime parameters regularly to keep track of the most current price and highbidder changes.
2. Do not make a GetSellerEvents call where the ModTimeFrom or EndTimeFrom is more than 48 hours in the past.