Ebay search
Search eBay listings - find items, auctions, deals, and compare prices
How to use it
- Hit Copy the whole skill.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
npx degit gooseworks-ai/goose-skills/skills/research-tools/capabilities/ebay-search#main ~/.claude/skills/ebay-searchFor one project only, change the path to .claude/skills/ebay-search.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text123 lines
eBay Search
Setup
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Search eBay for products, auctions, and deals.
When to Use
- User wants to find items on eBay
- User asks about auctions
- User wants to compare prices on eBay
- User looking for used or vintage items
How It Works
Uses the SearchAPI eBay Search engine to query eBay listings.
Usage
Basic Search
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"vintage watch"}}'
curl equivalent
curl -X POST "https://api.orth.sh/v1/run" \
-H "Content-Type: application/json" \
-d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"vintage watch"}}'
Parameters
- engine (required) - Must be
ebay_search - q (required) - Search query
- page - Page number for pagination
Response
Top-level keys: search_metadata, search_parameters, search_information, categories, organic_results, related_searches, pagination.
search_information: total_results (integer), query_displayed, sorted_by.
Each item in organic_results array:
- position (integer) - Result rank
- item_id (string) - eBay item ID
- title (string) - Listing title
- link (string) - Listing page URL
- condition (string) - "Brand New", "Pre-Owned", "Refurbished", etc.
- price (string) - Display price (e.g., "$199.99")
- extracted_price (number) - Numeric price for comparison
- original_price / extracted_original_price - Pre-discount price (if discounted)
- shipping (string) - Shipping cost text (e.g., "Free delivery")
- extracted_shipping (number) - Numeric shipping cost
- buying_format (string) - "Buy It Now", "or Best Offer", or bid info with time left
- rating (number) - Seller rating (if available)
- reviews (integer) - Review count (if available)
- extensions (array) - Tags like brand, material, location, "Free returns", "Last one"
- thumbnail (string) - Image URL
- tag (string) - Special badges like "NEW LOW PRICE" (if applicable)
Pagination: Use page=2, page=3, etc. for more results. Response includes pagination.next URL.
Examples
User: "Find vintage watches on eBay"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"vintage watch"}}'
User: "Search eBay for retro gaming consoles"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"retro gaming console"}}'
User: "Find rare vinyl records"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"rare vinyl records"}}'
Error Handling
- 400 - Invalid engine name or missing
qparameter - 401 - Invalid API key
- 429 - Rate limit — wait and retry
- Empty
organic_resultsmeans no listings found — try broader terms - Use separate
-qflags if&in query string causes issues:-q 'engine=ebay_search' -q 'q=vintage watch'
| 1 | |
| 2 | name ebay-search |
| 3 | description Search eBay listings - find items, auctions, deals, and compare prices |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # eBay Search |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Search eBay for products, auctions, and deals. |
| 24 | |
| 25 | ## When to Use |
| 26 | |
| 27 | User wants to find items on eBay |
| 28 | User asks about auctions |
| 29 | User wants to compare prices on eBay |
| 30 | User looking for used or vintage items |
| 31 | |
| 32 | ## How It Works |
| 33 | |
| 34 | Uses the SearchAPI eBay Search engine to query eBay listings. |
| 35 | |
| 36 | ## Usage |
| 37 | |
| 38 | ### Basic Search |
| 39 | |
| 40 | |
| 41 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 42 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 43 | -H "Content-Type: application/json" \ |
| 44 | -d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"vintage watch"}}' |
| 45 | |
| 46 | |
| 47 | <details> |
| 48 | <summary>curl equivalent</summary> |
| 49 | |
| 50 | |
| 51 | curl -X POST "https://api.orth.sh/v1/run" \ |
| 52 | |
| 53 | -H "Content-Type: application/json" \ |
| 54 | -d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"vintage watch"}}' |
| 55 | |
| 56 | </details> |
| 57 | |
| 58 | ## Parameters |
| 59 | |
| 60 | **engine** (required) - Must be `ebay_search` |
| 61 | **q** (required) - Search query |
| 62 | **page** - Page number for pagination |
| 63 | |
| 64 | ## Response |
| 65 | |
| 66 | Top-level keys: `search_metadata`, `search_parameters`, `search_information`, `categories`, `organic_results`, `related_searches`, `pagination`. |
| 67 | |
| 68 | **`search_information`**: `total_results` (integer), `query_displayed`, `sorted_by`. |
| 69 | |
| 70 | Each item in **`organic_results`** array: |
| 71 | **position** (integer) - Result rank |
| 72 | **item_id** (string) - eBay item ID |
| 73 | **title** (string) - Listing title |
| 74 | **link** (string) - Listing page URL |
| 75 | **condition** (string) - "Brand New", "Pre-Owned", "Refurbished", etc. |
| 76 | **price** (string) - Display price (e.g., "$199.99") |
| 77 | **extracted_price** (number) - Numeric price for comparison |
| 78 | **original_price** / **extracted_original_price** - Pre-discount price (if discounted) |
| 79 | **shipping** (string) - Shipping cost text (e.g., "Free delivery") |
| 80 | **extracted_shipping** (number) - Numeric shipping cost |
| 81 | **buying_format** (string) - "Buy It Now", "or Best Offer", or bid info with time left |
| 82 | **rating** (number) - Seller rating (if available) |
| 83 | **reviews** (integer) - Review count (if available) |
| 84 | **extensions** (array) - Tags like brand, material, location, "Free returns", "Last one" |
| 85 | **thumbnail** (string) - Image URL |
| 86 | **tag** (string) - Special badges like "NEW LOW PRICE" (if applicable) |
| 87 | |
| 88 | **Pagination**: Use `page=2`, `page=3`, etc. for more results. Response includes `pagination.next` URL. |
| 89 | |
| 90 | ## Examples |
| 91 | |
| 92 | **User:** "Find vintage watches on eBay" |
| 93 | |
| 94 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 95 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 96 | -H "Content-Type: application/json" \ |
| 97 | -d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"vintage watch"}}' |
| 98 | |
| 99 | |
| 100 | **User:** "Search eBay for retro gaming consoles" |
| 101 | |
| 102 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 103 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 104 | -H "Content-Type: application/json" \ |
| 105 | -d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"retro gaming console"}}' |
| 106 | |
| 107 | |
| 108 | **User:** "Find rare vinyl records" |
| 109 | |
| 110 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 111 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 112 | -H "Content-Type: application/json" \ |
| 113 | -d '{"api":"searchapi","path":"/api/v1/search","query":{"engine":"ebay_search","q":"rare vinyl records"}}' |
| 114 | |
| 115 | |
| 116 | ## Error Handling |
| 117 | |
| 118 | **400** - Invalid engine name or missing `q` parameter |
| 119 | **401** - Invalid API key |
| 120 | **429** - Rate limit — wait and retry |
| 121 | Empty `organic_results` means no listings found — try broader terms |
| 122 | Use separate `-q` flags if `&` in query string causes issues: `-q 'engine=ebay_search' -q 'q=vintage watch'` |
| 123 |