Q: What are eBay IDs?
A: eBay IDs are opaque signed 64-bit numbers. Common examples include: ItemID, TransactionID, AccountID. The IDs will be in the positive range: 0 to 9,223,372,036,854,775,807 and will require from 8 to 19 decimal digits to represent them.
Q: If eBayIDs are signed 64-bit numbers, then why are IDs such as ItemID defined as a string in the API XML/SOAP interface?
A: The issues were timing and compatibility. The SOAP API was launched in early 2004. At that time, there were legitimate concerns over the interoperability of a data type such as xsd:long. Some SOAP processors did not have full feature sets implemented. Rather than limiting compatibility with SOAP environments, a compromise was reached where IDs were typed as string. However, they should still be treated as signed 64-bit numbers.
Q: Why did eBay change ItemIDs from 10 digits to 12 digits?
A: We have have exhausted the 10 digit range and need to expand to higher number ranges to ensure all items on the site have a unique identifier.
Q: How should an external application store eBay IDs?
A: Our recommendation is to store IDs in 64-bit signed integers. Storing IDs as strings will work, but beware of allocating less than 19 characters (assuming decimal digits are used) to hold them. eBay will increase the size of IDs over time. Your code should be prepared to handle IDs of up to 19 digits.
Q: Why would you ever need to go beyond 12 digits?
A: As eBay grows and makes architectural changes to accommodate new sources for items, we need flexibility to ensure that items can be simply and safely added without duplication. Having 19 digits gives us the flexibility we will need in the future.
Q: For ItemIDs, what are the ID ranges for each category?
A: While it may have been possible for some period of time to associate item ranges to categories in the past, this is a practice that should be avoided for several reasons. First, the numeric ranges assigned to IDs will change over time. Second, we are in the process of reorganizing how items are stored. After some upcoming architectural improvements, ItemID ranges will no longer be organized by category. So, any assumptions that relate ID ranges to category will become invalid. Third, and most important, all eBay IDs should be treated as opaque unique identifiers. No meaning should be attached to an ID other than it is a unique identifier for an item. Any other assumption is likely to have problems eventually.
Q: Why doesn't eBay just use an alphanumeric scheme for IDs
A: While alphanumeric IDs would work from a functional perspective, there are major performance reasons that favor the use of numeric IDs. EBay's scalability challenges are tremendous. Numeric IDs are more space-efficient than alphanumeric IDs. In larger scale tables, indexes on alphanumeric columns are slower than on numeric columns. There are other efficiency reasons, but even more important is backward compatibility. Many internal and external systems have been built and evolved assuming that eBay IDs are numeric.
Q: What happens to ItemID's after a Good Til Cancelled listing is renewed?
A: The ItemID remains the same when a GTC item is renewed at the end of period.