E-Commerce · Beta
Wayfair
API integration
Ship E-Commerce features without building the integration. Full Wayfair API access via Proxy and 20+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Wayfair
Common scenarios for SaaS companies building Wayfair integrations for their customers.
Automate dropship order-to-cash for Wayfair suppliers
OMS and ERP platforms can offer end-to-end dropship automation — pulling new Wayfair POs, accepting line items, and firing ASNs with tracking — so their supplier customers avoid Wayfair's late-shipment penalties and maintain compliance scores.
Keep Wayfair inventory perfectly in sync from any IMS
Inventory management platforms can push scheduled TRUE_UP feeds and near-real-time DIFFERENTIAL updates to Wayfair, preventing overselling on high-velocity SKUs without asking users to manage feed schedules or file formats themselves.
Publish and maintain Wayfair catalogs from a PIM
PIM vendors can let brands map master product data to Wayfair's taxonomy, submit product additions, and update descriptions, media, and category assignments — replacing Wayfair's error-prone spreadsheet workflows with structured, auditable syncs.
Route non-Wayfair orders into CastleGate for MCF
Order routing engines and 3PL platforms can dispatch Shopify, Amazon, or DTC orders into Wayfair's CastleGate warehouse network and stream fulfillment status back to the originating channel — turning Wayfair into a multi-channel 3PL for their users.
Give CastleGate suppliers full inbound and outbound visibility
Supply chain and WMS platforms can acknowledge CastleGate POs, retrieve shipping advices, and reconcile CastleGate on-hand inventory per warehouse — giving suppliers a single pane of glass across their Wayfair-held stock.
What You Can Build
Ship these features with Truto + Wayfair
Concrete product features your team can ship faster by leveraging Truto’s Wayfair integration instead of building from scratch.
Dropship PO polling and auto-acknowledgment
Poll new dropship purchase orders on a schedule, evaluate local stock, and call the accept endpoint automatically to hit Wayfair's acknowledgment SLAs.
One-click ASN and tracking submission
Let warehouse users submit shipping confirmations that push carrier, tracking number, and package details to Wayfair via the dropship ship endpoint to trigger billing.
Scheduled TRUE_UP and event-driven DIFFERENTIAL feeds
Ship a dual-mode inventory sync that pushes a nightly full overwrite plus delta updates whenever local stock changes, using the inventory save endpoint.
Wayfair catalog publisher with async status tracking
Submit product additions and catalog item updates, then poll catalog update request IDs to surface success, failure, and validation errors back to your users in-app.
CastleGate inbound workflow console
Surface CastleGate purchase orders and shipping advices with acknowledgment actions so supply chain teams can confirm inbound replenishments without leaving your product.
Multi-channel fulfillment routing to CastleGate
Create Wayfair fulfillment orders from external sales channels and poll fulfillment order status and warehouse shipping advices to push tracking back to Shopify, Amazon, or your OMS.
SuperAI
Wayfair AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_wayfair_dropship_purchase_orders
List Wayfair dropship purchase orders, sorted by purchase order date. Leave has_response out to get all orders; pass has_response=false for open orders only (not yet accepted) or has_response=true for accepted orders only. Returns: id, poNumber, poDate, supplierId, supplierName, estimatedShipDate, customer and shipTo addresses, shippingInfo, warehouse and products. Wayfair has no supplier filter here: the results cover every supplier account and warehouse the connected Wayfair application can reach, so one call can mix suppliers. Each row carries supplierId, which can be a warehouse-level (child) ID or the parent ID, depending on how Wayfair set up the account. To answer for one supplier, keep only the rows whose supplierId matches, and say so when none match; do not present another supplier's orders as the one asked for. A supplier_id input is not supported and is ignored. To read only one supplier's orders, connect Wayfair with credentials from an application created under that supplier's own Partner Home account. Wayfair returns 10 orders unless you pass limit, oldest first unless sort_order is DESC. There is no next page (next_cursor is never set): to see more, raise limit, or narrow with from_date or po_numbers.
wayfair_dropship_purchase_orders_accept
Accept line items on a Wayfair dropship purchase order. Returns the transaction status including id, handle, status, submittedAt, itemCount, and per-item errors. Required: po_number, ship_speed, line_items. Max 10 line items per request.
wayfair_dropship_purchase_orders_ship
Send a Wayfair Advanced Shipment Notification (ASN) confirming that purchase order items have shipped and updating customer tracking. Returns the transaction status including handle, status, submittedAt, itemCount, and per-item errors. Required: notice. Max 10 line items per request.
list_all_wayfair_castlegate_purchase_orders
List Wayfair CastleGate purchase orders via the getCastleGatePurchaseOrders query. Returns: id, poNumber, poDate, supplierId and products (partNumber, quantity, price, totalCost). Wayfair has no supplier filter here: the results cover every supplier account and warehouse the connected Wayfair application can reach, so one call can mix suppliers. Each row carries supplierId, which can be a warehouse-level (child) ID or the parent ID, depending on how Wayfair set up the account. To answer for one supplier, keep only the rows whose supplierId matches, and say so when none match; do not present another supplier's orders as the one asked for. A supplier_id input is not supported and is ignored. To read only one supplier's orders, connect Wayfair with credentials from an application created under that supplier's own Partner Home account. Wayfair returns 10 orders unless you pass limit, and allows at most 25 when you ask for open orders; poll ideally every 30 minutes. There is no next page (next_cursor is never set): narrow with from_date, po_numbers or sort_order instead.
wayfair_castlegate_purchase_orders_acknowledge
Acknowledge receipt of a Wayfair CastleGate purchase order. Returns: handle, status, errors. Required: po_number. Rate limited to 1 request per 3 seconds.
list_all_wayfair_castlegate_shipping_advices
List CastleGate warehouse shipping advices (WSAs) in Wayfair. Returns each advice with wsaId, supplierId, poNumber, shipDate, shipSpeed, carrierCode, warehouseId and products (partNumber, quantityOrdered, quantityShipped). Wayfair has no supplier filter here: the results cover every supplier account and warehouse the connected Wayfair application can reach, so one call can mix suppliers. Each row carries supplierId, which can be a warehouse-level (child) ID or the parent ID, depending on how Wayfair set up the account. To answer for one supplier, keep only the rows whose supplierId matches, and say so when none match; do not present another supplier's shipping advices as the one asked for. A supplier_id input is not supported and is ignored. To read only one supplier's shipping advices, connect Wayfair with credentials from an application created under that supplier's own Partner Home account. Wayfair returns 10 advices unless you pass limit. There is no next page (next_cursor is never set): narrow with from_date, wsa_ids or sort_order instead.
wayfair_castlegate_shipping_advices_acknowledge
Acknowledge one or more CastleGate warehouse shipping advices in Wayfair by wsa_ids. Returns: handle, status, errors. Required: wsa_ids.
wayfair_inventory_save
Save inventory line items in Wayfair by submitting an inventory feed via the SaveInventory GraphQL mutation. Returns: handle, status. Required: inventory. Always sends a DIFFERENTIAL (partial) feed: only the parts you list change. Full TRUE_UP feeds are not supported by this tool, so it does not work in the Wayfair sandbox, which accepts TRUE_UP only.
list_all_wayfair_inventory_adjustments
List CastleGate inventory adjustments in Wayfair, newest first unless sort_option says otherwise. Returns each adjustment with eventDate, adjustmentType, supplierPartNumber, quantity, description, and the warehouse (warehouseId, name, address) where it occurred. Required: supplier_id (the parent supplier ID). Returns up to limit adjustments per page (1-100, default 100). When next_cursor is set there are more: call again with the same supplier_id, filter and sort_option plus that next_cursor.
list_all_wayfair_inventory_summaries
List Wayfair inventory position summaries by supplier part, including CastleGate and physical retail on-hand breakdowns per warehouse. Returns: supplierPartNumber, sku, productName, manufacturerPartId, options, inventoryPosition. Required: supplier_id (the parent supplier ID). filter.supplierPartNumbers accepts 1-100 part numbers; omit filter to query all parts. Returns up to limit parts per page (1-100, default 100), sorted by supplierPartNumber. When next_cursor is set there are more parts: call again with the same supplier_id and filter plus that next_cursor.
create_a_wayfair_fulfillment_order
Create a Wayfair multi-channel fulfillment order, fulfilled from CastleGate. Returns: fulfillmentOrderRequestId, requestStatus (ACCEPTED or FAILURE), and errors. Required: fulfillment_order_input with supplierId (the parent supplier ID), customer, retailer, items (up to 10), shippingAddress and shippingDetails. Wayfair allows 1 request every 3 seconds.
get_single_wayfair_fulfillment_order_by_id
Get detailed information for a single Wayfair multi-channel fulfillment order, identified by supplierId plus fulfillmentOrderRequestId. Returns: fulfillmentOrder (requestId, status, statusLabel, orderDate, customerOrderNumber, retailer, items with statuses and trackingNumbers) and fulfillmentOrderErrors. Required: order_details_input containing supplierId and fulfillmentOrderRequestId.
list_all_wayfair_fulfillment_orders
List Wayfair multi-channel fulfillment orders for a supplier, newest first by default. Returns one row per order, each holding a fulfillmentOrder (requestId, status, statusLabel, orderDate, customerOrderNumber, retailer, fulfillmentOrderItems) plus fulfillmentOrderErrors. Required: order_details_list_input with supplierId (the parent supplier ID); it can also filter by status, retailer and date intervals. Paging is in the input: Wayfair returns 10 orders per page unless you set pageSize; ask for page 2, 3 and so on until a page comes back with fewer orders than pageSize. limit and next_cursor are not used.
wayfair_fulfillment_orders_cancel
Cancel a Wayfair multi-channel fulfillment order by aggregatorOrderId and supplierId. Returns: aggregatorOrderId, order-level errors, and per-item results (fulfillmentOrderItemId, supplierPartNumber, requestStatus, errors). Required: cancel_fulfillment_order_input containing aggregatorOrderId and supplierId.
list_all_wayfair_warehouse_shipping_advices
List Wayfair warehouse shipping advices (WSAs) with tracking details for multi-channel fulfillment order items, newest first by default. Returns: fulfillmentOrderItemId, warehouseShippingAdviceDate, fulfillmentOrderRequestId, fulfillmentPurchaseOrderNumber, supplierId, retailer, productDetails, shippingDetails (warehouse) and tracking. Required: warehouse_shipping_advice_input with supplierId (the parent supplier ID); fulfillmentOrderItemIds and warehouseShippingAdviceDateInterval narrow it. Paging is in the input: Wayfair returns 50 advices per page unless you set pageSize; ask for page 2, 3 and so on until a page comes back with fewer advices than pageSize. limit and next_cursor are not used.
create_a_wayfair_product_addition
Submit new product additions to Wayfair via the productAddition.submit mutation. Returns: requestIds, which you pass to the product addition submissions tool. Required: request with supplierId and proposedProductAdditions (each with classId and parts; each part has its answers). At most 100 products per request; manufacturerId and manufacturerName are mutually exclusive.
list_all_wayfair_product_addition_submissions
List the Wayfair product addition submissions for the request IDs returned when the additions were submitted. Returns one row per submitted part: requestId, supplierId, supplierPartNumber, classId, marketContext, partId, partType, status, validationStatus, submissionStatus and validationFlaws. Required: request with supplierId and ids. There is no paging: every requested ID comes back in one call.
list_all_wayfair_product_addition_questions
List the Wayfair product addition questions (generic and class-specific) for a product class and market context. Returns one row per question: id, parentId, internalName, displayName, answerType, isActive, isMultiValue, importanceType, possibleAnswers (key, value) and childQuestions. Required: request with classId. There is no paging: every question comes back in one call.
list_all_wayfair_taxonomy_categories
List Wayfair product catalog taxonomy categories for a market context. Returns one row per category: taxonomyCategoryId and name. Required: market_context. Paging is in pagination_options: pageSize must be 10, 20, 25 or 50; ask for page 2, 3 and so on until a page comes back with fewer categories than pageSize. limit and next_cursor are not used.
list_all_wayfair_brand_associations
List the brands a Wayfair supplier is authorized to sell in a market context. Returns one row per brand: id and manufacturer (id, name); pass manufacturer.id, not id, as a product's manufacturerId. Required: request with supplierId, marketContext and pageSize. Paging is in the request: ask for page 2, 3 and so on until a page comes back with fewer brands than pageSize. limit and next_cursor are not used.
list_all_wayfair_media_metadata_tags
List Wayfair Product Catalog media metadata tags for a market context, grouped by tag type (document, legal document, language, region). Returns: metaDataTagType, metaDataTags. Required: media_metadata_tag.
list_all_wayfair_catalog_items
List catalog items from Wayfair's Catalog Read API V2 for one supplier, 30 per page at most. Returns one row per catalog item: supplierPartNumber, marketContext, url, catalogItemStatus (LIVE, NOT_LIVE, LAUNCHING), class (classId, className), insights (problems, warnings, opportunities) and listings (listingId, isLive). Required: supplier_id and input.paginationOptions. Optional filter by supplierPartNumbers, listingIds or catalogItemStatuses. Paging is in input.paginationOptions: ask for page 2, 3 and so on until a page comes back with fewer items than pageSize. limit and next_cursor are not used.
update_a_wayfair_catalog_item_by_id
Update market-specific catalog items (item name, taxonomy attributes) in Wayfair via the updateMarketSpecificCatalogItems mutation. Returns: requestId, which you pass to the catalog update request status tool. Required: input (supplierId, marketContext, catalogItemsToUpdate with supplierPartNumber; optional itemName, attributes, validateOnly). Up to 500 catalog entities per request.
update_a_wayfair_catalog_item_group_by_id
Update Wayfair catalog item groups (item group name, feature bullets, marketing copy) in one market context via the updateMarketSpecificCatalogItemGroups mutation. Returns: requestId, which you pass to the catalog update request status tool. Required: input with supplierId, marketContext, catalogItemGroupsToUpdate (each with itemGroupId) and validateOnly. Up to 500 catalog entities per request.
update_a_wayfair_catalog_item_media_by_id
Add, refresh or remove media on Wayfair catalog items via the updateCatalogItemsMedia mutation. Returns: requestId, which you pass to the catalog update request status tool. Required: input with supplierId, catalogItemsToUpdate (each with supplierPartNumber and mediaType; mediaUrl to upload, assetId or legacyAssetId to delete) and validateOnly. Media updates apply to all market contexts.
get_single_wayfair_catalog_update_request_by_id
Get the status of a Wayfair catalog update request (items, item groups, or media) using the supplierId and the requestId returned from the update mutation. Returns: requestId, validationOnly, status, problems (code, title, detail, catalogEntityIdentifier, catalogEntityProperty, inputValue) and successfulUpdates (entityIdentifier, catalogEntityProperty). Required: input with supplierId and requestId. A COMPLETED status can still carry per-entity problems.
list_all_wayfair_supplier_catalog
List products from a Wayfair supplier catalog via the supplierCatalog GraphQL export. Returns one row per product: productId, upc, supplierPartNumber, status, manufacturerPart, and skus (sku, displaySku, productName, className, isLive, status, retailPrice, productDimensions, manufacturer, primaryImage). Required: supplier_id. Only one filter type per request; pagination_options.pageSize must be 10, 20, or 25. Paging is in pagination_options: ask for page 2, 3 and so on until a page comes back with fewer products than pageSize. limit and next_cursor are not used.
Why Truto
Why use Truto’s MCP server for Wayfair
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 1000+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
For your product
Ship Wayfair tools in your product
Give the AI in your product access to each customer’s own Wayfair account, with one MCP server per connected account.
Rather talk it through? Book a demo
For your own team
Use Wayfair in ChatGPT or Claude yourself
Connect your company’s Wayfair once, then ask in the AI you already use, with exactly your own access.
From the team behind Truto · 14-day free trial
How It Works
From zero to integrated
Start with Wayfair in a free sandbox, usually ready within one business day. No boilerplate, no maintenance burden.
Link your customer’s Wayfair account
Use Truto’s frontend SDK to connect your customer’s Wayfair account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Wayfair
Truto’s Proxy API is a 1-to-1 mapping of the Wayfair API. You call us, we call Wayfair, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Wayfair’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Wayfair on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication to Wayfair work through Truto?
Wayfair uses OAuth 2.0 client credentials issued through the Wayfair Partner Home developer portal. Truto handles the token exchange, refresh, and secure storage per connected account, so your end users only complete the connection flow once.
Which Wayfair operations are supported today?
Truto exposes tools across dropship POs (list, accept, ship), CastleGate POs and shipping advices (list, acknowledge), inventory (save feeds, list adjustments and summaries), fulfillment orders for MCF (create, get, list, cancel), warehouse shipping advices, and the full V2 catalog surface including product additions, taxonomy, brand associations, media tags, catalog items, and update request polling.
How do we handle Wayfair's asynchronous catalog updates?
Catalog item and media updates return a request ID rather than an immediate result. Use get_single_wayfair_catalog_update_request_by_id to poll for completion status and surface validation errors — Truto normalizes the request/response shape so you can build a single polling loop across all catalog mutations.
Can we push both full and delta inventory updates?
Yes. wayfair_inventory_save supports both TRUE_UP (full overwrite) and DIFFERENTIAL (delta) payloads, so you can implement a scheduled nightly reconciliation plus event-driven updates from your users' warehouse or IMS.
How fresh is dropship PO data?
Wayfair does not push webhooks for new POs, so freshness is a function of your polling cadence. Most production integrations poll list_all_wayfair_dropship_purchase_orders every 5–15 minutes to stay within Wayfair's acknowledgment SLAs.
Does Truto support both dropship and CastleGate (3PL) workflows?
Yes. Truto exposes separate tool sets for dropship POs and CastleGate POs, plus CastleGate shipping advices and fulfillment orders for MCF — so you can support pure dropship suppliers, CastleGate-only suppliers, or hybrid models from a single integration.
From the Blog
Wayfair integration guides
Deep dives, architecture guides, and practical tutorials for building Wayfair integrations.
Wayfair
Get Wayfair integrated into your app
Our team understands what it takes to make a Wayfair integration successful. A short, crisp 30 minute call with folks who understand the problem.