Obtain an OAuth 2.0 user token with the sell.inventory scope using the Authorization Code flow; eBay Sell APIs require user-level consent
Create or replace an inventory item by issuing PUT to /sell/inventory/v1/inventory_item/{sku} with a JSON body containing product details (title, description, aspects, imageUrls), condition, and availability quantity
Create an offer by POSTing to /sell/inventory/v1/offer with inventoryItemGroupKey or sku, marketplaceId, format (FIXED_PRICE), pricingSummary, listingPolicies (fulfillmentPolicyId, paymentPolicyId, returnPolicyId), and categoryId
Publish the offer to make it live by POSTing to /sell/inventory/v1/offer/{offerId}/publish; the response returns a listingId
Update price or quantity by issuing PATCH or PUT to the inventory item or offer endpoint; quantity changes reflect immediately without republishing
Retrieve listing status and listingId via GET /sell/inventory/v1/offer/{offerId} to confirm publication and surface any listing errors in the warnings array
Known gotchas
Listing policies (fulfillment, payment, return) must exist in the seller account before creating offers; reference them by their policy IDs, not names
The aspects field (item specifics) must include eBay-required aspects for the category or the publish call returns a warnings list and may be suppressed from search
OAuth tokens expire; implement token refresh using the refresh_token grant type and store both access and refresh tokens securely
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp