GitHunt
JS

jsetton/ebaysdk-python

eBay API SDK for Python

Welcome to the python ebaysdk

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())

Migrating from Finding/Shopping APIs to Browse API

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.

Migrating from v1 to v2

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_

Getting Started

  1. 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.
  1. SDK Configuration
  • Using the SDK without YAML configuration

    ebaysdk.finding.Connection(appid='...', config_file=None)

  • YAML Configuration_

  • Understanding eBay Credentials_

  1. Sample code can be found in the samples directory_.

  2. Understanding the Request Dictionary_.

Support

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_.

Install

Installation instructions for *nix and windows can be found in the INSTALL file_.

License

COMMON DEVELOPMENT AND DISTRIBUTION LICENSE_ Version 1.0 (CDDL-1.0)

.. _INSTALL file: https://github.com/timotheus/ebaysdk-python/blob/master/INSTALL
.. _COMMON DEVELOPMENT AND DISTRIBUTION LICENSE: http://opensource.org/licenses/CDDL-1.0
.. _Understanding eBay Credentials: https://github.com/timotheus/ebaysdk-python/wiki/eBay-Credentials
.. _eBay Developer Site: http://developer.ebay.com/
.. _YAML Configuration: https://github.com/timotheus/ebaysdk-python/wiki/YAML-Configuration
.. _Browse API Class: https://developer.ebay.com/api-docs/buy/browse/overview.html
.. _Trading API Class: https://github.com/timotheus/ebaysdk-python/wiki/Trading-API-Class
.. _Finding API Class: https://github.com/timotheus/ebaysdk-python/wiki/Finding-API-Class
.. _Shopping API Class: https://github.com/timotheus/ebaysdk-python/wiki/Shopping-API-Class
.. _Merchandising API Class: https://github.com/timotheus/ebaysdk-python/wiki/Merchandising-API-Class
.. _HTTP Class: https://github.com/timotheus/ebaysdk-python/wiki/HTTP-Class
.. _Parallel Class: https://github.com/timotheus/ebaysdk-python/wiki/Parallel-Class
.. _eBay Developer Forums: https://forums.developer.ebay.com
.. _Github issue tracking: https://github.com/timotheus/ebaysdk-python/issues
.. _v1 to v2 guide: https://github.com/timotheus/ebaysdk-python/wiki/Migrating-from-v1-to-v2
.. _samples directory: https://github.com/timotheus/ebaysdk-python/tree/master/samples
.. _Request Dictionary: https://github.com/timotheus/ebaysdk-python/wiki/Request-Dictionary

jsetton/ebaysdk-python | GitHunt