This SDK is a programmatic interface into the eBay APIs. It simplifies development and cuts development time by standardizing calls, response processing, error handling, and debugging across the Browse, Finding, Shopping, Merchandising & Trading APIs.
Important Note: The Finding and Shopping APIs were decommissioned on February 5, 2025. Please migrate to the new Browse API for continued functionality.
Quick Example (Browse API - Recommended):
from ebaysdk.exception import ConnectionError
from ebaysdk.browse import Connection
try:
api = Connection(appid='YOUR_APPID', certid='YOUR_CERTID', config_file=None)
api.execute('search', {'q': 'legos', 'limit': 5})
assert(api.response.status_code == 200)
data = api.response.json()
items = data.get('itemSummaries', [])
assert(len(items) > 0)
item = items[0]
print(f"Title: {item.get('title')}")
print(f"Price: {item.get('price', {}).get('value')} {item.get('price', {}).get('currency')}")
except ConnectionError as e:
print(e)
Legacy Example (Finding API - Deprecated):
import datetime
from ebaysdk.exception import ConnectionError
from ebaysdk.finding import Connection
try:
api = Connection(appid='YOUR_APPID_HERE', config_file=None)
response = api.execute('findItemsAdvanced', {'keywords': 'legos'})
assert(response.reply.ack == 'Success')
assert(type(response.reply.timestamp) == datetime.datetime)
assert(type(response.reply.searchResult.item) == list)
item = response.reply.searchResult.item[0]
assert(type(item.listingInfo.endTime) == datetime.datetime)
assert(type(response.dict()) == dict)
except ConnectionError as e:
print(e)
print(e.response.dict())
The Finding and Shopping APIs were decommissioned on February 5, 2025. The Browse API is the recommended replacement that provides modern REST endpoints with JSON responses.
Key differences: * Authentication: Browse API uses OAuth 2.0 Bearer tokens instead of API keys * Response Format: JSON instead of XML * Endpoints: Modern REST endpoints instead of SOAP-style calls * Features: Enhanced search capabilities and better performance
Migration examples:
Finding API (Deprecated):
from ebaysdk.finding import Connection
api = Connection(appid='YOUR_APPID')
response = api.execute('findItemsAdvanced', {'keywords': 'iPhone'})
items = response.reply.searchResult.item
Browse API (Recommended):
from ebaysdk.browse import Connection
api = Connection(appid='YOUR_APPID', certid='YOUR_CERTID')
response = api.execute('search', {'q': 'iPhone'})
items = response.json().get('itemSummaries', [])
For more detailed migration examples, see the samples/browse.py file.
For a complete guide on migrating from ebaysdk v1 to v2 and see an overview of the additional features in v2 please read the v1 to v2 guide
- SDK Classes
- Browse API Class - modern REST API for searching and retrieving eBay items (replaces Finding & Shopping APIs).
- Trading API Class - secure, authenticated access to private eBay data.
- Finding API Class - access eBay's next generation search capabilities (DEPRECATED - use Browse API).
- Shopping API Class - performance-optimized, lightweight APIs for accessing public eBay data (DEPRECATED - use Browse API).
- Merchandising API Class - find items and products on eBay that provide good value or are otherwise popular with eBay buyers.
- HTTP Class - generic back-end class the enbles and standardized way to make API calls.
- Parallel Class - SDK support for concurrent API calls.
- SDK Configuration
Using the SDK without YAML configuration
ebaysdk.finding.Connection(appid='...', config_file=None)
- Sample code can be found in the samples directory.
- Understanding the Request Dictionary.
For developer support regarding the SDK code base please use this project's Github issue tracking.
For developer support regarding the eBay APIs please use the eBay Developer Forums.
Installation instructions for *nix and windows can be found in the INSTALL file.
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0 (CDDL-1.0)