@pipeworx/etsy
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/etsy’s. Install: one-click buttons
Connect to just the @pipeworx/etsy pack
https://gateway.pipeworx.io/etsy/mcp — only @pipeworx/etsy’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
Search active Etsy listings via the Etsy Open API v3 — scoped to the three endpoints that authenticate with just an API key (no OAuth user token).
Tools
etsy_search_listings(keywords?, limit?, offset?, sort_on?, sort_order?, min_price?, max_price?, taxonomy_id?, buyer_country?)— site-wide active-listing search (findAllListingsActive).etsy_search_shop_listings(shop_id, keywords?, limit?, offset?, sort_on?, sort_order?)— active listings within one shop (findAllActiveListingsByShop).etsy_get_listing(listing_id)— one listing by ID (getListing).
No sold-price / comps data — Etsy’s v3 API has none. Active listings only.
Auth
BYO key only (_apiKey), requires an API key. Register a free app at
https://www.etsy.com/developers/register to get a keystring + shared
secret. Pass ?_apiKey=<keystring>; the colon-joined
<keystring>:<shared_secret> form your “Your Apps” page displays is accepted
too, and the pack handles the difference for you (see the trap below).
Etsy’s v3 reference marks each endpoint’s required auth. Only the three
endpoints above are api_key-only; everything else (shop/receipt/user
management, listing writes) requires an OAuth user token issued through
Etsy’s manual commercial-review flow — out of scope for this pack. If Etsy’s
review later grants broader access, extend this pack rather than building a
second one.
BYO is the settled posture, not a stopgap: Bruce ruled stop-tracking on
2026-10-02 (fleet #2632) — Pipeworx will not register or front a platform
Etsy app; the never-set PLATFORM_ETSY_KEY declaration is gone from the
gateway manifest and nobody re-probes it any more.
Registering an Etsy app requires signing into an Etsy account with a password
and then Etsy’s manual “Personal Approval”, and a pending app’s 403 is
byte-identical to a fabricated key’s 403, so there was no probe that could
ever end the wait. A keyless call refuses with “requires an API key” and
points at the registration URL. Note this pack’s live call has not been
verified against an approved key — the first caller with a real, approved
keystring exercises it live.
Data sources
- https://developers.etsy.com/documentation/reference/ — Etsy Open API v3.
Base URL
https://openapi.etsy.com/v3/application.
Traps for the next person:
- Etsy contradicts itself about the
x-api-keyheader value, and you cannot resolve it by experiment. The api_key reference for these three endpoints documents the bare keystring; the quickstart shows the colon-joinedkeystring:shared_secretpair (which is really the Basic-auth credential for the OAuth token endpoint). An app awaiting Etsy’s Personal Approval returns a 403 that is byte-identical to the 403 a fabricated key returns — verified with a negative control on 2026-09-09 (fleet #1279) — so no probe before activation can tell the two header forms apart. The pack therefore sends the keystring and, only on a 403, retries once with the raw value the caller passed. Don’t “simplify” that back to one call until a live successful response says which form won. - This pack returns Etsy’s response JSON close to verbatim (
count+resultsplus asourcefield) rather than re-mapping field names, since the exact Listing resource shape was only checked against the published OpenAPI reference, not a live authenticated response (no working key was available at build time — see Auth above).
Tools
- etsy_search_listings — Search active Etsy listings site-wide (Etsy Open API v3, findAllListingsActive). Requires an Etsy API key — pass your keystring as _apiKey (x-api-key auth only, no OAuth). No sold-price data — active
- etsy_search_shop_listings — Search a specific Etsy shop’s active listings by shop ID (Etsy Open API v3, findAllActiveListingsByShop). Requires an Etsy API key. Use etsy_search_listings first if you don’t already have a shop_id.
- etsy_get_listing — Get one Etsy listing by its numeric listing ID (Etsy Open API v3, getListing). Requires an Etsy API key.
Tools
etsy_get_listing— Get one Etsy listing by its numeric listing ID (Etsy Open API v3, getListing). Requires an Etsy API key.etsy_search_listings— Search active Etsy listings site-wide (Etsy Open API v3, findAllListingsActive). Requires an Etsy API key — pass your keystring as _apiKey (x-api-key auth only, no OAuth). No sold-price data — activeetsy_search_shop_listings— Search a specific Etsy shop's active listings by shop ID (Etsy Open API v3, findAllActiveListingsByShop). Requires an Etsy API key. Use etsy_search_listings first if you don't already have a shop_id.