@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Etsy Open API v3
@base https://openapi.etsy.com
@version 3.0.0
@auth ApiKey x-api-key in header | OAuth2
@endpoints 103
@hint download_for_search
@toc application(103)

@endpoint GET /v3/application/buyer-taxonomy/nodes
@returns(200) {count: int, results: [any]}
@errors {500}

@endpoint GET /v3/application/buyer-taxonomy/nodes/{taxonomy_id}/properties
@required {taxonomy_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/listings
@required {shop_id: int(int64)}
@optional {legacy: bool}
@returns(201) {listing_id: int(int64), user_id: int(int64), shop_id: int(int64), title: str, description: str, state: str, creation_timestamp: int, created_timestamp: int, ending_timestamp: int, original_creation_timestamp: int, last_modified_timestamp: int, updated_timestamp: int, state_timestamp: int?, quantity: int, shop_section_id: int(int64)?, featured_rank: int, url: str, num_favorers: int, non_taxable: bool, is_taxable: bool, is_customizable: bool, is_personalizable: bool, personalization_is_required: bool, personalization_char_count_max: int?, personalization_instructions: str?, listing_type: str, tags: [str], materials: [str], shipping_profile_id: int(int64)?, return_policy_id: int(int64)?, processing_min: int?, processing_max: int?, who_made: str?, when_made: str?, is_supply: bool?, item_weight: num(float)?, item_weight_unit: str?, item_length: num(float)?, item_width: num(float)?, item_height: num(float)?, item_dimensions_unit: str?, is_private: bool, style: [str], file_data: str?, has_variations: bool, should_auto_renew: bool, language: str?, price: any, converted_price: any?, taxonomy_id: int?, readiness_state_id: int(int64)?, suggested_title: str?}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/listings
@required {shop_id: int(int64)}
@optional {state: str(active/inactive/sold_out/draft/expired)=active, limit: int=25, offset: int=0, sort_on: str(created/price/updated/score)=created, sort_order: str(asc/ascending/desc/descending/up/down)=desc, includes: [str]=null, legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 500}

@endpoint DELETE /v3/application/listings/{listing_id}
@required {listing_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /v3/application/listings/{listing_id}
@required {listing_id: int(int64)}
@optional {includes: [str]=null, language: str=null, legacy: bool, allow_suggested_title: bool}
@returns(200) {listing_id: int(int64), user_id: int(int64), shop_id: int(int64), title: str, description: str, state: str, creation_timestamp: int, created_timestamp: int, ending_timestamp: int, original_creation_timestamp: int, last_modified_timestamp: int, updated_timestamp: int, state_timestamp: int?, quantity: int, shop_section_id: int(int64)?, featured_rank: int, url: str, num_favorers: int, non_taxable: bool, is_taxable: bool, is_customizable: bool, is_personalizable: bool, personalization_is_required: bool, personalization_char_count_max: int?, personalization_instructions: str?, listing_type: str, tags: [str], materials: [str], shipping_profile_id: int(int64)?, return_policy_id: int(int64)?, processing_min: int?, processing_max: int?, who_made: str?, when_made: str?, is_supply: bool?, item_weight: num(float)?, item_weight_unit: str?, item_length: num(float)?, item_width: num(float)?, item_height: num(float)?, item_dimensions_unit: str?, is_private: bool, style: [str], file_data: str?, has_variations: bool, should_auto_renew: bool, language: str?, price: any, converted_price: any?, taxonomy_id: int?, readiness_state_id: int(int64)?, suggested_title: str?, shipping_profile: any?, user: any?, shop: any?, images: [any], videos: [any], inventory: any?, production_partners: [any], skus: [str], translations: any?, views: int, personalization: any?, buyer_price: any?}
@errors {400, 404, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/listings/{listing_id}/files/{listing_file_id}
@required {shop_id: int(int64), listing_id: int(int64), listing_file_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /v3/application/shops/{shop_id}/listings/{listing_id}/files/{listing_file_id}
@required {shop_id: int(int64), listing_id: int(int64), listing_file_id: int(int64)}
@returns(200) {listing_file_id: int(int64), listing_id: int(int64), rank: int, filename: str, filesize: str, size_bytes: int, filetype: str, create_timestamp: int, created_timestamp: int}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/listings/{listing_id}/files
@required {listing_id: int(int64), shop_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/listings/{listing_id}/files
@required {shop_id: int(int64), listing_id: int(int64)}
@returns(201) {listing_file_id: int(int64), listing_id: int(int64), rank: int, filename: str, filesize: str, size_bytes: int, filetype: str, create_timestamp: int, created_timestamp: int}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/listings/active
@optional {limit: int=25, offset: int=0, keywords: str=null, sort_on: str(created/price/updated/score)=created, sort_order: str(asc/ascending/desc/descending/up/down)=desc, min_price: num(float)=null, max_price: num(float)=null, taxonomy_id: int(int64)=null, shop_location: str=null, legacy: bool, is_safe: bool, currency: str=null, buyer_country: str(ISO 3166-1 alpha-2)=null}
@returns(200) {count: int, results: [any]}
@errors {404, 500}

@endpoint GET /v3/application/shops/{shop_id}/listings/active
@required {shop_id: int(int64)}
@optional {limit: int=25, sort_on: str(created/price/updated/score)=created, sort_order: str(asc/ascending/desc/descending/up/down)=desc, offset: int=0, keywords: str=null, legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 404, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/listings/{listing_id}/images/{listing_image_id}
@required {shop_id: int(int64), listing_id: int(int64), listing_image_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/listings/{listing_id}/images/{listing_image_id}
@required {listing_id: int(int64), listing_image_id: int(int64)}
@returns(200) {listing_id: int(int64), listing_image_id: int(int64), hex_code: str?, red: int?, green: int?, blue: int?, hue: int?, saturation: int?, brightness: int?, is_black_and_white: bool?, creation_tsz: int, created_timestamp: int, rank: int, url_75x75: str, url_170x135: str, url_570xN: str, url_fullxfull: str, full_height: int?, full_width: int?, alt_text: str?}
@errors {400, 403, 404, 500}

@endpoint GET /v3/application/listings/{listing_id}/images
@required {listing_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 403, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/listings/{listing_id}/images
@required {shop_id: int(int64), listing_id: int(int64)}
@returns(201) {listing_id: int(int64), listing_image_id: int(int64), hex_code: str?, red: int?, green: int?, blue: int?, hue: int?, saturation: int?, brightness: int?, is_black_and_white: bool?, creation_tsz: int, created_timestamp: int, rank: int, url_75x75: str, url_170x135: str, url_570xN: str, url_fullxfull: str, full_height: int?, full_width: int?, alt_text: str?}
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /v3/application/listings/{listing_id}/inventory
@required {listing_id: int(int64)}
@optional {show_deleted: bool, includes: str, legacy: bool}
@returns(200) {products: [any], price_on_property: [int], quantity_on_property: [int], sku_on_property: [int], readiness_state_on_property: [int(int64)], listing: any}
@errors {400, 401, 404, 422, 500}

@endpoint PUT /v3/application/listings/{listing_id}/inventory
@required {listing_id: int(int64), products: [map{sku: str, property_values: [map], offerings!: [map]}]}
@optional {legacy: bool, price_on_property: [int], quantity_on_property: [int], sku_on_property: [int], readiness_state_on_property: [int(int64)]}
@returns(200) {products: [any], price_on_property: [int], quantity_on_property: [int], sku_on_property: [int], readiness_state_on_property: [int(int64)]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/listings/{listing_id}/inventory/products/{product_id}
@required {listing_id: int(int64), product_id: int(int64)}
@optional {legacy: bool}
@returns(200) {product_id: int(int64), sku: str, is_deleted: bool, offerings: [any], property_values: [any]}
@errors {400, 401, 404, 500}

@endpoint GET /v3/application/listings/{listing_id}/products/{product_id}/offerings/{product_offering_id}
@required {listing_id: int(int64), product_id: int(int64), product_offering_id: int(int64)}
@optional {legacy: bool}
@returns(200) {offering_id: int(int64), quantity: int, is_enabled: bool, is_deleted: bool, price: any, readiness_state_id: int(int64)?}
@errors {400, 404, 500}

@endpoint GET /v3/application/listings/batch
@required {listing_ids: [int(int64)]}
@optional {includes: [str]=null, legacy: bool, currency: str=null, buyer_country: str(ISO 3166-1 alpha-2)=null}
@returns(200) {count: int, results: [any]}
@errors {400, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/listings/featured
@required {shop_id: int(int64)}
@optional {limit: int=25, offset: int=0, legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 403, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/listings/{listing_id}/personalization
@required {shop_id: int(int64), listing_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/listings/{listing_id}/personalization
@required {shop_id: int(int64), listing_id: int(int64), personalization_questions: [map{question_id: int(int64), question_text!: str, instructions: str, question_type!: str, required!: bool, max_allowed_files: int, max_allowed_characters: int, options: [map]}]}
@optional {supports_multiple_personalization_questions: bool}
@returns(201) {personalization_questions: [map]}
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /v3/application/listings/{listing_id}/personalization
@required {listing_id: int(int64)}
@returns(200) {personalization_questions: [map]}
@errors {400, 403, 404, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/listings/{listing_id}/properties/{property_id}
@required {shop_id: int(int64), listing_id: int(int64), property_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/listings/{listing_id}/properties/{property_id}
@required {shop_id: int(int64), listing_id: int(int64), property_id: int(int64)}
@returns(200) {property_id: int(int64), property_name: str?, scale_id: int(int64)?, scale_name: str?, value_ids: [int(int64)], values: [str]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/listings/{listing_id}/properties/{property_id}
@required {listing_id: int(int64), property_id: int(int64)}
@returns(200) {property_id: int(int64), property_name: str?, scale_id: int(int64)?, scale_name: str?, value_ids: [int(int64)], values: [str]}
@errors {400, 404, 500, 501}

@endpoint GET /v3/application/shops/{shop_id}/listings/{listing_id}/properties
@required {shop_id: int(int64), listing_id: int(int64)}
@returns(200) {count: int, results: [map]}
@errors {400, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/listings/{listing_id}/transactions
@required {shop_id: int(int64), listing_id: int(int64)}
@optional {limit: int=25, offset: int=0, legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/listings/{listing_id}/translations/{language}
@required {shop_id: int(int64), listing_id: int(int64), language: str}
@returns(200) {listing_id: int(int64), language: str, title: str?, description: str?, tags: [str]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/listings/{listing_id}/translations/{language}
@required {shop_id: int(int64), listing_id: int(int64), language: str}
@returns(200) {listing_id: int(int64), language: str, title: str?, description: str?, tags: [str]}
@errors {400, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/listings/{listing_id}/translations/{language}
@required {shop_id: int(int64), listing_id: int(int64), language: str}
@returns(200) {listing_id: int(int64), language: str, title: str?, description: str?, tags: [str]}
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /v3/application/shops/{shop_id}/listings/{listing_id}
@required {shop_id: int(int64), listing_id: int(int64)}
@optional {legacy: bool}
@returns(200) {listing_id: int(int64), user_id: int(int64), shop_id: int(int64), title: str, description: str, state: str, creation_timestamp: int, created_timestamp: int, ending_timestamp: int, original_creation_timestamp: int, last_modified_timestamp: int, updated_timestamp: int, state_timestamp: int?, quantity: int, shop_section_id: int(int64)?, featured_rank: int, url: str, num_favorers: int, non_taxable: bool, is_taxable: bool, is_customizable: bool, is_personalizable: bool, personalization_is_required: bool, personalization_char_count_max: int?, personalization_instructions: str?, listing_type: str, tags: [str], materials: [str], shipping_profile_id: int(int64)?, return_policy_id: int(int64)?, processing_min: int?, processing_max: int?, who_made: str?, when_made: str?, is_supply: bool?, item_weight: num(float)?, item_weight_unit: str?, item_length: num(float)?, item_width: num(float)?, item_height: num(float)?, item_dimensions_unit: str?, is_private: bool, style: [str], file_data: str?, has_variations: bool, should_auto_renew: bool, language: str?, price: any, converted_price: any?, taxonomy_id: int?, readiness_state_id: int(int64)?, suggested_title: str?}
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /v3/application/shops/{shop_id}/listings/{listing_id}/variation-images
@required {shop_id: int(int64), listing_id: int(int64)}
@returns(200) {count: int, results: [map]}
@errors {400, 403, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/listings/{listing_id}/variation-images
@required {shop_id: int(int64), listing_id: int(int64), variation_images: [map{property_id!: int(int64), value_id!: int(int64), image_id!: int(int64)}]}
@returns(200) {count: int, results: [map]}
@errors {400, 401, 403, 404, 409, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/listings/{listing_id}/videos/{video_id}
@required {shop_id: int(int64), listing_id: int(int64), video_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/listings/{listing_id}/videos/{video_id}
@required {video_id: int(int64), listing_id: int(int64)}
@returns(200) {video_id: int(int64), height: int, width: int, thumbnail_url: str, video_url: str, video_state: str}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/listings/{listing_id}/videos
@required {listing_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 403, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/listings/{listing_id}/videos
@required {shop_id: int(int64), listing_id: int(int64)}
@returns(201) {video_id: int(int64), height: int, width: int, thumbnail_url: str, video_url: str, video_state: str}
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /v3/application/shops/{shop_id}/payment-account/ledger-entries/{ledger_entry_id}
@required {shop_id: int(int64), ledger_entry_id: int(int64)}
@returns(200) {entry_id: int(int64), ledger_id: int(int64), sequence_number: int, amount: int, currency: str, description: str, balance: int, create_date: int, created_timestamp: int, ledger_type: str, reference_type: str, reference_id: str?, parent_entry_id: int, payment_adjustments: [any]}
@errors {400, 401, 403, 500}

@endpoint GET /v3/application/shops/{shop_id}/payment-account/ledger-entries
@required {shop_id: int(int64), min_created: int, max_created: int}
@optional {limit: int=25, offset: int=0}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 500}

@endpoint GET /v3/application/shops/{shop_id}/payment-account/ledger-entries/payments
@required {shop_id: int(int64), ledger_entry_ids: [int(int64)]}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 500}

@endpoint GET /v3/application/shops/{shop_id}/receipts/{receipt_id}/payments
@required {shop_id: int(int64), receipt_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/payments
@required {shop_id: int(int64), payment_ids: [int(int64)]}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/openapi-ping
@returns(200) {application_id: int(int64)}
@errors {401, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/receipts/{receipt_id}
@required {shop_id: int(int64), receipt_id: int(int64)}
@optional {legacy: bool}
@returns(200) {receipt_id: int(int64), receipt_type: int, seller_user_id: int(int64), seller_email: str(email)?, buyer_user_id: int(int64), buyer_email: str?, name: str, first_line: str?, second_line: str?, city: str?, state: str?, zip: str?, status: str, formatted_address: str?, country_iso: str?, payment_method: str, payment_email: str?, message_from_seller: str?, message_from_buyer: str?, message_from_payment: str?, is_paid: bool, is_shipped: bool, create_timestamp: int, created_timestamp: int, update_timestamp: int, updated_timestamp: int, is_gift: bool, gift_message: str, gift_sender: str, grandtotal: any, subtotal: any, total_price: any, total_shipping_cost: any, total_tax_cost: any, total_vat_cost: any, discount_amt: any, gift_wrap_price: any, shipments: [any], transactions: [any], refunds: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/receipts/{receipt_id}
@required {shop_id: int(int64), receipt_id: int(int64)}
@optional {legacy: bool}
@returns(200) {receipt_id: int(int64), receipt_type: int, seller_user_id: int(int64), seller_email: str(email)?, buyer_user_id: int(int64), buyer_email: str?, name: str, first_line: str?, second_line: str?, city: str?, state: str?, zip: str?, status: str, formatted_address: str?, country_iso: str?, payment_method: str, payment_email: str?, message_from_seller: str?, message_from_buyer: str?, message_from_payment: str?, is_paid: bool, is_shipped: bool, create_timestamp: int, created_timestamp: int, update_timestamp: int, updated_timestamp: int, is_gift: bool, gift_message: str, gift_sender: str, grandtotal: any, subtotal: any, total_price: any, total_shipping_cost: any, total_tax_cost: any, total_vat_cost: any, discount_amt: any, gift_wrap_price: any, shipments: [any], transactions: [any], refunds: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/receipts
@required {shop_id: int(int64)}
@optional {min_created: int=null, max_created: int=null, min_last_modified: int=null, max_last_modified: int=null, limit: int=25, offset: int=0, sort_on: str(created/updated/receipt_id)=created, sort_order: str(asc/ascending/desc/descending/up/down)=desc, was_paid: bool, was_shipped: bool, was_delivered: bool, was_canceled: bool, legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/receipts/{receipt_id}/listings
@required {receipt_id: int(int64), shop_id: int(int64)}
@optional {limit: int=25, offset: int=0, legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/receipts/{receipt_id}/tracking
@required {shop_id: int(int64), receipt_id: int(int64)}
@optional {legacy: bool}
@returns(200) {receipt_id: int(int64), receipt_type: int, seller_user_id: int(int64), seller_email: str(email)?, buyer_user_id: int(int64), buyer_email: str?, name: str, first_line: str?, second_line: str?, city: str?, state: str?, zip: str?, status: str, formatted_address: str?, country_iso: str?, payment_method: str, payment_email: str?, message_from_seller: str?, message_from_buyer: str?, message_from_payment: str?, is_paid: bool, is_shipped: bool, create_timestamp: int, created_timestamp: int, update_timestamp: int, updated_timestamp: int, is_gift: bool, gift_message: str, gift_sender: str, grandtotal: any, subtotal: any, total_price: any, total_shipping_cost: any, total_tax_cost: any, total_vat_cost: any, discount_amt: any, gift_wrap_price: any, shipments: [any], transactions: [any], refunds: [any]}
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /v3/application/shops/{shop_id}/receipts/{receipt_id}/transactions
@required {shop_id: int(int64), receipt_id: int(int64)}
@optional {legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/listings/{listing_id}/reviews
@required {listing_id: int(int64)}
@optional {limit: int=25, offset: int=0, min_created: int, max_created: int}
@returns(200) {count: int, results: [any]}
@errors {400, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/reviews
@required {shop_id: int(int64)}
@optional {limit: int=25, offset: int=0, min_created: int, max_created: int}
@returns(200) {count: int, results: [any]}
@errors {400, 404, 500}

@endpoint GET /v3/application/seller-taxonomy/nodes
@returns(200) {count: int, results: [any]}
@errors {500, 503}

@endpoint GET /v3/application/seller-taxonomy/nodes/{taxonomy_id}/properties
@required {taxonomy_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 404, 500}

@endpoint GET /v3/application/shipping-carriers
@required {origin_country_iso: str(ISO 3166-1 alpha-2)}
@returns(200) {count: int, results: [map]}
@errors {400, 500}

@endpoint GET /v3/application/shops/{shop_id}
@required {shop_id: int(int64)}
@returns(200) {shop_id: int(int64), user_id: int(int64), shop_name: str, create_date: int, created_timestamp: int, title: str?, announcement: str?, currency_code: str, is_vacation: bool, vacation_message: str?, sale_message: str?, digital_sale_message: str?, update_date: int, updated_timestamp: int, listing_active_count: int, digital_listing_count: int, login_name: str, accepts_custom_requests: bool, policy_welcome: str?, policy_payment: str?, policy_shipping: str?, policy_refunds: str?, policy_additional: str?, policy_seller_info: str?, policy_update_date: int, policy_has_private_receipt_info: bool, has_unstructured_policies: bool, policy_privacy: str?, vacation_autoreply: str?, url: str, image_url_760x100: str?, num_favorers: int, languages: [str], icon_url_fullxfull: str?, is_using_structured_policies: bool, has_onboarded_structured_policies: bool, include_dispute_form_link: bool, is_direct_checkout_onboarded: bool, is_etsy_payments_onboarded: bool, is_calculated_eligible: bool, is_opted_in_to_buyer_promise: bool, is_shop_us_based: bool, transaction_sold_count: int, shipping_from_country_iso: str(ISO 3166-1 alpha-2)?, shop_location_country_iso: str(ISO 3166-1 alpha-2)?, review_count: int?, review_average: num(float)?}
@errors {400, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}
@required {shop_id: int(int64)}
@returns(200) {shop_id: int(int64), user_id: int(int64), shop_name: str, create_date: int, created_timestamp: int, title: str?, announcement: str?, currency_code: str, is_vacation: bool, vacation_message: str?, sale_message: str?, digital_sale_message: str?, update_date: int, updated_timestamp: int, listing_active_count: int, digital_listing_count: int, login_name: str, accepts_custom_requests: bool, policy_welcome: str?, policy_payment: str?, policy_shipping: str?, policy_refunds: str?, policy_additional: str?, policy_seller_info: str?, policy_update_date: int, policy_has_private_receipt_info: bool, has_unstructured_policies: bool, policy_privacy: str?, vacation_autoreply: str?, url: str, image_url_760x100: str?, num_favorers: int, languages: [str], icon_url_fullxfull: str?, is_using_structured_policies: bool, has_onboarded_structured_policies: bool, include_dispute_form_link: bool, is_direct_checkout_onboarded: bool, is_etsy_payments_onboarded: bool, is_calculated_eligible: bool, is_opted_in_to_buyer_promise: bool, is_shop_us_based: bool, transaction_sold_count: int, shipping_from_country_iso: str(ISO 3166-1 alpha-2)?, shop_location_country_iso: str(ISO 3166-1 alpha-2)?, review_count: int?, review_average: num(float)?}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/users/{user_id}/shops
@required {user_id: int(int64)}
@returns(200) {shop_id: int(int64), user_id: int(int64), shop_name: str, create_date: int, created_timestamp: int, title: str?, announcement: str?, currency_code: str, is_vacation: bool, vacation_message: str?, sale_message: str?, digital_sale_message: str?, update_date: int, updated_timestamp: int, listing_active_count: int, digital_listing_count: int, login_name: str, accepts_custom_requests: bool, policy_welcome: str?, policy_payment: str?, policy_shipping: str?, policy_refunds: str?, policy_additional: str?, policy_seller_info: str?, policy_update_date: int, policy_has_private_receipt_info: bool, has_unstructured_policies: bool, policy_privacy: str?, vacation_autoreply: str?, url: str, image_url_760x100: str?, num_favorers: int, languages: [str], icon_url_fullxfull: str?, is_using_structured_policies: bool, has_onboarded_structured_policies: bool, include_dispute_form_link: bool, is_direct_checkout_onboarded: bool, is_etsy_payments_onboarded: bool, is_calculated_eligible: bool, is_opted_in_to_buyer_promise: bool, is_shop_us_based: bool, transaction_sold_count: int, shipping_from_country_iso: str(ISO 3166-1 alpha-2)?, shop_location_country_iso: str(ISO 3166-1 alpha-2)?, review_count: int?, review_average: num(float)?}
@errors {400, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/holiday-preferences
@required {shop_id: int(int64)}
@returns(200)
@errors {400, 403, 500}

@endpoint PUT /v3/application/shops/{shop_id}/holiday-preferences/{holiday_id}
@required {shop_id: int(int64), holiday_id: int(1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51/52/53/54/55/56/57/58/59/60/61/62/63/64/65/66/67/68/69/70/71/72/73/74/75/76/77/78/79/80/81/82/83/84/85/86/87/88/89/90/91/92/93/94/95/96/97/98/99/100/101/102/103/104/105)}
@returns(200) {shop_id: int(int64), holiday_id: int, country_iso: str(ISO 3166-1 alpha-2), is_working: bool, holiday_name: str}
@errors {400, 403, 500}

@endpoint GET /v3/application/shops
@required {shop_name: str}
@optional {limit: int=25, offset: int=0}
@returns(200) {count: int, results: [any]}
@errors {500}

@endpoint POST /v3/application/shops/{shop_id}/policies/return/consolidate
@required {shop_id: int(int64)}
@returns(200) {return_policy_id: int(int64), shop_id: int(int64), accepts_returns: bool, accepts_exchanges: bool, return_deadline: int?}
@errors {400, 401, 403, 404, 500}

@endpoint POST /v3/application/shops/{shop_id}/policies/return
@required {shop_id: int(int64)}
@returns(200) {return_policy_id: int(int64), shop_id: int(int64), accepts_returns: bool, accepts_exchanges: bool, return_deadline: int?}
@errors {400, 401, 403, 500}

@endpoint GET /v3/application/shops/{shop_id}/policies/return
@required {shop_id: int(int64)}
@returns(200) {count: int, results: [map]}
@errors {400, 401, 404, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/policies/return/{return_policy_id}
@required {shop_id: int(int64), return_policy_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 500}

@endpoint GET /v3/application/shops/{shop_id}/policies/return/{return_policy_id}
@required {shop_id: int(int64), return_policy_id: int(int64)}
@returns(200) {return_policy_id: int(int64), shop_id: int(int64), accepts_returns: bool, accepts_exchanges: bool, return_deadline: int?}
@errors {400, 401, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/policies/return/{return_policy_id}
@required {shop_id: int(int64), return_policy_id: int(int64)}
@returns(200) {return_policy_id: int(int64), shop_id: int(int64), accepts_returns: bool, accepts_exchanges: bool, return_deadline: int?}
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /v3/application/shops/{shop_id}/policies/return/{return_policy_id}/listings
@required {return_policy_id: int(int64), shop_id: int(int64)}
@optional {legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/production-partners
@required {shop_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 403, 500}

@endpoint POST /v3/application/shops/{shop_id}/readiness-state-definitions
@required {shop_id: int(int64)}
@returns(201) {shop_id: int(int64), readiness_state_id: int(int64), readiness_state: str, min_processing_days: int, max_processing_days: int, processing_days_display_label: str}
@errors {400, 401, 409, 500}

@endpoint GET /v3/application/shops/{shop_id}/readiness-state-definitions
@required {shop_id: int(int64)}
@optional {limit: int=25, offset: int=0}
@returns(200) {count: int, results: [map]}
@errors {400, 401, 404, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/readiness-state-definitions/{readiness_state_definition_id}
@required {shop_id: int(int64), readiness_state_definition_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/readiness-state-definitions/{readiness_state_definition_id}
@required {shop_id: int(int64), readiness_state_definition_id: int(int64)}
@returns(200) {shop_id: int(int64), readiness_state_id: int(int64), readiness_state: str, min_processing_days: int, max_processing_days: int, processing_days_display_label: str}
@errors {400, 401, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/readiness-state-definitions/{readiness_state_definition_id}
@required {shop_id: int(int64), readiness_state_definition_id: int(int64)}
@returns(200) {shop_id: int(int64), readiness_state_id: int(int64), readiness_state: str, min_processing_days: int, max_processing_days: int, processing_days_display_label: str}
@errors {400, 401, 404, 409, 500}

@endpoint POST /v3/application/shops/{shop_id}/sections
@required {shop_id: int(int64)}
@returns(200) {shop_section_id: int(int64), title: str, rank: int, user_id: int(int64), active_listing_count: int}
@errors {400, 401, 403, 500, 503}

@endpoint GET /v3/application/shops/{shop_id}/sections
@required {shop_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 404, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/sections/{shop_section_id}
@required {shop_id: int(int64), shop_section_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 500, 503}

@endpoint GET /v3/application/shops/{shop_id}/sections/{shop_section_id}
@required {shop_id: int(int64), shop_section_id: int(int64)}
@returns(200) {shop_section_id: int(int64), title: str, rank: int, user_id: int(int64), active_listing_count: int}
@errors {400, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/sections/{shop_section_id}
@required {shop_id: int(int64), shop_section_id: int(int64)}
@returns(200) {shop_section_id: int(int64), title: str, rank: int, user_id: int(int64), active_listing_count: int}
@errors {400, 401, 403, 500, 503}

@endpoint GET /v3/application/shops/{shop_id}/shop-sections/listings
@required {shop_id: int(int64), shop_section_ids: [int(int64)]}
@optional {limit: int=25, offset: int=0, sort_on: str(created/price/updated/score)=created, sort_order: str(asc/ascending/desc/descending/up/down)=desc, legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {400, 500}

@endpoint POST /v3/application/shops/{shop_id}/shipping-profiles
@required {shop_id: int(int64)}
@returns(200) {shipping_profile_id: int(int64), title: str?, user_id: int(int64), origin_country_iso: str(ISO 3166-1 alpha-2), is_deleted: bool, shipping_profile_destinations: [any], shipping_profile_upgrades: [any], origin_postal_code: str?, profile_type: str, domestic_handling_fee: num(float), international_handling_fee: num(float)}
@errors {400, 401, 403, 500}

@endpoint GET /v3/application/shops/{shop_id}/shipping-profiles
@required {shop_id: int(int64)}
@returns(200) {count: int, results: [map]}
@errors {400, 403, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}
@required {shop_id: int(int64), shipping_profile_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}
@required {shop_id: int(int64), shipping_profile_id: int(int64)}
@returns(200) {shipping_profile_id: int(int64), title: str?, user_id: int(int64), origin_country_iso: str(ISO 3166-1 alpha-2), is_deleted: bool, shipping_profile_destinations: [any], shipping_profile_upgrades: [any], origin_postal_code: str?, profile_type: str, domestic_handling_fee: num(float), international_handling_fee: num(float)}
@errors {400, 401, 403, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}
@required {shop_id: int(int64), shipping_profile_id: int(int64)}
@returns(200) {shipping_profile_id: int(int64), title: str?, user_id: int(int64), origin_country_iso: str(ISO 3166-1 alpha-2), is_deleted: bool, shipping_profile_destinations: [any], shipping_profile_upgrades: [any], origin_postal_code: str?, profile_type: str, domestic_handling_fee: num(float), international_handling_fee: num(float)}
@errors {400, 401, 403, 404, 500, 503}

@endpoint POST /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/destinations
@required {shop_id: int(int64), shipping_profile_id: int(int64)}
@returns(201) {shipping_profile_destination_id: int(int64), shipping_profile_id: int(int64), origin_country_iso: str(ISO 3166-1 alpha-2), destination_country_iso: str, destination_region: str, primary_cost: any, secondary_cost: any, shipping_carrier_id: int?, mail_class: str?, min_delivery_days: int?, max_delivery_days: int?}
@errors {400, 401, 403, 500}

@endpoint GET /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/destinations
@required {shop_id: int(int64), shipping_profile_id: int(int64)}
@optional {limit: int=25, offset: int=0}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/destinations/{shipping_profile_destination_id}
@required {shop_id: int(int64), shipping_profile_id: int(int64), shipping_profile_destination_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/destinations/{shipping_profile_destination_id}
@required {shop_id: int(int64), shipping_profile_id: int(int64), shipping_profile_destination_id: int(int64)}
@returns(200) {shipping_profile_destination_id: int(int64), shipping_profile_id: int(int64), origin_country_iso: str(ISO 3166-1 alpha-2), destination_country_iso: str, destination_region: str, primary_cost: any, secondary_cost: any, shipping_carrier_id: int?, mail_class: str?, min_delivery_days: int?, max_delivery_days: int?}
@errors {400, 401, 403, 404, 500, 503}

@endpoint POST /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/upgrades
@required {shop_id: int(int64), shipping_profile_id: int(int64)}
@returns(200) {shipping_profile_id: int(int64), upgrade_id: int(int64), upgrade_name: str, type: int, rank: int, language: str, price: any, secondary_price: any, shipping_carrier_id: int?, mail_class: str?, min_delivery_days: int?, max_delivery_days: int?}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/upgrades
@required {shop_id: int(int64), shipping_profile_id: int(int64)}
@returns(200) {count: int, results: [any]}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/upgrades/{upgrade_id}
@required {shop_id: int(int64), shipping_profile_id: int(int64), upgrade_id: int(int64)}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /v3/application/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/upgrades/{upgrade_id}
@required {shop_id: int(int64), shipping_profile_id: int(int64), upgrade_id: int(int64)}
@returns(200) {shipping_profile_id: int(int64), upgrade_id: int(int64), upgrade_name: str, type: int, rank: int, language: str, price: any, secondary_price: any, shipping_carrier_id: int?, mail_class: str?, min_delivery_days: int?, max_delivery_days: int?}
@errors {400, 401, 403, 404, 500, 503}

@endpoint POST /v3/application/scopes
@returns(200)
@errors {401, 500}

@endpoint GET /v3/application/shops/{shop_id}/transactions/{transaction_id}
@required {shop_id: int(int64), transaction_id: int(int64)}
@returns(200) {transaction_id: int(int64), title: str?, description: str?, seller_user_id: int(int64), buyer_user_id: int(int64), create_timestamp: int, created_timestamp: int, paid_timestamp: int?, shipped_timestamp: int?, quantity: int, listing_image_id: int(int64)?, receipt_id: int(int64), is_digital: bool, file_data: str, listing_id: int?, transaction_type: str, product_id: int(int64)?, sku: str?, price: any, shipping_cost: any, variations: [any], product_data: [any], shipping_profile_id: int(int64)?, min_processing_days: int?, max_processing_days: int?, shipping_method: str?, shipping_upgrade: str?, expected_ship_date: int?, buyer_coupon: num(float), shop_coupon: num(float)}
@errors {400, 401, 403, 404, 500}

@endpoint GET /v3/application/shops/{shop_id}/transactions
@required {shop_id: int(int64)}
@optional {limit: int=25, offset: int=0, legacy: bool}
@returns(200) {count: int, results: [any]}
@errors {401, 403, 404, 500}

@endpoint DELETE /v3/application/user/addresses/{user_address_id}
@required {user_address_id: int(int64)}
@returns(204)
@errors {400, 401, 500}

@endpoint GET /v3/application/user/addresses/{user_address_id}
@required {user_address_id: int(int64)}
@returns(200) {user_address_id: int(int64), user_id: int(int64), name: str, first_line: str, second_line: str?, city: str, state: str?, zip: str?, iso_country_code: str?, country_name: str?, is_default_shipping_address: bool}
@errors {400, 401, 404, 500}

@endpoint GET /v3/application/user/addresses
@optional {limit: int=25, offset: int=0}
@returns(200) {count: int, results: [any]}
@errors {401, 404, 500}

@endpoint GET /v3/application/users/{user_id}
@required {user_id: int(int64)}
@returns(200) {user_id: int(int64), primary_email: str(email)?, first_name: str?, last_name: str?, image_url_75x75: str?}
@errors {400, 401, 404, 500}

@endpoint GET /v3/application/users/me
@returns(200) {user_id: int(int64), shop_id: int(int64)}
@errors {400, 401, 404, 500}

@end
