What you'll need
A bearer token - generate one from your 3Dsellers account under Settings > Integrations. If you generate the token in the app you can use it directly; the full OAuth2 flow is only needed when you are building an app that other sellers authorize
Your seller ID - from
GET /v1/sellers, or Settings > Connected Accounts. Most per-account calls need itBase URL -
https://api.3dsellers.com
The full interactive reference is at api.3dsellers.com/docs, where you can try every endpoint directly in your browser.
Manage your product catalog
Use GET /v1/products to search products by SKU, paginate through your catalog, or pull variant data. You can also create, update or patch products, including inventory, pricing, images, custom attributes and dimensions.
Useful for: syncing an external inventory system, bulk-updating prices from a spreadsheet tool, or checking whether a SKU exists before creating a product.
# Search for a product by SKUcurl -X GET "https://api.3dsellers.com/v1/products?sku=MY-SKU-123" \ -H "Authorization: Bearer YOUR_TOKEN"# Include variants in the responsecurl -X GET "https://api.3dsellers.com/v1/products?sku=MY-SKU-123&withVariants=true" \ -H "Authorization: Bearer YOUR_TOKEN"
Search listings by channel or seller account
Use GET /v1/products/listings to filter listings by SKU, channel, seller account and status (Active, Library, Ended). POST /v1/products/listings/tags adds or removes listing tags in bulk.
Useful for: checking whether a product is live on a marketplace, auditing which listings are active per account, or building a per-channel dashboard.
Publish products and map them to channel categories
POST /v1/actions/products/publish pushes catalog products onto a marketplace. Before that, the category mapping endpoints decide where they land: GET /v1/products/category-mappings/unmapped lists catalog categories with no channel category (those publish with no category at all), and PUT /v1/products/category-mappings fixes them in bulk. POST /v1/products/templates/mappings applies item specifics across your mapping templates.
Useful for: onboarding a new catalog, or fixing listings that publish with missing item specifics.
Read orders and ship them
GET /v1/orders pulls orders for a seller, filtered by status, channel, SKU or external order ID. POST /v1/orders/tracking sends the carrier and tracking number back out to the marketplace, and POST /v1/orders/tags tags orders in bulk.
Useful for: feeding order data into external reporting, or shipping orders from your own warehouse system without opening the app.
# Get orders for a sellercurl -X GET "https://api.3dsellers.com/v1/orders?sellerId=12345&status=paid" \ -H "Authorization: Bearer YOUR_TOKEN"# Push tracking back to the marketplacecurl -X POST "https://api.3dsellers.com/v1/orders/tracking" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "items": [{ "orderId": 987654, "carrier": "USPS", "trackingNumber": "9400111899560000000000" }] }'Mirror your Helpdesk
Read tickets and their full message threads, including buyer photo attachments, reply to buyers, and move ticket statuses. GET /v1/helpdesk/tickets, /counts, /{id}/messages, POST /{id}/replies and PATCH /{id}.
Useful for: running support in your own dashboard, or feeding buyer messages and photos to an AI tool that drafts or classifies replies.
Export data and schedule reports
POST /v1/exports queues any of the exports available in the app: catalog, inventory, bundles, listings, orders, cases, images, SKU stock, digital goods codes and eBay ad reports. POST /v1/exports/schedules makes it recurring, republishing to one fixed URL a spreadsheet can read.
Useful for: a daily orders feed into Google Sheets, or handing a supplier a stock file that refreshes itself.
Run bulk actions
POST /v1/actions queues the same batch operations the app runs when you select rows in a grid: publishing, price edits, policies, tags, SKU generation, marking orders shipped, and around a hundred more. They run asynchronously, so GET /v1/actions/{id} reports progress.
Useful for: anything that would take too long one record at a time. Always dry run a filter-based selection first.
Set up standing rules
Three kinds of rule keep working after you create them:
Automations (
/v1/automations) - a trigger plus actions, across listings, catalog products, orders and the Helpdesk. Scheduled price ladders, tag rules, auto relist, alertsOffer rules (
/v1/offers/rules) - send eBay Best Offers to watchers, or respond automatically to incoming offersAuto Messages (
/v1/auto-messages/messages) - post-sale buyer messages on order and feedback events, with per-country bodies
Manage Listing Designer templates and store structure
/v1/listing-designer/templates creates and edits the HTML designs wrapped around eBay listing descriptions, and /v1/listing-designer/auto-apply controls which template new listings pick up. /v1/sellers/{sellerId}/store-categories manages your eBay Store navigation sections.
Manage seller accounts and integrations
GET /v1/sellers lists connected marketplace accounts. GET /v1/sellers/integrations/status reports whether each one is connected and whether data is actually flowing, and PUT /v1/sellers/integrations/inventory-sync turns catalog inventory sync on or off per account. GET /v1/sellers/{sellerId}/policies returns eBay business policies to use when publishing.
Save and reuse filters
Segments are saved filter sets, readable and writable at /v1/segments. Because bulk actions, exports, automations and offer rules all take the same filter shape, building a view in the app and reading the segment back is the quickest way to get a filter tree you know is correct.
Monitor CSV imports
GET /v1/import-csv checks import job status, /{id}/errors shows which rows failed and why, and /{id}/errors/download returns all rejected rows as a CSV.
Useful for: automating import pipelines and getting notified when an import finishes or fails.
Get notified automatically with webhooks
Subscribe a URL to receive notifications when something happens:
order.created- a new order comes inimport-csv.status-updated- an import job changes status
Use POST /webhooks/subscribe to register your endpoint and POST /webhooks/unsubscribe to stop.
Useful for: triggering external workflows (Zapier, n8n, custom scripts) the moment something happens, instead of polling.
curl -X POST "https://api.3dsellers.com/webhooks/subscribe" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "webhook_url": "https://your-app.com/hooks/orders", "events": ["order.created"] }'Use it with AI agents (MCP)
Most of the above is also available through the Model Context Protocol endpoint, so AI tools can call your 3Dsellers data as part of an automated workflow.
One difference worth knowing: MCP tool results are text only. Where an endpoint returns image URLs, such as buyer photo attachments on a Helpdesk ticket, an AI agent receives the link but cannot see the image. To feed pictures to a model, call the REST endpoint and download each URL in your own code.
# MCP endpoint (streamable HTTP)https://api.3dsellers.com/mcp# MCP endpoint (SSE transport)https://api.3dsellers.com/sse
Getting started
All API calls require an OAuth2 bearer token. You can generate one from your 3Dsellers account under Integrations > API.
The full interactive API documentation - including all endpoints, parameters, and the ability to try calls directly in your browser - is available at api.3dsellers.com/docs.

