---
title: Etsy API Integration on Truto
slug: etsy
category: E-Commerce
canonical: "https://truto.one/integrations/detail/etsy/"
---

# Etsy API Integration on Truto



**Category:** E-Commerce  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 105 tools for Etsy that AI agents can call directly.

- **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.
- **list_all_etsy_listings_actives** — <div class="wt-display-flex-xs wt-align-items-center wt-mt-xs-2 wt-mb-xs-3"><span class="wt-badge wt-badge--notificationPrimary wt-bg-slime-tint wt-mr-xs-2">General Release</span><a class="wt-text-link" href="https://github.com/etsy/open-api/discussions" target="_blank" rel="noopener noreferrer">Report bug</a></div><div class="wt-display-flex-xs wt-align-items-center wt-mt-xs-2 wt-mb-xs-3"><p class="wt-text-body-01 banner-text">This endpoint is ready for production use.</p></div>.
- **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.

## How it works

1. **Link your customer's Etsy account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Etsy.** The Proxy API is a 1-to-1 mapping of the Etsy API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.

## Related reading

- [Connect Etsy to ChatGPT: Manage Listings, Orders, and Inventory](https://truto.one/blog/connect-etsy-to-chatgpt-manage-listings-orders-and-inventory/) — Learn how to generate a secure Truto MCP server for Etsy, connect it to ChatGPT, and automate product listings, inventory, and order fulfillment workflows.
- [Connect Etsy to Claude: Sync Products, Shipping, and Shop Reviews](https://truto.one/blog/connect-etsy-to-claude-sync-products-shipping-and-shop-reviews/) — Learn how to dynamically generate a managed MCP server to give Claude secure, read-and-write access to the Etsy API for automating e-commerce operations.
- [Connect Etsy to AI Agents: Automate Listings, Orders and Fulfillment](https://truto.one/blog/connect-etsy-to-ai-agents-automate-listings-orders-and-fulfillment/) — Learn how to connect Etsy to AI Agents using Truto's /tools endpoint. Fetch tools, bind them via LangChain, and automate listings, orders, and fulfillment.
