E-Commerce · Beta
Etsy
API integration
Ship E-Commerce features without building the integration. Full Etsy API access via Proxy and 100+ 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 Etsy
Common scenarios for SaaS companies building Etsy integrations for their customers.
Automate order fulfillment for Etsy sellers
Shipping and logistics platforms can pull unfulfilled receipts, generate labels, and push tracking numbers back to Etsy so buyers get notified automatically. This removes manual copy-paste work for merchants managing high order volumes.
Reconcile Etsy payouts inside accounting tools
Accounting and finance SaaS can ingest granular ledger entries and payment records to match Etsy's net payouts against gross sales, fees, and refunds. This solves the mismatch between Etsy's bundled deposits and the seller's books.
Sync inventory across multiple sales channels
PIM, ERP, and inventory platforms can keep stock levels aligned between Etsy and other channels using bulk inventory reads and updates. Merchants avoid overselling when the same SKU sells on Shopify, Amazon, or in-store.
Publish print-on-demand listings and auto-fulfill orders
POD and dropshipping platforms can create draft listings with images, videos, variations, and shipping profiles directly in a seller's shop. Incoming transactions with matching SKUs then route automatically to production.
Give support agents full Etsy order context
Helpdesk and CX platforms can surface a buyer's receipts, transactions, and reviews inside the agent workspace. Support teams can resolve tickets without switching to the Etsy Seller Dashboard.
What You Can Build
Ship these features with Truto + Etsy
Concrete product features your team can ship faster by leveraging Truto’s Etsy integration instead of building from scratch.
Unfulfilled order sync with tracking write-back
Poll shop receipts, filter for unshipped orders, and post tracking codes with carrier names back to Etsy to trigger buyer notifications.
Bulk inventory updates across channels
Read stock for up to 100 listings at a time and push cross-channel deductions using Etsy's batch inventory update endpoint.
Draft listing publisher for POD and catalog tools
Programmatically create shop listings, attach images and videos, and configure listing properties, personalization, and shipping profiles from your own product editor.
Payout reconciliation dashboards
Pull payment account ledger entries, shop payments, and receipt-level payments to break down gross sales, Etsy fees, ad spend, and net deposits per payout.
Shipping profile and destination management
Let sellers create, edit, and delete shipping profiles, destinations, and upgrades from inside your logistics UI without opening Etsy.
Review and reputation monitoring
List shop and listing reviews to trigger alerts for low ratings, feed CSAT dashboards, or route negative feedback into support queues.
SuperAI
Etsy 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_etsy_buyer_taxonomy_nodes
List the full hierarchy tree of Etsy buyer taxonomy nodes. Returns: id, level, name, parent_id, children, full_path_taxonomy_ids.
list_all_etsy_node_properties
List product properties with applicable scales and values supported for a specific Etsy buyer taxonomy node. Returns: property_id, property_name, scale_id, scale_name, value_ids, values. Required: taxonomy_id.
list_all_etsy_shop_listings
List Etsy listings belonging to a shop, optionally filtered by listing state. Returns each listing with listing_id, title, description, state, price, quantity, num_favorers, tags, materials, and timestamps. Required: shop_id.
create_a_etsy_shop_listing
Create a physical draft listing product in an Etsy shop. Returns the created ShopListing including listing_id, title, description, state, price, quantity, and timestamps. shipping_profile_id is required for physical listings. Required: shop_id.
update_a_etsy_shop_listing_by_id
Update an Etsy shop listing by id, including title, description, state, shipping profile, pricing, dimensions, tags, and production partner associations. Returns the updated ShopListing including listing_id, title, description, state, price, quantity, url, and timestamps. Required: id, shop_id.
get_single_etsy_application_listing_by_id
Get a single Etsy listing by id. Returns the full listing record including listing_id, title, description, price, state, quantity, tags, who_made, when_made, and additional listing attributes including shipping and processing details. Required: id.
delete_a_etsy_application_listing_by_id
Delete an Etsy ShopListing by id. Returns an empty 204 response on success. A listing can be deleted only if its state is SOLD_OUT, DRAFT, EXPIRED, INACTIVE, or ACTIVE with is_available, or ACTIVE with seller flags SUPRESSED, VACATION, CUSTOM_SHOPS, or SELL_ON_FACEBOOK. Required: id.
get_single_etsy_listing_file_by_id
Get a single Etsy listing file by id. Returns: listing_file_id, listing_id, rank, filename, filesize, size_bytes, filetype, create_timestamp, created_timestamp. Requesting a file from a physical listing returns an empty result. Required: id, shop_id, listing_id.
delete_a_etsy_listing_file_by_id
Delete an Etsy listing file by id. Returns an empty 204 response on success. Deleting the final file for a digital listing converts it into a physical listing. Required: id, shop_id, listing_id.
list_all_etsy_listing_files
List all files associated with an Etsy digital listing. Returns: listing_file_id, listing_id, rank, filename, filesize, size_bytes, filetype, create_timestamp, created_timestamp. Requesting files from a physical listing returns an empty result. Required: listing_id, shop_id.
create_a_etsy_listing_file
Upload a new file for an Etsy digital listing, or associate an existing file with a listing. Returns: listing_file_id, listing_id, rank, filename, filesize, size_bytes, filetype, create_timestamp, created_timestamp. Provide either listing_file_id of an existing file, or name and file for a new upload. Required: shop_id, listing_id.
delete_a_etsy_listing_image_by_id
Delete an Etsy listing image by id. A copy of the file remains on Etsy servers and may be re-associated with the listing later without re-uploading. Returns an empty 204 response on success. Required: id, shop_id, listing_id.
get_single_etsy_listing_image_by_id
Get a single Etsy listing image by id. Returns: listing_id, listing_image_id, hex_code, red, green, blue, hue, saturation, brightness, is_black_and_white, creation_tsz, created_timestamp, rank, url_75x75, url_170x135, url_570xN, url_fullxfull, full_height, full_width, alt_text. Required: id, listing_id.
list_all_etsy_listing_images
List all listing images for an Etsy listing. Returns: listing_id, listing_image_id, hex_code, red, green, blue, hue, saturation, brightness, is_black_and_white, creation_tsz, created_timestamp, rank, url_75x75, url_170x135, url_570xN, url_fullxfull, full_height, full_width, alt_text. Required: listing_id.
create_a_etsy_listing_image
Upload or assign an image to an Etsy listing by shop_id and listing_id. Provide the image file to upload a new image, or listing_image_id to re-assign a previously deleted image. When both are supplied, only the uploaded image is used. Returns: listing_id, listing_image_id, hex_code, red, green, blue, hue, saturation, brightness, is_black_and_white, creation_tsz, created_timestamp, rank,…. Required: shop_id, listing_id.
get_single_etsy_listing_inventory_by_id
Get the inventory record for an Etsy listing by id. Returns the inventory including products (with offerings and property_values), price_on_property, quantity_on_property, sku_on_property, and readiness_state_on_property. SKU data is only returned when you own the inventory. Required: id.
etsy_listing_inventories_bulk_update
Update the inventory for an Etsy listing by id. Returns the updated inventory including products (with offerings and property_values), price_on_property, quantity_on_property, sku_on_property, and readiness_state_on_property. The update fails if supplied values for product sku, offering quantity, price, and/or processing profile are incompatible with the *_on_property fields. Required: id, products.
list_all_etsy_batch_inventories
Retrieve inventory records for multiple Etsy listings by listing ID in a single batch request. Returns: listing_id, products, price_on_property, quantity_on_property, sku_on_property, readiness_state_on_property. Limit 100 listing IDs per request; if any ID is not found the entire request returns a 404. SKUs within product records are stripped (returned as empty string) for…. Required: listing_ids.
get_single_etsy_inventory_product_by_id
Get a specific Etsy listing inventory product by id within a listing. Returns: product_id, sku, is_deleted, offerings, property_values. Required: id, listing_id.
get_single_etsy_product_offering_by_id
Get a specific product offering for an Etsy listing product. Returns: offering_id, quantity, is_enabled, is_deleted, price, readiness_state_id. Required: id, listing_id, product_id.
list_all_etsy_listings_batches
Query multiple Etsy listing IDs at once in a single batch request. Returns: listing_id, user_id, shop_id, title, description, rich_description, state, creation_timestamp, created_timestamp, ending_timestamp, original_creation_timestamp, last_modified_timestamp, updated_timestamp, state_timestamp, quantity, shop_section_id, featured_rank, url, num_favorers, non_taxable, is_taxable,…. Required: listing_ids.
list_all_etsy_listings_featureds
List featured Etsy listings for a shop. Returns listing records including listing_id, title, description, state, price, quantity, created_timestamp, and num_favorers. Required: shop_id.
update_a_etsy_listing_personalization_by_id
Create or update personalization settings for an Etsy listing, fully replacing any existing personalization. Returns: personalization_questions. Required: id, shop_id, personalization_questions.
get_single_etsy_listing_personalization_by_id
Get a listing's personalization questions in Etsy by listing id. Returns: personalization_questions. Required: id.
etsy_listing_personalizations_bulk_delete
Delete personalization for an Etsy listing. Returns an empty 204 response on success. Required: id, shop_id.
update_a_etsy_listing_property_by_id
Update a listing property's values in an Etsy shop, populating the properties that define product offerings for a listing. Returns: property_id, property_name, scale_id, scale_name, value_ids, values. Each offering requires both a value and a value_id valid for the assigned scale_id. Required: id, shop_id, listing_id.
delete_a_etsy_listing_property_by_id
Delete a listing property from an Etsy shop listing. Returns an empty 204 response on success. Required: id, shop_id, listing_id.
list_all_etsy_listing_properties
List all properties for an Etsy listing in a shop. Returns: property_id, property_name, scale_id, scale_name, value_ids, values. Required: shop_id, listing_id.
get_single_etsy_listing_property_by_id
Get a single Etsy listing property by id. Returns: property_id, property_name, scale_id, scale_name, value_ids, values. Required: id, listing_id.
list_all_etsy_batch_shippings
List shipping profiles for multiple Etsy listings by their listing IDs. Returns: shipping_profile_id, title, user_id, origin_country_iso, is_deleted, shipping_profile_destinations, shipping_profile_upgrades, origin_postal_code, profile_type, domestic_handling_fee, international_handling_fee. Limit 100 listing IDs per request; all requested IDs must exist or the entire…. Required: listing_ids.
list_all_etsy_listing_transactions
List Etsy transactions associated with a specific listing. Returns: transaction_id, title, description, seller_user_id, buyer_user_id, create_timestamp, created_timestamp, paid_timestamp, shipped_timestamp, quantity, listing_image_id, receipt_id, is_digital, file_data, listing_id, transaction_type, product_id, sku, price, shipping_cost, variations, product_data, shipping_profile_id,…. Required: shop_id, listing_id.
create_a_etsy_listing_translation
Create a listing translation in Etsy for a specific language. Returns: listing_id, language, title, description, tags. Required: shop_id, listing_id, language.
update_a_etsy_listing_translation_by_id
Update a listing translation in Etsy for a specific language. Returns: listing_id, language, title, description, tags. Required: id, shop_id, listing_id.
get_single_etsy_listing_translation_by_id
Get a listing translation in Etsy for a specific language. Returns: listing_id, language, title, description, tags. Required: id, shop_id, listing_id.
list_all_etsy_listing_variation_images
List all variation images on an Etsy listing. Returns: property_id, value_id, value, image_id. Required: shop_id, listing_id.
update_a_etsy_listing_variation_image_by_id
Create or overwrite all variation images on an Etsy listing. The update overwrites existing variation images, so the listing will have exactly those you specify. Returns: count, results. Required: shop_id, listing_id, variation_images.
delete_a_etsy_listing_video_by_id
Delete a listing video from an Etsy shop. A copy of the video remains on Etsy's servers and may be re-associated with the listing without re-uploading. Returns an empty 204 response on success. Required: id, shop_id, listing_id.
list_all_etsy_listing_videos
List all videos associated with an Etsy listing. Returns: video_id, height, width, thumbnail_url, video_url, video_state. Required: listing_id.
create_a_etsy_listing_video
Upload a new video for an Etsy listing or associate an existing video with it. Returns: video_id, height, width, thumbnail_url, video_url, video_state. You must provide either video_id of an existing shop video, or name and video binary file for upload. Required: shop_id, listing_id.
get_single_etsy_listing_video_by_id
Get a single video associated with an Etsy listing by id. Returns: video_id, height, width, thumbnail_url, video_url, video_state. Required: id, listing_id.
list_all_etsy_payment_account_ledger_entries
List Etsy shop payment account ledger entries filtered by a creation-date range. Returns: entry_id, ledger_id, sequence_number, amount, currency, description, balance, create_date, created_timestamp, ledger_type, reference_type, reference_id, parent_entry_id, payment_adjustments. Required: shop_id, min_created, max_created.
get_single_etsy_payment_account_ledger_entry_by_id
Get a single Etsy shop payment account ledger entry by id. Returns: entry_id, ledger_id, sequence_number, amount, currency, description, balance, create_date, created_timestamp, ledger_type, reference_type, reference_id, parent_entry_id, payment_adjustments. Required: id, shop_id.
list_all_etsy_ledger_entries_payments
List Etsy payments associated with PaymentAccount ledger entry IDs for a shop. Returns each payment with payment_id, buyer_user_id, receipt_id, amount_gross, amount_fees, amount_net, status, and payment_adjustments. Required: shop_id, ledger_entry_ids.
list_all_etsy_receipt_payments
List payments for a specific Etsy shop receipt. Returns each payment's payment_id, buyer_user_id, shop_id, receipt_id, amount_gross, amount_fees, amount_net, status, currency, and payment_adjustments. Required: shop_id, receipt_id.
list_all_etsy_shop_payments
List Etsy shop payments filtered by a comma-separated list of payment IDs. Returns each payment record including payment_id, receipt_id, amount_gross, amount_fees, amount_net, status, currency, and payment_adjustments. Required: shop_id, payment_ids.
list_all_etsy_application_openapi_pings
Check connectivity to the Etsy Open API by confirming an application has access. Returns: application_id.
list_all_etsy_shop_receipts
List Etsy shop receipts from a specific shop, optionally filtered by date range, payment, shipping, delivery, or cancellation status. Returns: receipt_id, receipt_type, seller_user_id, seller_email, buyer_user_id, buyer_email, name, first_line, second_line, city, state, zip, status, formatted_address, country_iso, payment_method, payment_email, message_from_seller, message_from_buyer,…. Required: shop_id.
update_a_etsy_shop_receipt_by_id
Update the payment or shipping status of an Etsy shop receipt by id. Returns the updated receipt including receipt_id, status, is_paid, is_shipped, grandtotal, subtotal, transactions, shipments, and refunds. Required: id, shop_id.
get_single_etsy_shop_receipt_by_id
Get a single Etsy shop receipt by id. Returns the full receipt object including receipt_id, status, is_paid, is_shipped, grandtotal, subtotal, transactions, shipments, and refunds. Required: id, shop_id.
list_all_etsy_receipt_listings
List all Etsy listings associated with a specific shop receipt. Returns: listing_id, user_id, shop_id, title, description, language, state, price, currency_code, quantity, tags, materials, styles, who_made, when_made, is_supply, is_customizable, is_personalizable, is_digital, should_auto_renew, is_taxable, type, taxonomy_id, shipping_profile_id, return_policy_id, shop_section_id, processing_min,…. Required: receipt_id, shop_id.
create_a_etsy_receipt_tracking
Submit tracking information for an Etsy Shop Receipt, creating a Shop Receipt Shipment entry and triggering a buyer notification email. Returns the full ShopReceipt object including receipt_id, status, is_shipped, shipments, grandtotal, and transactions. For US orders over $10 or shipments to India, tracking_code and carrier_name are required; use 'other' as…. Required: shop_id, receipt_id.
list_all_etsy_receipt_transactions
List transactions associated with a specific Etsy receipt. Returns: transaction_id, title, description, seller_user_id, buyer_user_id, create_timestamp, created_timestamp, paid_timestamp, shipped_timestamp, quantity, listing_image_id, receipt_id, is_digital, file_data, listing_id, transaction_type, product_id, sku, price, shipping_cost, variations, product_data, shipping_profile_id,…. Required: shop_id, receipt_id.
list_all_etsy_listing_reviews
List reviews for an Etsy listing by its ID. Returns: shop_id, listing_id, rating, review, language, image_url_fullxfull, create_timestamp, created_timestamp, update_timestamp, updated_timestamp. Use min_created and max_created to filter by unix timestamp range. Required: listing_id.
list_all_etsy_shop_reviews
List transaction reviews for an Etsy shop by shop ID, optionally filtered by creation timestamp range. Returns: shop_id, listing_id, transaction_id, buyer_user_id, rating, review, language, image_url_fullxfull, create_timestamp, created_timestamp, update_timestamp, updated_timestamp. Max 100 results per page. Required: shop_id.
list_all_etsy_seller_taxonomy_nodes
List the full hierarchy tree of Etsy seller taxonomy nodes. Returns: id, level, name, parent_id, children, full_path_taxonomy_ids. No required parameters.
list_all_etsy_application_shipping_carriers
List available Etsy shipping carriers and their associated mail classes for a given origin country. Returns: shipping_carrier_id, name, domestic_classes, international_classes. Required: origin_country_iso.
get_single_etsy_application_shop_by_id
Get a single Etsy shop by id. Returns the full Shop object including shop_id, user_id, shop_name, title, announcement, currency_code, is_vacation, listing_active_count, review_average, and more. Required: id.
update_a_etsy_application_shop_by_id
Update an Etsy shop's title, announcement, sale messages, and additional policy. Returns the updated Shop object including shop_id, user_id, shop_name, title, announcement, and currency_code. String parameters must be in the shop's primary language; policy_additional should only be set for EU shops. Required: id.
list_all_etsy_application_shops
Search Etsy shops by name. Returns a list of Shop objects including shop_id, shop_name, title, announcement, currency_code, listing_active_count, and review_average for each result. Required: shop_name.
list_all_etsy_user_shops
Get the Etsy shop owned by a specific user by their user ID. Returns: shop_id, user_id, shop_name, create_date, created_timestamp, title, announcement, currency_code, is_vacation, vacation_message, sale_message, digital_sale_message, update_date, updated_timestamp, listing_active_count, digital_listing_count, login_name, accepts_custom_requests, policy_welcome, policy_payment, policy_shipping,…. Required: user_id.
list_all_etsy_shop_holiday_preferences
List holidays available to an Etsy shop for setting a processing preference. Returns: shop_id, holiday_id, country_iso, is_working, holiday_name. Currently only supported in the US and CA. Required: shop_id.
update_a_etsy_shop_holiday_preference_by_id
Update whether an Etsy shop will process orders on a specific holiday. Returns: shop_id, holiday_id, country_iso, is_working, holiday_name. Currently only supported in the US and CA. Required: id, shop_id.
create_a_etsy_return_consolidate
Consolidate Etsy return policies by moving all listings from a source return policy to a destination return policy and deleting the source. Returns the updated destination return policy object including return_policy_id, shop_id, accepts_returns, accepts_exchanges, and return_deadline. Required: shop_id.
list_all_etsy_policies_returns
List all return policies for an Etsy shop. Returns: return_policy_id, shop_id, accepts_returns, accepts_exchanges, return_deadline. Required: shop_id.
create_a_etsy_policies_return
Create a new return policy for an Etsy shop. Returns: return_policy_id, shop_id, accepts_returns, accepts_exchanges, return_deadline. If accepts_returns or accepts_exchanges is true, return_deadline is required. Required: shop_id.
update_a_etsy_policies_return_by_id
Update an existing return policy for an Etsy shop. Returns: return_policy_id, shop_id, accepts_returns, accepts_exchanges, return_deadline. If accepts_returns or accepts_exchanges is true, return_deadline is required. Required: id, shop_id.
delete_a_etsy_policies_return_by_id
Delete an existing Returns an empty 204 response on success. Returns an empty 204 response on success. Deletion is only allowed for policies with no associated listings. Required: id, shop_id.
get_single_etsy_policies_return_by_id
Get a single return policy from an Etsy shop by id. Returns: return_policy_id, shop_id, accepts_returns, accepts_exchanges, return_deadline. Required: id, shop_id.
list_all_etsy_listings
List all Etsy shop listings associated with a specific Return Policy. Returns: listing_id, user_id, shop_id, title, description, rich_description, state, creation_timestamp, created_timestamp, ending_timestamp, original_creation_timestamp, last_modified_timestamp, updated_timestamp, state_timestamp, quantity, shop_section_id, featured_rank, url, num_favorers, non_taxable, is_taxable,…. Required: return_policy_id, shop_id.
list_all_etsy_shop_production_partners
List production partners available in a specific Etsy shop. Returns: production_partner_id, partner_name, location. Required: shop_id.
list_all_etsy_shop_readiness_state_definitions
List Etsy shop readiness state definitions (processing profiles) for a specific shop. Returns: shop_id, readiness_state_id, readiness_state, min_processing_days, max_processing_days, processing_days_display_label. Max 100 per page. Required: shop_id.
create_a_etsy_shop_readiness_state_definition
Create a new Etsy shop readiness state definition (processing profile). Returns: shop_id, readiness_state_id, readiness_state, min_processing_days, max_processing_days, processing_days_display_label. Throws a 409 Conflict error if an existing definition already matches the input values. Required: shop_id.
update_a_etsy_shop_readiness_state_definition_by_id
Update an existing Etsy shop readiness state definition (processing profile) by id. Returns: shop_id, readiness_state_id, readiness_state, min_processing_days, max_processing_days, processing_days_display_label. Throws a 409 Conflict error if an existing definition already matches the input values. Required: id, shop_id.
delete_a_etsy_shop_readiness_state_definition_by_id
Delete an Etsy shop readiness state definition by id. Returns an empty 204 response on success. Cannot delete a definition that is linked to active offerings; re-link those offerings first. Required: id, shop_id.
get_single_etsy_shop_readiness_state_definition_by_id
Get a single Etsy shop readiness state definition (processing profile) by id. Returns: shop_id, readiness_state_id, readiness_state, min_processing_days, max_processing_days, processing_days_display_label. Required: id, shop_id.
list_all_etsy_shop_sections
List Etsy shop sections for a specific shop. Returns: shop_section_id, title, rank, user_id, active_listing_count. Required: shop_id.
create_a_etsy_shop_section
Create a new section in an Etsy shop. Returns: shop_section_id, title, rank, user_id, active_listing_count. Required: shop_id.
get_single_etsy_shop_section_by_id
Get a single Etsy shop section by id. Returns: shop_section_id, title, rank, user_id, active_listing_count. Required: id, shop_id.
update_a_etsy_shop_section_by_id
Update the title of an Etsy shop section by id. Returns: shop_section_id, title, rank, user_id, active_listing_count. Required: id, shop_id.
delete_a_etsy_shop_section_by_id
Delete an Etsy shop section by id. Returns an empty 204 response on success. Required: id, shop_id.
list_all_etsy_shop_sections_listings
List all Etsy listings belonging to one or more sections of a specific shop. Returns: listing_id, title, description, language, tags. Max 100 results per page. Required: shop_id, shop_section_ids.
list_all_etsy_shop_shipping_profiles
List shipping profiles for an Etsy shop. Returns each profile with: shipping_profile_id, title, user_id, origin_country_iso, is_deleted, shipping_profile_destinations, shipping_profile_upgrades, origin_postal_code, profile_type, domestic_handling_fee, international_handling_fee. Required: shop_id.
create_a_etsy_shop_shipping_profile
Create a new shipping profile for an Etsy shop. Returns: shipping_profile_id, title, user_id, origin_country_iso, is_deleted, shipping_profile_destinations, shipping_profile_upgrades, origin_postal_code, profile_type, domestic_handling_fee, international_handling_fee. Pass either destination_country_iso or…. Required: shop_id.
update_a_etsy_shop_shipping_profile_by_id
Update an existing Etsy shipping profile by id. Returns: shipping_profile_id, title, user_id, origin_country_iso, is_deleted, shipping_profile_destinations, shipping_profile_upgrades, origin_postal_code, profile_type, domestic_handling_fee, international_handling_fee. Required: id, shop_id.
delete_a_etsy_shop_shipping_profile_by_id
Delete an Etsy shipping profile by id. Returns an empty 204 response on success. Required: id, shop_id.
get_single_etsy_shop_shipping_profile_by_id
Get a single Etsy shipping profile by id. Returns: shipping_profile_id, title, user_id, origin_country_iso, is_deleted, shipping_profile_destinations, shipping_profile_upgrades, origin_postal_code, profile_type, domestic_handling_fee, international_handling_fee. Required: id, shop_id.
list_all_etsy_shipping_profile_destinations
List shipping profile destinations associated with an Etsy shipping profile. Returns: shipping_profile_destination_id, shipping_profile_id, origin_country_iso, destination_country_iso, destination_region, primary_cost, secondary_cost, shipping_carrier_id, mail_class, min_delivery_days, max_delivery_days. Required: shop_id, shipping_profile_id.
create_a_etsy_shipping_profile_destination
Create a new shipping destination for an Etsy shipping profile, setting shipping cost, carrier, and class. Returns: shipping_profile_destination_id, shipping_profile_id, origin_country_iso, destination_country_iso, destination_region, primary_cost, secondary_cost, shipping_carrier_id, mail_class, min_delivery_days, max_delivery_days. Required: shop_id, shipping_profile_id.
update_a_etsy_shipping_profile_destination_by_id
Update an existing Etsy shipping profile destination by id, reassigning shipping cost, carrier, and class. Returns: shipping_profile_destination_id, shipping_profile_id, origin_country_iso, destination_country_iso, destination_region, primary_cost, secondary_cost, shipping_carrier_id, mail_class, min_delivery_days, max_delivery_days. Required: id, shop_id, shipping_profile_id.
delete_a_etsy_shipping_profile_destination_by_id
Delete an Etsy shipping profile destination by id. Cannot delete the final remaining destination of a shipping profile; delete the entire shipping profile instead. Returns an empty 204 response on success. Required: id, shop_id, shipping_profile_id.
list_all_etsy_shipping_profile_upgrades
List shipping profile upgrades assigned to a specific Etsy shipping profile. Returns each upgrade's upgrade_id, upgrade_name, type, price, secondary_price, shipping_carrier_id, mail_class, min_delivery_days, and max_delivery_days. Required: shop_id, shipping_profile_id.
create_a_etsy_shipping_profile_upgrade
Create an Etsy shipping profile upgrade for an alternate carrier or faster delivery. Returns: shipping_profile_id, upgrade_id, upgrade_name, type, rank, language, price, secondary_price, shipping_carrier_id, mail_class, min_delivery_days, max_delivery_days. Either (shipping_carrier_id + mail_class) or…. Required: shop_id, shipping_profile_id.
update_a_etsy_shipping_profile_upgrade_by_id
Update an Etsy shipping profile upgrade; any listings using the shipping profile are also updated. Returns: shipping_profile_id, upgrade_id, upgrade_name, type, rank, language, price, secondary_price, shipping_carrier_id, mail_class, min_delivery_days, max_delivery_days. Required: id, shop_id, shipping_profile_id.
delete_a_etsy_shipping_profile_upgrade_by_id
Delete an Etsy shipping profile upgrade and remove the upgrade option from every listing using the associated shipping profile. Returns an empty 204 response on success. Required: id, shop_id, shipping_profile_id.
create_a_etsy_application_scope
Check the OAuth scopes of a provided token in Etsy. Returns the scopes granted to the token as a list of scope strings.
list_all_etsy_shop_transactions
List Etsy shop transactions for a given shop. Returns each transaction record with transaction_id, title, description, seller_user_id, buyer_user_id, create_timestamp, created_timestamp, paid_timestamp, shipped_timestamp, quantity, listing_image_id, receipt_id, is_digital, file_data, listing_id, transaction_type, product_id, sku, price (amount/divisor/currency_code), shipping_cost, variations,…. Required: shop_id.
get_single_etsy_shop_transaction_by_id
Get a single Etsy shop transaction by id. Returns: transaction_id, title, description, seller_user_id, buyer_user_id, create_timestamp, created_timestamp, paid_timestamp, shipped_timestamp, quantity, listing_image_id, receipt_id, is_digital, file_data, listing_id, transaction_type, product_id, sku, price, shipping_cost, variations, product_data, shipping_profile_id, min_processing_days,…. Required: id, shop_id.
get_single_etsy_user_address_by_id
Get a single Etsy user address by id. Returns: user_address_id, user_id, name, first_line, second_line, city, state, zip, iso_country_code, country_name, is_default_shipping_address. Required: id.
delete_a_etsy_user_address_by_id
Delete an Etsy user address by id. Returns an empty 204 response on success. Required: id.
list_all_etsy_user_addresses
List Etsy user addresses for the authenticated user. Returns: user_address_id, user_id, name, first_line, second_line, city, state, zip, iso_country_code, country_name, is_default_shipping_address.
get_single_etsy_application_user_by_id
Get a single Etsy user profile by user ID. Returns: user_id, primary_email, first_name, last_name, image_url_75x75. Access is limited to the authenticated user or linked buyers; primary_email requires additional app-based permissions granted case-by-case. Required: id.
list_all_etsy_application_users
Get basic info for the authenticated Etsy user making the request. Returns: user_id, shop_id.
list_all_etsy_seller_taxonomy_node_properties
List product properties, with applicable scales and possible values, supported for a specific Etsy seller taxonomy node. Returns: property_id, name, display_name, scales, is_required, supports_attributes, supports_variations, is_multivalued, max_values_allowed, possible_values, selected_values. Required: taxonomy_id.
list_all_etsy_shop_active_listings
List all active Etsy listings in a specific shop, paginated by listing creation date. Returns each listing with listing_id, title, description, state, price, quantity, and additional listing attributes. Required: shop_id.
Why Truto
Why use Truto’s MCP server for Etsy
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ 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.
How It Works
From zero to integrated
Go live with Etsy in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Etsy account
Use Truto’s frontend SDK to connect your customer’s Etsy 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 Etsy
Truto’s Proxy API is a 1-to-1 mapping of the Etsy API. You call us, we call Etsy, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Etsy’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Etsy on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work for Etsy through Truto?
Etsy uses OAuth 2.0 with PKCE and scoped access tokens. Truto handles the full OAuth flow, token storage, and refresh so your end users just click 'Connect Etsy' and grant the scopes your integration needs.
Can we read SKU data from listings?
SKU fields on listing inventory are only exposed by Etsy when the calling application 'owns' the inventory — meaning it was the last app to update it. If another tool last modified the inventory, SKUs will be masked until your app writes to that listing.
How do we mark an order as shipped on Etsy?
Use the create receipt tracking operation with the receipt ID, tracking code, and carrier name. Etsy will mark the receipt as shipped and send the buyer a notification with the tracking details.
What's the best way to update stock levels in bulk?
Use the batch inventories list endpoint to fetch stock for up to 100 listings per call, and the bulk inventory update endpoint to write changes back. This is the recommended path for multi-channel sync to avoid per-listing rate limit pressure.
How do we handle Etsy's rate limits?
Etsy enforces per-app daily and per-second request quotas. Truto proxies requests transparently and surfaces standard rate limit responses, so you can implement backoff or queueing on your side while relying on batch and list endpoints to minimize call volume.
Can we pull financial data granular enough for accounting reconciliation?
Yes. The payment account ledger entry endpoints expose per-entry amounts, fee types, reference IDs, and running balances, and can be joined with shop payments and receipt payments to reconstruct each payout down to the fee level.
From the Blog
Etsy integration guides
Deep dives, architecture guides, and practical tutorials for building Etsy integrations.
Etsy
Get Etsy integrated into your app
Our team understands what it takes to make a Etsy integration successful. A short, crisp 30 minute call with folks who understand the problem.