Authenticate using eBay's OAuth 2.0 flow to obtain a user access token with the `https://api.ebay.com/oauth/api_scope/sell.inventory` scope.
Create or update an inventory item by calling PUT on the Inventory API's inventory item endpoint with a `sku` path parameter; provide `product` details (title, description, imageUrls, aspects) and `availability` (quantity).
Create an offer by POSTing to the offers endpoint with `sku`, `marketplaceId`, `format` (`FIXED_PRICE`), `listingDescription`, `pricingSummary` (price and currency), `categoryId`, and `fulfillmentPolicyId`, `paymentPolicyId`, `returnPolicyId`.
Retrieve or create the required business policies (fulfillment, payment, return) via the Account API if they don't already exist; their IDs are required on the offer.
Publish the offer to make it live by calling POST on the `publishOffer` endpoint with the `offerId`; the response contains the eBay `listingId`.
To update a live listing, update the inventory item or offer fields and call `publishOffer` again — changes to price and quantity are applied immediately.
Known gotchas
Category aspects (item specifics) marked as `required` by eBay's category taxonomy must be included in the inventory item's `aspects` field or the publish call will fail with a validation error.
Business policies (fulfillment, payment, return) must be created and associated with your account before they can be referenced on an offer — new eBay developer sandbox accounts need these set up explicitly.
eBay sandbox and production use different OAuth endpoints and API hostnames; accidentally targeting the wrong environment with production credentials results in authentication failures.
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