eBay APIebay.com ↗
Access eBay search listings, item details, sold/completed prices, seller profiles, feedback, and category data via a structured REST API.
What is the eBay API?
The eBay API covers 8 endpoints that return structured data from eBay's marketplace, including active listings, historical sold prices, and seller profiles. The search_listings endpoint accepts keyword, category ID, and seller filters and returns up to ~60 results per page with title, price, condition, shipping, and item ID. Companion endpoints cover item-level specifics, seller feedback, and autocomplete suggestions.
curl -X GET 'https://api.parse.bot/scraper/caa8e1ad-f5a8-41c1-9bd2-54a8e19b6c35/search_listings?page=1&query=iphone+15' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ebay-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.eBay_API import Ebay, SearchSort, ItemNotFound
ebay = Ebay()
# Search for listings sorted by lowest price
for listing in ebay.listings.search(query="mechanical keyboard", sort=SearchSort.LOWEST_PRICE, limit=5):
print(listing.title, listing.price, listing.item_id)
# Get full item details including images and specifics
item = ebay.listings.search(query="iphone 15", limit=1).first()
if item:
detail = ebay.listings.get(item_id=item.item_id)
print(detail.title, detail.price, detail.condition)
print(detail.images, detail.specifics)
# Look up a seller's profile and browse active inventory
seller = ebay.sellers.get(username="thrift.books")
print(seller.username)
for item in seller.active_listings(sort=SearchSort.NEWLY_LISTED, limit=3):
print(item.title, item.price)
# Get seller feedback
fb = seller.feedback()
print(fb.modules)
# Typed error handling for missing items
try:
ebay.listings.get(item_id="000000000000")
except ItemNotFound as exc:
print(f"Item not found: {exc.item_id}")
# Browse completed/sold listings for price research
for sold in ebay.listings.completed_sold(query="nintendo switch", sort=SearchSort.BEST_MATCH, limit=5):
print(sold.title, sold.price, sold.url)
# Get search suggestions for autocomplete
for sug in ebay.suggestions.search(query="laptop", limit=5):
print(sug.keyword, sug.direct_type)
print("exercised: listings.search / listings.get / seller.active_listings / seller.feedback / listings.completed_sold / suggestions.search")
Search for eBay listings with filters for category, seller, sold/completed status, and sorting. Returns paginated results with item titles, prices, conditions, and item IDs. Each page returns up to ~60 results from eBay's search results page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sold | boolean | Filter to sold items only. |
| sort | string | Sort order code. |
| query | string | Search keyword. At least one of query, seller, or category_id should be provided. |
| seller | string | Seller username to filter results to a specific seller's listings. |
| complete | boolean | Filter to completed listings only. |
| category_id | string | eBay category ID to filter by (numeric string). |
{
"type": "object",
"fields": {
"total": "integer total number of matching listings",
"listings": "array of listing objects with title, price, url, image, condition, shipping, and item_id"
},
"sample": {
"data": {
"total": 41000,
"listings": [
{
"url": "https://www.ebay.com/itm/296129124843",
"image": "https://i.ebayimg.com/images/g/lfYAAeSwjkZqKF4~/s-l500.webp",
"price": "$398.39",
"title": "Apple iPhone 15 128GB Factory Unlocked AT&T T-Mobile Verizon Very Good Condition",
"item_id": "296129124843",
"shipping": "$398.39$799.00",
"condition": "FREE FEDEX 2 DAY - 60 DAY RETURNS - 1 YEAR WARRANTY"
}
]
},
"status": "success"
}
}About the eBay API
Search and Listing Data
The search_listings endpoint accepts a query string, category_id, seller username, and boolean sold/complete flags to filter results on eBay's marketplace. Each result in the listings array includes title, price, condition, shipping, image, url, and item_id. Pagination is controlled with the page parameter, and results are ordered using the sort input. For dedicated historical pricing research, get_completed_sold_listings applies both completed and sold filters in one call, returning the same listing shape.
Item and Seller Details
get_item_details accepts an item_id (obtainable from any listing endpoint) and returns the full item record: title, price, condition, images (full-resolution URLs), a seller object with name and feedback, and a specifics object of key-value attribute pairs such as brand, model, color, or size. Seller-level data is split across two endpoints: get_seller_profile returns ratings, detailed seller ratings (accuracy, shipping cost, shipping speed), and member details, while get_seller_feedback returns paginated individual feedback cards with comments, ratings, and item references. The limit parameter on feedback accepts 25, 50, or 100 results per page.
Categories and Suggestions
get_categories returns the full eBay category hierarchy — top-level and subcategories — with name, url, and category_id for each node. These IDs feed directly into the category_id filter on search_listings. get_search_suggestions takes a partial query and returns the autocomplete keyword suggestions eBay surfaces in its search dropdown, including each suggestion's keyword, type, and direct_type fields.
Seller Inventory
get_seller_active_listings scopes a standard listing search to one seller using the username parameter, returning total count and the full listing array. Combined with get_seller_feedback and get_seller_profile, this gives a complete picture of any public seller's activity on eBay.
The eBay API is a managed, monitored endpoint for ebay.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ebay.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ebay.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track historical sale prices for a product by querying
get_completed_sold_listingsover time. - Monitor a competitor seller's active inventory using
get_seller_active_listingsfiltered byusername. - Aggregate item condition and pricing data across a category by combining
search_listingswithcategory_id. - Evaluate seller reputation before a purchase using
get_seller_profilefeedback scores and detailed ratings. - Build a product catalog enriched with item-specific attributes via the
specificsfield fromget_item_details. - Populate a search autocomplete component using keyword suggestions from
get_search_suggestions. - Map eBay category IDs to names for dynamic filtering by querying
get_categoriesonce and caching the result.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does eBay have an official developer API?+
What does `get_item_details` return beyond the price and title?+
images (an array of full-resolution image URLs), condition, a seller object with name and feedback string, and a specifics object containing all item attribute key-value pairs eBay shows on the listing — things like brand, model number, storage capacity, or material, depending on the category.Does the feedback endpoint return buyer identities or only comments?+
get_seller_feedback includes the comment text, rating, and item details, but individual buyer usernames are not guaranteed to be exposed — eBay frequently anonymizes them. The totalFeedback count and paginationModel are available for tracking volume over pages.Are eBay Motors or real estate listings covered?+
Is there a way to get price alerts or watch-list data?+
search_listings or get_completed_sold_listings to approximate price-change detection.