eBay APIebay.co.uk ↗
Access eBay UK listings, sold prices, item details, seller feedback, categories, daily deals, and PSA card results via a single REST API.
What is the eBay API?
The eBay UK API covers 7 endpoints that return active listings, completed sales, item details, seller feedback, category trees, daily deals, and sold PSA-graded card results from eBay.co.uk. The search_listings endpoint accepts a keyword query and optional category_id to return paginated results with title, price, condition, and item ID. A dedicated search_sold_psa_cards endpoint filters completed sales to PSA-graded trading cards specifically.
curl -X GET 'https://api.parse.bot/scraper/923c816c-9218-4c32-ae0c-2eac3d514be5/search_listings?page=1&query=iPhone+15&category_id=0' \ -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-co-uk-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_uk_scraper_api import EbayUK, ListingSummary, Listing, Deal, Category, PSACard
ebay = EbayUK()
# Search for active listings
for item in ebay.listingsummaries.search(query="iPhone 15", limit=5):
print(item.title, item.price, item.condition)
# Get full details for a listing by item ID
detail = ebay.listings.get(item_id="297490087982")
print(detail.title, detail.price, detail.seller_username)
for key, value in detail.specifics.items():
print(key, value)
# Navigate from summary to full detail
for summary in ebay.listingsummaries.search(query="MacBook Pro", limit=1):
full = summary.details()
print(full.title, full.price, full.condition)
# Search sold listings for price analysis
for sold in ebay.listingsummaries.search_sold(query="Nintendo Switch", limit=3):
print(sold.title, sold.price, sold.shipping)
# Check seller feedback
feedback = ebay.sellerfeedbacks.get(username="loop_mobile")
print(feedback.username, feedback.positive_feedback_percent)
for fb in feedback.recent_feedbacks:
print(fb.comment, fb.item)
# Browse categories
for cat in ebay.categories.list(limit=3):
print(cat.name, cat.id)
for sub in cat.subcategories:
print(sub.name, sub.url)
# Get daily deals
for deal in ebay.deals.list(limit=5):
print(deal.title, deal.price, deal.original_price)
# Search sold PSA cards
for card in ebay.psacards.search(card_name="Charizard PSA 10", limit=3):
print(card.title, card.price, card.condition)
Search for active product listings on eBay UK by keyword. Returns paginated results including title, price, condition, item ID, URL, and shipping info. Results are ordered by eBay's default Best Match algorithm. Each page returns up to ~60 items.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based) |
| queryrequired | string | Search keyword or phrase |
| category_id | string | eBay category ID to filter results. 0 searches all categories. |
{
"type": "object",
"fields": {
"page": "string, current page number",
"items": "array of listing objects with item_id, title, price, condition, url, and shipping",
"query": "string, the search query used"
},
"sample": {
"data": {
"page": "1",
"items": [
{
"url": "https://www.ebay.co.uk/itm/297490087982",
"price": "£339.00 to £449.00",
"title": "Apple iPhone 15 - 128GB 256GB 512GB - All Colours Smartphone - Good",
"item_id": "297490087982",
"shipping": "Free next day delivery",
"condition": "Good - Refurbished",
"sold_date": "99+ sold"
}
],
"query": "iPhone 15"
},
"status": "success"
}
}About the eBay API
Active and Sold Listings
The search_listings endpoint takes a required query string plus optional page and category_id parameters. Results include an items array where each object carries item_id, title, price, condition, url, and shipping. Setting category_id to 0 searches across all categories. The search_sold_listings endpoint works the same way but targets completed sales, making it useful for price history research — each response includes a type field set to 'sold' so you can distinguish result sets programmatically.
Item Details and Seller Feedback
get_item_details accepts a 10–14 digit item_id and returns the full listing record: price, title, images (an array of URLs), condition, seller_username, and a specifics object containing key-value pairs such as brand, model, or size depending on the category. get_seller_feedback takes a seller username and returns positive_feedback_percent alongside a recent_feedbacks array, each entry holding a comment and an item field.
Categories, Deals, and PSA Cards
get_all_categories requires no parameters and returns the full eBay UK category tree: top-level categories with name, id, and a subcategories array where each child also carries name, url, id, and a children array. get_daily_deals returns current promotions as a deals array with title, price, original_price (when the listing shows a was-price), and url. The search_sold_psa_cards endpoint filters completed sales to items containing 'PSA' in the title; pass a card_name string to target a specific card and grade.
The eBay API is a managed, monitored endpoint for ebay.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ebay.co.uk 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.co.uk 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?+
- Build a price tracker by polling
search_sold_listingsfor a product keyword and charting medianpriceover time. - Vet a seller before a high-value purchase by calling
get_seller_feedbackto reviewpositive_feedback_percentand recent comments. - Power a product comparison tool using
get_item_detailsto pullspecificsfields like brand and model across multipleitem_idvalues. - Aggregate eBay UK daily deals into a deal-alert newsletter using
get_daily_dealsand itsoriginal_pricevspricefields. - Research PSA graded card valuations by querying
search_sold_psa_cardswith a specific card name and grade. - Populate a category-aware search UI by pre-loading the category tree from
get_all_categoriesand mappingidvalues tocategory_idfilter params insearch_listings. - Detect arbitrage opportunities by comparing active listing prices from
search_listingsagainst completed sale prices fromsearch_sold_listingsfor the same query.
| 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 that `search_listings` doesn't?+
search_listings gives you a summary per item: item_id, title, price, condition, url, and shipping. get_item_details goes deeper for a single item — it adds a full images array, a specifics object with category-specific attributes like brand or model, and the seller_username. Use it when you need the complete record for a known item ID.Does the API cover eBay marketplaces outside the UK?+
Does the API return bid history or auction time-remaining for auction listings?+
price, condition, title, url, and shipping for listings, but does not expose bid count, current bid history, or auction end times. You can fork it on Parse and revise to add an endpoint that surfaces those auction-specific fields.How does pagination work for search endpoints?+
search_listings and search_sold_listings accept an optional page string parameter. The response echoes back the page value you passed. If page is omitted, results default to the first page. Increment the page value in successive requests to walk through result sets.