{
  "name": "Shopee Open Platform Mock API",
  "version": "2.0",
  "status": "running",
  "base_path": "/api/v2",
  "documentation": "https://open.shopee.com/developer-guide/4",
  "swagger_ui": "/swagger",
  "reference_ui": "/docs",
  "openapi_spec": "/openapi.json",
  "mock_credentials": {
    "partner_id": 200001,
    "partner_key": "mock_partner_key_for_testing",
    "access_tokens": [
      "mock_access_token_001",
      "mock_access_token_002"
    ],
    "shop_ids": [
      100001,
      100002
    ],
    "merchant_id": 300001
  },
  "authentication": {
    "description": "Most endpoints require partner_id, timestamp, sign, and access_token as query parameters. Public endpoints only require partner_id and timestamp. Set strict_sign=1 to enable signature validation.",
    "required_query_params": [
      "partner_id",
      "timestamp",
      "sign",
      "access_token"
    ],
    "skip_auth_paths": [
      "/api/v2/auth/token/get",
      "/api/v2/auth/access_token/get",
      "/api/v2/public/get_access_token",
      "/api/v2/public/refresh_access_token",
      "/api/v2/shop/auth_partner",
      "/api/v2/utils/generate_sign"
    ]
  },
  "endpoints": {
    "auth": [
      {
        "method": "POST",
        "path": "/api/v2/auth/token/get",
        "description": "Exchange an authorization code for an access token and refresh token. Used after the shop owner authorizes your app.",
        "body_params": {
          "code": "string (required)",
          "shop_id": "number",
          "partner_id": "number (required)"
        },
        "response_fields": [
          "access_token",
          "refresh_token",
          "expire_in",
          "shop_id_list",
          "merchant_id_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/auth/access_token/get",
        "description": "Alternative endpoint to obtain an access token. Accepts code, shop_id, and partner_id in the request body.",
        "body_params": {
          "code": "string",
          "shop_id": "number",
          "partner_id": "number"
        },
        "response_fields": [
          "access_token",
          "refresh_token",
          "expire_in",
          "shop_id_list",
          "merchant_id_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop/auth_partner",
        "description": "Generate the authorization URL for shop owners to grant access to your app. In production, this redirects to Shopee login. Mock returns a direct auth code.",
        "query_params": {
          "partner_id": "number (required)",
          "redirect": "string (required)"
        },
        "response_fields": [
          "auth_url",
          "message",
          "mock_code"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/public/get_token_by_resend_code",
        "description": "auth get_token_by_resend_code",
        "response_fields": [
          "refresh_token",
          "access_token",
          "expire_in",
          "shop_id",
          "merchant_id_list",
          "shop_id_list",
          "supplier_id_list",
          "expired_at"
        ]
      }
    ],
    "shop": [
      {
        "method": "GET",
        "path": "/api/v2/shop/get_shop_info",
        "description": "Retrieve detailed information about a specific shop including name, region, status, logo, item limit, and authorization details.",
        "query_params": {
          "shop_id": "number (required)"
        },
        "response_fields": [
          "shop_id",
          "shop_name",
          "region",
          "status",
          "is_cb",
          "is_cnsc",
          "shop_description",
          "shop_logo",
          "item_limit",
          "auth_time",
          "expire_time"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop/get_profile",
        "description": "Get the public profile of a shop including its logo, description, and display name.",
        "query_params": {
          "shop_id": "number (required)"
        },
        "response_fields": [
          "shop_id",
          "shop_logo",
          "description",
          "shop_name"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop/update_profile",
        "description": "Update a shop's public profile. Pass any profile fields in the request body to update them.",
        "query_params": {
          "shop_id": "number (required)"
        },
        "body_params": {
          "shop_name": "string",
          "description": "string",
          "shop_logo": "string"
        },
        "response_fields": [
          "shop_id",
          "shop_logo",
          "description",
          "shop_name"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop/get_authorised_reseller_brand",
        "description": "Get authorised reseller brand",
        "query_params": {
          "page_no": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "is_authorised_reseller",
          "total_count",
          "more",
          "authorised_brand_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop/get_br_shop_onboarding_info",
        "description": "[For BR Shop Only] Use this API to get shop KYC registration and qualification information.",
        "response_fields": [
          "tax_id_type",
          "tax_id",
          "cpf_id",
          "cnpj_id",
          "name",
          "legal_entity_name",
          "birthday",
          "birthday_str",
          "state_registration",
          "billing_address",
          "onboarding_status",
          "submission_time",
          "nationality",
          "cnae_main",
          "cnae_secondary",
          "mei_check",
          "onboarding_passed"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop/get_shop_holiday_mode",
        "description": "Use this API to check whether a shop has enabled holiday mode.",
        "response_fields": [
          "holiday_mode_on",
          "holiday_mode_mtime",
          "debug_msg"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop/get_shop_notification",
        "description": "Get shop notification",
        "query_params": {
          "cursor": "number",
          "page_size": "number"
        },
        "response_fields": [
          "cursor",
          "data"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop/get_warehouse_detail",
        "description": "Get warehouse detail",
        "query_params": {
          "warehouse_type": "number"
        },
        "response_fields": [
          "warehouse_id",
          "warehouse_name",
          "warehouse_type",
          "location_id",
          "address_id",
          "region",
          "state",
          "city",
          "address",
          "zipcode",
          "district",
          "town",
          "state_code",
          "holiday_mode_state"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop/set_shop_holiday_mode",
        "description": "Use this API to enable or disable holiday mode for a shop.",
        "body_params": {
          "holiday_mode_on": "boolean (required)"
        },
        "response_fields": [
          "debug_msg"
        ]
      }
    ],
    "merchant": [
      {
        "method": "GET",
        "path": "/api/v2/merchant/get_merchant_info",
        "description": "Get detailed information about a merchant account, including associated shops and status.",
        "query_params": {
          "merchant_id": "number (required)"
        },
        "response_fields": [
          "merchant_id",
          "merchant_name",
          "region",
          "status",
          "is_published",
          "auth_time",
          "shop_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/merchant/get_shop_list_by_merchant",
        "description": "List all shops owned by a merchant. Supports pagination via page_no and page_size.",
        "query_params": {
          "merchant_id": "number (required)",
          "page_no": "number (default: 1)",
          "page_size": "number (default: 10)"
        },
        "response_fields": [
          "shop_list",
          "more",
          "is_cnsc"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/merchant/get_merchant_prepaid_account_list",
        "description": "Get seller's courier prepaid account list",
        "query_params": {
          "page_no": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "list",
          "more",
          "total"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/merchant/get_merchant_warehouse_list",
        "description": "Get merchant warehouse list with pagination",
        "body_params": {
          "cursor": "object (required)"
        },
        "response_fields": [
          "warehouse_list",
          "cursor",
          "total_count"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/merchant/get_merchant_warehouse_location_list",
        "description": "Get merchant warehouse location list"
      },
      {
        "method": "POST",
        "path": "/api/v2/merchant/get_warehouse_eligible_shop_list",
        "description": "Get eligible shop list by warehouse id",
        "body_params": {
          "warehouse_id": "number (required)",
          "warehouse_type": "number (required)",
          "cursor": "object (required)"
        },
        "response_fields": [
          "shop_list",
          "cursor"
        ]
      }
    ],
    "product": [
      {
        "method": "GET",
        "path": "/api/v2/product/get_item_list",
        "description": "List product items for a shop with filtering by status and update time range. Returns paginated results with item IDs and statuses.",
        "query_params": {
          "shop_id": "number (required)",
          "offset": "number (default: 0)",
          "page_size": "number (default: 20)",
          "item_status": "string (default: NORMAL)",
          "update_time_from": "number (unix timestamp)",
          "update_time_to": "number (unix timestamp)"
        },
        "response_fields": [
          "item",
          "total_count",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_item_base_info",
        "description": "Get full base information for one or more products by their item IDs. Returns complete product details including name, price, stock, images, and attributes.",
        "query_params": {
          "item_id_list": "string (required, comma-separated item IDs)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_item_extra_info",
        "description": "Get extra analytics information for products including sales count, views, likes, rating, and comment count.",
        "query_params": {
          "item_id_list": "string (required, comma-separated item IDs)"
        },
        "response_fields": [
          "item_list (with sale, views, likes, rating_star, comment_count)"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/add_item",
        "description": "Create a new product listing in a shop. Provide product details in the request body. Returns the newly created item_id.",
        "query_params": {
          "shop_id": "number (required)"
        },
        "body_params": {
          "item_name": "string",
          "description": "string",
          "original_price": "number",
          "weight": "number",
          "category_id": "number"
        },
        "response_fields": [
          "item_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/update_item",
        "description": "Update an existing product's details. Pass the item_id and any fields to update in the request body.",
        "body_params": {
          "item_id": "number (required)",
          "item_name": "string",
          "description": "string",
          "original_price": "number"
        },
        "response_fields": [
          "item_id",
          "update_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/delete_item",
        "description": "Delete a product listing by its item_id. This removes the item from the shop.",
        "body_params": {
          "item_id": "number (required)"
        },
        "response_fields": [
          "item_id",
          "success"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_model_list",
        "description": "Get all product models (variations/SKUs) for an item, including tier variation definitions and individual model details with pricing and stock.",
        "query_params": {
          "item_id": "number (required)"
        },
        "response_fields": [
          "tier_variation",
          "model"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/update_stock",
        "description": "Update stock quantities for one or more product models. Provide a list of model IDs and their new stock values.",
        "body_params": {
          "item_id": "number (required)",
          "stock_list": "array of { model_id, seller_stock }"
        },
        "response_fields": [
          "failure_list",
          "success_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/update_price",
        "description": "Update prices for one or more product models. Provide a list of model IDs and their new prices.",
        "body_params": {
          "item_id": "number (required)",
          "price_list": "array of { model_id, original_price }"
        },
        "response_fields": [
          "failure_list",
          "success_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_category",
        "description": "Retrieve the full list of Shopee product categories. Optionally filter by language.",
        "query_params": {
          "language": "string (default: en)"
        },
        "response_fields": [
          "category_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_attributes",
        "description": "Get the list of required and optional attributes for a specific product category. Used when creating or updating items.",
        "query_params": {
          "category_id": "number (required)"
        },
        "response_fields": [
          "attribute_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_brand_list",
        "description": "Get a paginated list of available brands for a category. Used when setting the brand for a product listing.",
        "query_params": {
          "category_id": "number",
          "offset": "number (default: 0)",
          "page_size": "number (default: 20)"
        },
        "response_fields": [
          "brand_list",
          "total_count",
          "has_next_page",
          "next_offset",
          "is_mandatory"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/init_tier_variation",
        "description": "Initialize tier variations (e.g., Size, Color) for a product. This creates the variation structure and associated models/SKUs.",
        "body_params": {
          "item_id": "number (required)",
          "tier_variation": "array",
          "model": "array"
        },
        "response_fields": [
          "item_id",
          "model_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/update_tier_variation",
        "description": "Update existing tier variation options for a product (e.g., add a new color or size option).",
        "body_params": {
          "item_id": "number (required)",
          "tier_variation": "array"
        },
        "response_fields": [
          "success"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_item_promotion",
        "description": "Check active promotions for one or more items. Returns promotion type and ID for each item.",
        "query_params": {
          "item_id_list": "string (required, comma-separated item IDs)"
        },
        "response_fields": [
          "success_list",
          "failure_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/update_sip_item_price",
        "description": "Update the SIP (Shopee International Platform) price for cross-border items.",
        "body_params": {
          "item_id": "number",
          "price": "number"
        },
        "response_fields": [
          "success"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/boost_item",
        "description": "Boost product visibility by adding items to the boost list. Shopee allows a limited number of boosted items at a time.",
        "body_params": {
          "item_id_list": "array of numbers (required)"
        },
        "response_fields": [
          "failure_list",
          "success_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_boosted_item",
        "description": "Get the list of currently boosted items for the shop.",
        "query_params": {},
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_comment",
        "description": "Get buyer comments/reviews for a specific product. Includes rating, comment text, buyer info, and seller replies.",
        "query_params": {
          "item_id": "number (required)"
        },
        "response_fields": [
          "item_comment_list",
          "has_more"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/reply_comment",
        "description": "Reply to a buyer's comment/review on a product.",
        "body_params": {
          "comment_id": "number (required)",
          "comment": "string (required)"
        },
        "response_fields": [
          "success"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/add_kit_item",
        "description": "Get item list by content diagnosis",
        "response_fields": [
          "item_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/add_model",
        "description": "Add models/variations to an item",
        "body_params": {
          "item_id": "number (required)",
          "model_list": "array (required)"
        },
        "response_fields": [
          "model_id_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/add_ssp_item",
        "description": "Get item list by content diagnosis",
        "response_fields": [
          "item_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/category_recommend",
        "description": "Get category recommendation",
        "query_params": {
          "item_name": "string (required)"
        },
        "response_fields": [
          "category_id_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/delete_model",
        "description": "Delete models/variations",
        "body_params": {
          "item_id": "number (required)",
          "model_id_list": "array (required)"
        },
        "response_fields": [
          "success"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/generate_kit_image",
        "description": "Get item list by content diagnosis",
        "body_params": {
          "image_id_list": "array (required)"
        },
        "response_fields": [
          "image_info"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_aitem_by_pitem_id",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "pitem_id_list": "array (required)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_all_vehicle_list",
        "description": "Get item list by content diagnosis",
        "response_fields": [
          "vehicle_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_attribute_tree",
        "description": "Get attribute tree",
        "query_params": {
          "category_id": "number (required)",
          "language": "string"
        },
        "response_fields": [
          "attribute_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_boosted_list",
        "description": "Get boosted item list",
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_direct_item_list",
        "description": "Get direct item list",
        "query_params": {
          "offset": "number",
          "page_size": "number"
        },
        "response_fields": [
          "item",
          "total_count",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_direct_shop_recommended_price",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "category_id": "number (required)",
          "item_name": "string"
        },
        "response_fields": [
          "recommended_price"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/get_item_content_diagnosis_result",
        "description": "Get item content diagnosis result",
        "body_params": {
          "item_id_list": "array (required)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_item_limit",
        "description": "Get item limits",
        "query_params": {
          "category_id": "number (required)"
        },
        "response_fields": [
          "item_limit"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/get_item_list_by_content_diagnosis",
        "description": "Get item list by content diagnosis",
        "body_params": {
          "status": "string (required)",
          "offset": "number",
          "page_size": "number"
        },
        "response_fields": [
          "item",
          "total_count",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_item_violation_info",
        "description": "Get item violation info",
        "query_params": {
          "item_id_list": "array (required)"
        },
        "response_fields": [
          "item_violation_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_kit_item_info",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "item_id_list": "array (required)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_kit_item_limit",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "category_id": "number (required)"
        },
        "response_fields": [
          "item_limit"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_main_item_list",
        "description": "Get main item list",
        "query_params": {
          "offset": "number",
          "page_size": "number",
          "update_time_from": "number",
          "update_time_to": "number"
        },
        "response_fields": [
          "item",
          "total_count",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/get_mart_item_by_outlet_item_id",
        "description": "Get the mapping information between a Mart item and its corresponding outlet item by outlet item ID.",
        "body_params": {
          "outlet_item_id": "number (required)"
        },
        "response_fields": [
          "item_mapping_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/get_mart_item_mapping_by_id",
        "description": "Get the mapping information between a Mart item and its corresponding outlet item by item ID.",
        "body_params": {
          "mart_item_id": "number (required)",
          "outlet_shop_id_list": "array (required)"
        },
        "response_fields": [
          "item_mapping_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/get_product_certification_rule",
        "description": "Get item list by content diagnosis",
        "body_params": {
          "category_id": "number (required)"
        },
        "response_fields": [
          "certification_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_recommend_attribute",
        "description": "Get recommended attributes",
        "query_params": {
          "category_id": "number (required)",
          "item_name": "string"
        },
        "response_fields": [
          "recommended_attribute_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_size_chart_detail",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "size_chart_id": "string (required)"
        },
        "response_fields": [
          "size_chart"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_size_chart_list",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "offset": "number",
          "page_size": "number"
        },
        "response_fields": [
          "size_chart_list",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_ssp_info",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "item_id": "number (required)"
        },
        "response_fields": [
          "ssp_info"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_ssp_list",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "offset": "number",
          "page_size": "number"
        },
        "response_fields": [
          "item_list",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_variations",
        "description": "Get variations",
        "query_params": {
          "item_id": "number (required)",
          "language": "string"
        },
        "response_fields": [
          "tier_variation"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/get_vehicle_list_by_compatibility_detail",
        "description": "Get item list by content diagnosis",
        "query_params": {
          "item_id": "number (required)"
        },
        "response_fields": [
          "vehicle_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/get_weight_recommendation",
        "description": "Get weight recommendation",
        "body_params": {
          "category_id": "number (required)",
          "item_name": "string (required)"
        },
        "response_fields": [
          "weight"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/link_ssp",
        "description": "Get item list by content diagnosis",
        "body_params": {
          "item_id": "number (required)",
          "ssp_item_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/product/publish_item_to_outlet_shop",
        "description": "This API supports publishing an existing item from the mart shop to an outlet shop.",
        "body_params": {
          "mart_item_id": "number (required)",
          "outlet_shop_id": "number (required)",
          "publish_item": "object (required)"
        },
        "response_fields": [
          "item_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/register_brand",
        "description": "Register a brand",
        "body_params": {
          "category_id": "number (required)",
          "original_brand_name": "string (required)"
        },
        "response_fields": [
          "brand_id",
          "original_brand_name"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/search_attribute_value_list",
        "description": "Search attribute values",
        "body_params": {
          "category_id": "number (required)",
          "attribute_id": "number (required)",
          "search_value": "string (required)",
          "language": "string"
        },
        "response_fields": [
          "attribute_value_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/product/search_item",
        "description": "Search items",
        "query_params": {
          "offset": "number",
          "page_size": "number",
          "item_status": "array",
          "item_name": "string",
          "item_sku": "string"
        },
        "response_fields": [
          "item",
          "total_count",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/search_unpackaged_model_list",
        "description": "Get item list by content diagnosis",
        "body_params": {
          "item_id": "number (required)",
          "search_value": "string"
        },
        "response_fields": [
          "model_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/unlink_ssp",
        "description": "Get item list by content diagnosis",
        "body_params": {
          "item_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/product/unlist_item",
        "description": "Unlist or list items",
        "body_params": {
          "item_list": "array (required)"
        },
        "response_fields": [
          "result"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/product/update_kit_item",
        "description": "Get item list by content diagnosis"
      },
      {
        "method": "POST",
        "path": "/api/v2/product/update_model",
        "description": "Update models/variations",
        "body_params": {
          "item_id": "number (required)",
          "model_list": "array (required)"
        },
        "response_fields": [
          "model_id_list"
        ]
      }
    ],
    "order": [
      {
        "method": "GET",
        "path": "/api/v2/order/get_order_list",
        "description": "Get a list of orders for a shop with filtering by status and time range. Supports cursor-based pagination.",
        "query_params": {
          "shop_id": "number",
          "order_status": "string (ALL|UNPAID|READY_TO_SHIP|PROCESSED|SHIPPED|COMPLETED|IN_CANCEL|CANCELLED)",
          "time_range_field": "string (create_time|update_time)",
          "time_from": "number (unix timestamp)",
          "time_to": "number (unix timestamp)",
          "page_size": "number (default: 20)",
          "cursor": "string"
        },
        "response_fields": [
          "more",
          "next_cursor",
          "order_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/order/get_order_detail",
        "description": "Get full details for one or more orders including buyer info, items, pricing, shipping address, and payment method.",
        "query_params": {
          "order_sn_list": "string (required, comma-separated order serial numbers)"
        },
        "response_fields": [
          "order_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/order/get_shipment_list",
        "description": "Get shipment/logistics status for one or more orders including tracking numbers and carrier info.",
        "query_params": {
          "order_sn_list": "string (required, comma-separated order serial numbers)"
        },
        "response_fields": [
          "order_list (with logistics_status, shipping_carrier, tracking_number)"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/cancel_order",
        "description": "Cancel an order as a seller. Requires a cancellation reason. Some orders may not be cancellable depending on their status.",
        "body_params": {
          "order_sn": "string (required)",
          "cancel_reason": "string (required)",
          "item_list": "array"
        },
        "response_fields": [
          "order_sn",
          "update_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/handle_buyer_cancellation",
        "description": "Accept or reject a buyer's cancellation request for an order.",
        "body_params": {
          "order_sn": "string (required)",
          "operation": "string (ACCEPT|REJECT)"
        },
        "response_fields": [
          "order_sn",
          "update_time"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/order/get_pending_buyer_invoice_order_list",
        "description": "Get a list of orders that are pending buyer invoice generation.",
        "query_params": {},
        "response_fields": [
          "order_list",
          "more"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/set_note",
        "description": "Set or update a seller's internal note on an order. Useful for internal tracking and communication between team members.",
        "body_params": {
          "order_sn": "string (required)",
          "note": "string (required)"
        },
        "response_fields": [
          "order_sn",
          "note",
          "note_update_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/split_order",
        "description": "Split an order into multiple packages when items need to be shipped separately. Each package gets its own tracking.",
        "body_params": {
          "order_sn": "string (required)",
          "package_list": "array of { item_list: [{ item_id, model_id, order_item_id }] }"
        },
        "response_fields": [
          "order_sn",
          "package_list (with package_number)"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/order/get_order_income",
        "description": "Get detailed income breakdown for one or more orders including fees, commissions, discounts, and final escrow amount.",
        "query_params": {
          "order_sn_list": "string (required, comma-separated)"
        },
        "response_fields": [
          "order_list (with buyer_total_amount, commission_fee, service_fee, seller_transaction_fee, escrow_amount)"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/download_fbs_invoices",
        "description": "Download FBS invoices",
        "body_params": {
          "request_id_list": "object"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/order/download_invoice_doc",
        "description": "Download invoice document",
        "query_params": {
          "order_sn": "string (required)"
        },
        "response_fields": [
          "url"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/generate_fbs_invoices",
        "description": "Generate FBS invoices",
        "body_params": {
          "batch_download": "object"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/order/get_booking_detail",
        "description": "Get booking detail",
        "query_params": {
          "booking_sn_list": "array (required)"
        },
        "response_fields": [
          "booking_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/order/get_booking_list",
        "description": "Get booking list",
        "query_params": {
          "time_range_field": "string (required)",
          "time_from": "number (required)",
          "time_to": "number (required)",
          "page_size": "number (required)",
          "cursor": "string",
          "booking_status": "string"
        },
        "response_fields": [
          "more",
          "next_cursor",
          "booking_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/get_buyer_invoice_info",
        "description": "Get buyer invoice information for orders",
        "body_params": {
          "queries": "array (required)"
        },
        "response_fields": [
          "invoice_info_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/get_fbs_invoices_result",
        "description": "Get FBS invoices result",
        "body_params": {
          "request_id_list": "object (required)"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/order/get_package_detail",
        "description": "Get package detail",
        "query_params": {
          "package_number_list": "array (required)"
        },
        "response_fields": [
          "package_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/order/get_warehouse_filter_config",
        "description": "Get warehouse filter config",
        "response_fields": [
          "warehouse_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/handle_prescription_check",
        "description": "Handle prescription check",
        "body_params": {
          "package_number": "string (required)",
          "operation": "string (required)",
          "reject_reason": "string"
        },
        "response_fields": [
          "package_number"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/search_package_list",
        "description": "Search package list",
        "body_params": {
          "filter": "object",
          "pagination": "object (required)",
          "sort": "object"
        },
        "response_fields": [
          "more",
          "next_cursor",
          "package_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/order/unsplit_order",
        "description": "Use this api to unsplit an order that has been split into multiple packages.",
        "body_params": {
          "order_sn": "string (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/order/upload_invoice_doc",
        "description": "Upload invoice document",
        "body_params": {
          "order_sn": "string (required)",
          "invoice_file": "string (required)"
        }
      }
    ],
    "logistics": [
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_shipping_parameter",
        "description": "Get the required shipping parameters for an order before shipping. Returns pickup/dropoff options and required fields.",
        "query_params": {
          "order_sn": "string (required)"
        },
        "response_fields": [
          "info_needed",
          "dropoff",
          "pickup"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_tracking_number",
        "description": "Get the tracking number assigned to an order by the logistics provider.",
        "query_params": {
          "order_sn": "string (required)"
        },
        "response_fields": [
          "tracking_number",
          "plp_number",
          "first_mile_tracking_number",
          "last_mile_tracking_number"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/ship_order",
        "description": "Arrange shipment for an order. Specify pickup, dropoff, or non-integrated shipping details.",
        "body_params": {
          "order_sn": "string (required)",
          "pickup": "object",
          "dropoff": "object",
          "non_integrated": "object"
        },
        "response_fields": [
          "order_sn",
          "success"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_tracking_info",
        "description": "Get full tracking/logistics history for an order including all tracking events, status updates, and carrier details.",
        "query_params": {
          "order_sn": "string (required)"
        },
        "response_fields": [
          "order_sn",
          "tracking_number",
          "logistics_status",
          "logistics_channel_name",
          "tracking_info"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_channel_list",
        "description": "Get the list of available logistics channels/carriers for a shop in its region.",
        "query_params": {
          "shop_id": "number (required)"
        },
        "response_fields": [
          "logistics_channel_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/batch_ship_order",
        "description": "Ship multiple orders at once in a single batch request. Returns success/failure status for each order.",
        "body_params": {
          "order_list": "array of { order_sn, pickup/dropoff } (required)"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/create_shipping_document",
        "description": "Request creation of shipping labels/documents (e.g., airway bills) for one or more orders.",
        "body_params": {
          "order_list": "array of { order_sn } (required)"
        },
        "response_fields": [
          "result_list (with status: READY|PENDING|FAILED)"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_shipping_document_result",
        "description": "Check the status of previously requested shipping documents and get download URLs when ready.",
        "query_params": {
          "order_sn_list": "string (required, comma-separated)"
        },
        "response_fields": [
          "result_list (with status, download_info.file_url)"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/download_shipping_document",
        "description": "Download the actual shipping document/label file for orders. Returns a URL to the generated PDF.",
        "body_params": {
          "order_list": "array of { order_sn }"
        },
        "response_fields": [
          "file_url",
          "status"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_address_list",
        "description": "Get the list of seller addresses configured for the shop, including pickup, return, and default addresses.",
        "query_params": {},
        "response_fields": [
          "address_list (with address_id, region, state, city, address, zipcode, address_flag)"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/set_address_config",
        "description": "Configure address settings for the shop (e.g., set default pickup or return address).",
        "body_params": {
          "address_id": "number",
          "address_flag": "array of strings"
        },
        "response_fields": [
          "success"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/batch_update_tpf_warehouse_tracking_status",
        "description": "Use this API to batch update TPF warehouse tracking status.",
        "body_params": {
          "tpf_name": "string",
          "tpf_tracking_status": "string",
          "package_list": "array (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/check_polygon_update_status",
        "description": "Only available for Brazil sellers. Use this API to check the status of polygon file uploaded for BR Entrega Turbo channel (Channel ID: 90026) by querying the task_id returned via the v2.logistics.upload_serviceable_polygon.",
        "body_params": {
          "task_id": "string (required)"
        },
        "response_fields": [
          "status",
          "message"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/create_booking_shipping_document",
        "description": "Use this API to create booking shipping document.",
        "body_params": {
          "booking_list": "array (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/create_shipping_document_job",
        "description": "Use this API to create shipping document job.",
        "body_params": {
          "shipping_document_type": "string (required)",
          "unpackaged_sku_requests": "array",
          "package_list": "array (required)"
        },
        "response_fields": [
          "job_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/delete_address",
        "description": "Use this API to delete an address.",
        "body_params": {
          "address_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/delete_special_operating_hour",
        "description": "Use this API to delete special operating hour.",
        "body_params": {
          "name": "string"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/download_booking_shipping_document",
        "description": "Use this API to download booking shipping document.",
        "body_params": {
          "booking_list": "array (required)",
          "shipping_document_type": "string (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/download_shipping_document_job",
        "description": "Use this API to download shipping document job.",
        "body_params": {
          "job_id": "string (required)"
        },
        "response_fields": [
          "result"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/download_to_label",
        "description": "Use this API to download shipping label.",
        "body_params": {
          "sorting_group": "string",
          "quantity": "number"
        },
        "response_fields": [
          "result"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_booking_shipping_document_data_info",
        "description": "Use this API to get booking shipping document data info.",
        "body_params": {
          "booking_sn": "string (required)",
          "recipient_address_info": "object"
        },
        "response_fields": [
          "data_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_booking_shipping_document_parameter",
        "description": "Use this API to get booking shipping document parameters.",
        "body_params": {
          "booking_list": "array (required)"
        },
        "response_fields": [
          "suggested_shipping_document_type",
          "selectable_shipping_document_type"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_booking_shipping_document_result",
        "description": "Use this API to get booking shipping document result.",
        "body_params": {
          "booking_list": "array (required)"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_booking_shipping_parameter",
        "description": "Use this API to get shipping parameters for a booking.",
        "query_params": {
          "booking_sn": "string (required)"
        },
        "response_fields": [
          "info_needed",
          "dropoff",
          "pickup"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_booking_tracking_info",
        "description": "Use this API to get tracking info for a booking.",
        "query_params": {
          "booking_sn": "string (required)"
        },
        "response_fields": [
          "booking_sn",
          "logistics_status",
          "tracking_info"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_booking_tracking_number",
        "description": "Use this API to get tracking number for a booking.",
        "query_params": {
          "booking_sn": "string (required)",
          "response_optional_fields": "string"
        },
        "response_fields": [
          "tracking_number",
          "hint"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_mart_packaging_info",
        "description": "Use this API to get mart packaging info.",
        "query_params": {
          "order_sn": "string (required)"
        },
        "response_fields": [
          "packaging_info"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_mass_shipping_parameter",
        "description": "Use this API to get mass shipping parameters.",
        "body_params": {
          "logistics_channel_id": "number",
          "product_location_id": "string",
          "package_list": "array (required)"
        },
        "response_fields": [
          "info_needed",
          "dropoff",
          "pickup"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_mass_tracking_number",
        "description": "Use this API to get mass tracking numbers.",
        "body_params": {
          "package_list": "array (required)",
          "response_optional_fields": "string"
        },
        "response_fields": [
          "success_list",
          "fail_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_operating_hour_restrictions",
        "description": "Use this API to get operating hour restrictions.",
        "response_fields": [
          "restrictions"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_operating_hours",
        "description": "Use this API to get operating hours.",
        "response_fields": [
          "operating_hours"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/logistics/get_pause_status",
        "description": "Use this API to get the pause status of logistics channels under the shop.",
        "response_fields": [
          "is_paused",
          "pause_end_time",
          "remaining_pause_quota"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_shipping_document_data_info",
        "description": "Use this API to get shipping document data info.",
        "body_params": {
          "order_sn": "string (required)",
          "package_number": "string",
          "recipient_address_info": "object"
        },
        "response_fields": [
          "data_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_shipping_document_job_status",
        "description": "Use this API to get shipping document job status.",
        "body_params": {
          "job_id": "string (required)"
        },
        "response_fields": [
          "status",
          "error"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_shipping_document_parameter",
        "description": "Use this API to get shipping document parameters.",
        "body_params": {
          "order_list": "array (required)"
        },
        "response_fields": [
          "suggested_shipping_document_type",
          "selectable_shipping_document_type"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/get_shipping_document_result",
        "description": "Use this API to get shipping document result.",
        "body_params": {
          "order_list": "array (required)",
          "shipping_document_type": "string"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/mass_ship_order",
        "description": "Use this API to mass ship orders.",
        "body_params": {
          "logistics_channel_id": "number (required)",
          "product_location_id": "string",
          "package_list": "array (required)",
          "pickup": "object",
          "dropoff": "object",
          "non_integrated": "object"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/set_mart_packaging_info",
        "description": "Use this API to set mart packaging info.",
        "body_params": {
          "enable": "boolean",
          "dimension": "object",
          "packaging_fee": "number"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/set_pause_status",
        "description": "Use this API to set the pause status of logistics channels under the shop.",
        "body_params": {
          "is_paused": "boolean (required)"
        },
        "response_fields": [
          "is_paused",
          "pause_end_time",
          "remaining_pause_quota"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/ship_booking",
        "description": "Use this API to initiate logistics for a booking.",
        "body_params": {
          "booking_sn": "string (required)",
          "pickup": "object",
          "dropoff": "object"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/update_address",
        "description": "Use this API to update the address of a shop.",
        "body_params": {
          "address_id": "number (required)",
          "region": "string",
          "state": "string",
          "city": "string",
          "district": "string",
          "town": "string",
          "address": "string",
          "zipcode": "string",
          "name": "string",
          "phone": "string",
          "geo_info": "string"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/update_channel",
        "description": "Use this API to update logistics channel configuration.",
        "body_params": {
          "logistics_channel_id": "number (required)",
          "enabled": "boolean",
          "cod_enabled": "boolean",
          "auto_call_driver_setting": "object"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/update_operating_hours",
        "description": "Use this API to update operating hours.",
        "body_params": {
          "regular_operating_hour": "array",
          "special_operating_hour": "array",
          "instant_operating_hour": "array",
          "shop_collection_operating_hour": "array"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/update_self_collection_order_logistics",
        "description": "Use this API to update self collection order logistics.",
        "body_params": {
          "package_number": "string (required)",
          "self_collection_logistics_action": "string",
          "epoc_image_list": "array",
          "pin": "string"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/update_shipping_order",
        "description": "Use this API to update shipping order.",
        "body_params": {
          "order_sn": "string (required)",
          "package_number": "string",
          "pickup": "object"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/update_tracking_status",
        "description": "Use this API to update tracking status.",
        "body_params": {
          "order_sn": "string (required)",
          "tracking_number": "string",
          "tracking_url": "string",
          "logistics_status": "string",
          "failed_reason": "string"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/logistics/upload_serviceable_polygon",
        "description": "Only available for Brazil sellers. Use this API to upload KML file for shop level serviceability setting for BR Entrega Turbo channel (Channel ID: 90026). Please note that multiple Outlet Shops under the same Mart Shop cannot have overlapping service areas.",
        "body_params": {
          "file": "object (required)"
        },
        "response_fields": [
          "task_id"
        ]
      }
    ],
    "shop_category": [
      {
        "method": "GET",
        "path": "/api/v2/shop_category/get_shop_category_list",
        "description": "Get all custom categories created by the seller for organizing products within the shop.",
        "query_params": {
          "shop_id": "number (required)"
        },
        "response_fields": [
          "shop_categorys"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_category/add_shop_category",
        "description": "Create a new custom shop category for organizing products.",
        "query_params": {
          "shop_id": "number (required)"
        },
        "body_params": {
          "name": "string (required)",
          "sort_weight": "number (default: 0)"
        },
        "response_fields": [
          "shop_category_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_category/update_shop_category",
        "description": "Update an existing shop category's name or sort weight.",
        "body_params": {
          "shop_category_id": "number (required)",
          "name": "string",
          "sort_weight": "number"
        },
        "response_fields": [
          "success"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_category/delete_shop_category",
        "description": "Delete a custom shop category. Products in this category will be uncategorized.",
        "body_params": {
          "shop_category_id": "number (required)"
        },
        "response_fields": [
          "success"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop_category/get_item_list",
        "description": "Get the list of product items assigned to a specific shop category.",
        "query_params": {
          "shop_category_id": "number (required)",
          "shop_id": "number (required)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_category/add_item_list",
        "description": "Add products to a shop category. Provide a list of item IDs to assign to the category.",
        "body_params": {
          "shop_category_id": "number (required)",
          "item_list": "array of { item_id }"
        },
        "response_fields": [
          "success"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_category/delete_item_list",
        "description": "Remove products from a shop category.",
        "body_params": {
          "shop_category_id": "number (required)",
          "item_list": "array of { item_id }"
        },
        "response_fields": [
          "success"
        ]
      }
    ],
    "public": [
      {
        "method": "POST",
        "path": "/api/v2/public/get_access_token",
        "description": "Public endpoint to get an access token using an authorization code. Does not require an existing access_token to call.",
        "body_params": {
          "code": "string (required)",
          "partner_id": "number (required)"
        },
        "response_fields": [
          "access_token",
          "refresh_token",
          "expire_in"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/public/refresh_access_token",
        "description": "Refresh an expired access token using a refresh token. Returns new access and refresh tokens.",
        "body_params": {
          "refresh_token": "string (required)",
          "partner_id": "number (required)",
          "shop_id": "number"
        },
        "response_fields": [
          "access_token",
          "refresh_token",
          "expire_in"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/public/get_shops_by_partner",
        "description": "Get a paginated list of all shops authorized under a partner account.",
        "query_params": {
          "partner_id": "number (required)",
          "page_no": "number (default: 1)",
          "page_size": "number (default: 20)"
        },
        "response_fields": [
          "shop_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/public/get_merchant_by_partner",
        "description": "Get all merchant accounts associated with a partner, including their regions and authorization status.",
        "query_params": {
          "partner_id": "number (required)"
        },
        "response_fields": [
          "merchant_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/public/get_token_by_resend_code",
        "description": "Get an access token by resending a verification code. Used for re-authorization flows.",
        "query_params": {},
        "response_fields": [
          "access_token",
          "refresh_token",
          "expire_in"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/public/get_merchants_by_partner",
        "description": "public get_merchants_by_partner",
        "query_params": {
          "page_size": "number",
          "page_no": "number"
        },
        "response_fields": [
          "authed_merchant_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/public/get_shopee_ip_ranges",
        "description": "public get_shopee_ip_ranges",
        "response_fields": [
          "ip_list"
        ]
      }
    ],
    "returns": [
      {
        "method": "GET",
        "path": "/api/v2/returns/get_return_list",
        "description": "Get a list of return/refund requests from buyers. Filter by shop and paginate results.",
        "query_params": {
          "shop_id": "number",
          "page_no": "number (default: 1)",
          "page_size": "number (default: 20)"
        },
        "response_fields": [
          "return_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/returns/get_return_detail",
        "description": "Get full details of a specific return/refund request including reason, items, refund amount, images, and dispute status.",
        "query_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "return_sn",
          "order_sn",
          "reason",
          "text_reason",
          "status",
          "item_list",
          "refund_amount",
          "images",
          "dispute",
          "due_date"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/returns/confirm",
        "description": "Accept/confirm a buyer's return request. The refund will be processed after the returned item is received.",
        "body_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "return_sn",
          "status",
          "update_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/returns/dispute",
        "description": "Dispute a buyer's return request if you disagree with the reason. Shopee will mediate the dispute.",
        "body_params": {
          "return_sn": "string (required)",
          "email": "string",
          "dispute_reason": "string (required)",
          "dispute_text_reason": "string",
          "images": "array of strings"
        },
        "response_fields": [
          "return_sn",
          "status",
          "update_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/returns/accept_offer",
        "description": "Accept an offer from the buyer.",
        "body_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "return_sn"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/returns/cancel_dispute",
        "description": "Cancel a compensation dispute. Sellers can only cancel compensation disputes, not normal disputes.",
        "body_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "return_sn"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/returns/convert_image",
        "description": "Convert image files to URLs. Supports specific formats and pictures within 10MB.",
        "body_params": {
          "images": "array (required)"
        },
        "response_fields": [
          "images"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/returns/get_available_solutions",
        "description": "Get the available solutions offered to buyers.",
        "query_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "solution"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/returns/get_return_dispute_reason",
        "description": "Get the dispute return reasons available for a return.",
        "query_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "dispute_reason"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/returns/get_reverse_tracking_info",
        "description": "Get reverse and post-return logistics information of return request.",
        "query_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "return_sn",
          "return_refund_request_type",
          "validation_type",
          "reverse_logistics_status",
          "reverse_logistics_update_time",
          "estimated_delivery_date_max",
          "estimated_delivery_date_min",
          "tracking_number",
          "tracking_info",
          "post_return_logistics_status",
          "post_return_logistics_update_time",
          "rts_tracking_number",
          "post_return_logistics_tracking_info"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/returns/get_shipping_carrier",
        "description": "Get the list of shipping carriers and required parameters for uploading shipping proof.",
        "query_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "carrier_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/returns/offer",
        "description": "Offer a solution to the buyer during negotiation.",
        "body_params": {
          "return_sn": "string (required)",
          "solution": "number (required)",
          "refund_amount": "number"
        },
        "response_fields": [
          "return_sn"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/returns/query_proof",
        "description": "Query the evidence uploaded through the upload evidence API.",
        "query_params": {
          "return_sn": "string (required)"
        },
        "response_fields": [
          "proof_text",
          "proof_image",
          "proof_video"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/returns/upload_proof",
        "description": "Upload evidence for a return, including text, pictures, and videos.",
        "body_params": {
          "return_sn": "string (required)",
          "proof_text": "array",
          "proof_image": "array",
          "proof_video": "array"
        },
        "response_fields": [
          "return_sn"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/returns/upload_shipping_proof",
        "description": "Upload shipping proof for seller-arranged returns.",
        "body_params": {
          "return_sn": "string (required)",
          "carrier_id": "number (required)",
          "tracking_number": "string (required)"
        },
        "response_fields": [
          "return_sn"
        ]
      }
    ],
    "payment": [
      {
        "method": "GET",
        "path": "/api/v2/payment/get_escrow_detail",
        "description": "Get detailed escrow/payment breakdown for an order including item price, discounts, fees, commissions, shipping costs, and final seller income.",
        "query_params": {
          "order_sn": "string (required)"
        },
        "response_fields": [
          "order_sn",
          "buyer_total_amount",
          "original_price",
          "seller_discount",
          "commission_fee",
          "service_fee",
          "seller_transaction_fee",
          "escrow_amount",
          "order_income"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/get_payout_detail",
        "description": "Get seller payout details including scheduled and completed payouts to the seller's bank account.",
        "query_params": {
          "shop_id": "number (required)"
        },
        "response_fields": [
          "shop_id",
          "payout_currency",
          "total_payout_amount",
          "payout_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/get_wallet_transaction_list",
        "description": "Get a paginated list of wallet transactions including order income, withdrawals, refunds, and adjustments.",
        "query_params": {
          "shop_id": "number",
          "page_no": "number (default: 1)",
          "page_size": "number (default: 20)"
        },
        "response_fields": [
          "transaction_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/generate_income_report",
        "description": "Trigger income report generation.",
        "query_params": {
          "start_time": "number (required)",
          "end_time": "number (required)",
          "currency": "string"
        },
        "response_fields": [
          "income_report_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/generate_income_statement",
        "description": "Trigger income statement generation.",
        "query_params": {
          "start_time": "number (required)",
          "end_time": "number (required)"
        },
        "response_fields": [
          "income_statement_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/payment/get_billing_transaction_info",
        "description": "This API is applicable for Cross Border (CB) sellers only to get the detailed payout transaction data,",
        "body_params": {
          "billing_transaction_info_type": "number (required)",
          "encrypted_payout_ids": "array",
          "cursor": "string (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "transactions",
          "more",
          "next_cursor"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/payment/get_escrow_detail_batch",
        "description": "Use this API to fetch the details of order income by batch.",
        "body_params": {
          "order_sn_list": "array (required)"
        },
        "response_fields": [
          "order_income_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/get_escrow_list",
        "description": "Use this API to fetch the accounting list of order.",
        "query_params": {
          "release_time_from": "number (required)",
          "release_time_to": "number (required)",
          "page_size": "number",
          "page_no": "number"
        },
        "response_fields": [
          "escrow_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/get_income_report",
        "description": "To query income report status and provide file link if the income report is ready to be downloaded.",
        "query_params": {
          "income_report_id": "string (required)"
        },
        "response_fields": [
          "income_report_id",
          "status",
          "url",
          "create_time"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/get_income_statement",
        "description": "To query income statement status and provide file link if the income statement is ready to be downloaded.",
        "query_params": {
          "income_statement_id": "string (required)"
        },
        "response_fields": [
          "income_statement_id",
          "status",
          "url",
          "create_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/payment/get_item_installment_status",
        "description": "Get item installment tenures. Only for TH、TW.",
        "body_params": {
          "item_id_list": "array (required)"
        },
        "response_fields": [
          "item_installment_list",
          "item_plan_ahora_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/get_payment_method_list",
        "description": "Obtain payment method (no authentication required).",
        "response_fields": [
          "payment_method_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/get_payout_info",
        "description": "This is a new API which applicable for Cross Border (CB) sellers only to get the shop's payout data,",
        "query_params": {
          "payout_time_from": "number (required)",
          "payout_time_to": "number (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "payout_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/payment/get_shop_installment_status",
        "description": "Get the installment state of shop.",
        "response_fields": [
          "tenure_list",
          "status"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/payment/set_item_installment_status",
        "description": "Set item installment. Only for TH、TW.",
        "body_params": {
          "item_id_list": "array (required)",
          "tenure_list": "array (required)",
          "participate_plan_ahora": "boolean"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/payment/set_shop_installment_status",
        "description": "Sets the staging capability of shop level.",
        "body_params": {
          "installment_status": "number (required)"
        }
      }
    ],
    "first_mile": [
      {
        "method": "POST",
        "path": "/api/v2/first_mile/generate_first_mile_tracking_number",
        "description": "Generate a first-mile tracking number for consolidating multiple orders into a single pickup/drop-off shipment.",
        "body_params": {
          "declare_date": "string (YYYY-MM-DD)",
          "order_list": "array of order_sn",
          "seller_info": "object"
        },
        "response_fields": [
          "first_mile_tracking_number",
          "declare_date",
          "status"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/first_mile/get_unbind_order_list",
        "description": "Get orders that are ready to ship but not yet bound to a first-mile tracking number.",
        "query_params": {
          "shop_id": "number"
        },
        "response_fields": [
          "order_list",
          "more"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/first_mile/bind_first_mile_tracking_number",
        "description": "Bind one or more orders to a first-mile tracking number for consolidated shipping.",
        "body_params": {
          "first_mile_tracking_number": "string (required)",
          "order_list": "array of { order_sn }"
        },
        "response_fields": [
          "first_mile_tracking_number",
          "success_list",
          "fail_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/first_mile/bind_courier_delivery_first_mile_tracking_number",
        "description": "Use this api to bind first mile tracking number for courier delivery method.",
        "body_params": {
          "shipment_method": "string (required)",
          "binding_id": "string (required)",
          "order_list": "array (required)"
        },
        "response_fields": [
          "binding_id",
          "success_list",
          "fail_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/first_mile/generate_and_bind_first_mile_tracking_number",
        "description": "Use this api to generate first mile tracking number for courier delivery method.",
        "body_params": {
          "shipment_method": "string (required)",
          "region": "string",
          "order_list": "array (required)",
          "courier_delivery_info": "object (required)"
        },
        "response_fields": [
          "binding_id",
          "success_list",
          "fail_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/first_mile/get_channel_list",
        "description": "Use this api to get first mile channel list.",
        "query_params": {
          "region": "string"
        },
        "response_fields": [
          "logistics_channel_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/first_mile/get_courier_delivery_channel_list",
        "description": "Use this api to get courier information for courier delivery method.",
        "query_params": {
          "region": "string"
        },
        "response_fields": [
          "logistics_channel_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/first_mile/get_courier_delivery_detail",
        "description": "Use this api to get first mile detail for courier delivery method.",
        "query_params": {
          "binding_id": "string (required)",
          "cursor": "string",
          "page_size": "number"
        },
        "response_fields": [
          "binding_id",
          "first_mile_tracking_number",
          "status",
          "declare_date",
          "more",
          "next_cursor",
          "order_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/first_mile/get_courier_delivery_tracking_number_list",
        "description": "Use this api to get tracking number for courier delivery method.",
        "body_params": {
          "from_date": "string (required)",
          "to_date": "string (required)",
          "page_size": "number",
          "cursor": "string"
        },
        "response_fields": [
          "tracking_number_list",
          "more",
          "next_cursor"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/first_mile/get_courier_delivery_waybill",
        "description": "Use this api to get first mile waybill file for courier delivery method.",
        "body_params": {
          "binding_id_list": "array (required)"
        },
        "response_fields": [
          "waybill_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/first_mile/get_detail",
        "description": "Use this api to get first mile detail.",
        "query_params": {
          "first_mile_tracking_number": "string (required)",
          "cursor": "string"
        },
        "response_fields": [
          "logistics_channel_id",
          "first_mile_tracking_number",
          "shipment_method",
          "status",
          "declare_date",
          "more",
          "order_list",
          "next_cursor"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/first_mile/get_tracking_number_list",
        "description": "Use this api to get first mile tracking number list.",
        "query_params": {
          "from_date": "string (required)",
          "to_date": "string (required)",
          "page_size": "number",
          "cursor": "string"
        },
        "response_fields": [
          "more",
          "first_mile_tracking_number_list",
          "next_cursor"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/first_mile/get_transit_warehouse_list",
        "description": "Use this api to get transit warehouse list which is used for first mile tracking number generation for courier delivery method.",
        "query_params": {
          "region": "string"
        },
        "response_fields": [
          "transit_warehouse_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/first_mile/get_waybill",
        "description": "Use this api to get first mile waybill file.",
        "body_params": {
          "first_mile_tracking_number_list": "array (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/first_mile/unbind_first_mile_tracking_number",
        "description": "Use this api to unbind first mile.",
        "body_params": {
          "first_mile_tracking_number": "string (required)",
          "order_list": "array (required)"
        },
        "response_fields": [
          "first_mile_tracking_number",
          "order_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/first_mile/unbind_first_mile_tracking_number_all",
        "description": "Use this api to unbind orders from first mile tracking number or binding ID.",
        "body_params": {
          "order_list": "array (required)"
        },
        "response_fields": [
          "success_list",
          "fail_list"
        ]
      }
    ],
    "utils": [
      {
        "method": "GET",
        "path": "/api/v2/utils/generate_sign",
        "description": "Utility endpoint to generate HMAC-SHA256 signatures for API requests. Useful for testing with strict_sign=1 mode enabled.",
        "query_params": {
          "path": "string (API path to sign)",
          "timestamp": "number (unix timestamp)",
          "access_token": "string",
          "shop_id": "number"
        },
        "response_fields": [
          "sign",
          "partner_id",
          "partner_key",
          "note"
        ]
      }
    ],
    "account_health": [
      {
        "method": "GET",
        "path": "/api/v2/account_health/get_late_orders",
        "description": "Get the late orders to take action to avoid order cancellation and penalty points",
        "query_params": {
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "late_order_list",
          "total_count"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/account_health/get_listings_with_issues",
        "description": "Get the listings that have issues and need improvement",
        "query_params": {
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "listing_list",
          "total_count"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/account_health/get_metric_source_detail",
        "description": "Get the Affected Orders / Relevant Listings / Relevant Violations details of metrics",
        "query_params": {
          "metric_id": "number (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "metric_id",
          "total_count",
          "nfr_order_list",
          "cancellation_order_list",
          "return_refund_order_list",
          "lsr_order_list",
          "fhr_order_list",
          "opfr_day_detail_data_list",
          "violation_listing_list",
          "pre_order_listing_violation_data_list",
          "pre_order_listing_list",
          "ndd_listing_list",
          "sdd_listing_list",
          "apt_order_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/account_health/get_penalty_point_history",
        "description": "Get the penalty point records generated in the current quarter",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "violation_type": "number"
        },
        "response_fields": [
          "penalty_point_list",
          "total_count"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/account_health/get_punishment_history",
        "description": "Get the punishment records generated in the current quarter",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "punishment_status": "object (required)"
        },
        "response_fields": [
          "punishment_list",
          "total_count"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/account_health/get_shop_performance",
        "description": "Get data metrics of shop performance",
        "response_fields": [
          "overall_performance",
          "metric_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/account_health/shop_penalty",
        "description": "Get the information of shop penalty",
        "response_fields": [
          "penalty_points",
          "ongoing_punishment"
        ]
      }
    ],
    "add_on_deal": [
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/add_add_on_deal",
        "description": "Create a new add-on deal activity",
        "body_params": {
          "add_on_deal_name": "string (required)",
          "start_time": "number (required)",
          "end_time": "number (required)",
          "promotion_type": "object (required)",
          "purchase_min_spend": "number",
          "per_gift_num": "number",
          "promotion_purchase_limit": "number"
        },
        "response_fields": [
          "add_on_deal_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/add_add_on_deal_main_item",
        "description": "Add main items to an existing add-on deal activity",
        "body_params": {
          "add_on_deal_id": "number (required)",
          "main_item_list": "array (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "main_item_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/add_add_on_deal_sub_item",
        "description": "Add sub items (discounted or gift items) to an existing add-on deal activity",
        "body_params": {
          "add_on_deal_id": "number (required)",
          "sub_item_list": "array (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "sub_item_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/delete_add_on_deal",
        "description": "Delete an existing add-on deal activity",
        "body_params": {
          "add_on_deal_id": "number (required)"
        },
        "response_fields": [
          "add_on_deal_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/delete_add_on_deal_main_item",
        "description": "Delete main items from an existing add-on deal activity",
        "body_params": {
          "add_on_deal_id": "number (required)",
          "item_id_list": "array (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "failed_item_id_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/delete_add_on_deal_sub_item",
        "description": "Delete sub items from an existing add-on deal activity",
        "body_params": {
          "add_on_deal_id": "number (required)",
          "sub_item_list": "array (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "sub_item_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/end_add_on_deal",
        "description": "End an ongoing add-on deal activity immediately",
        "body_params": {
          "add_on_deal_id": "number (required)"
        },
        "response_fields": [
          "add_on_deal_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/add_on_deal/get_add_on_deal",
        "description": "Get detailed information about an add-on deal activity",
        "query_params": {
          "add_on_deal_id": "number (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "add_on_deal_name",
          "start_time",
          "end_time",
          "promotion_type",
          "purchase_min_spend",
          "per_gift_num",
          "promotion_purchase_limit",
          "sub_item_priority",
          "source"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/add_on_deal/get_add_on_deal_list",
        "description": "Get a list of add-on deal activities with pagination",
        "query_params": {
          "promotion_status": "object (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "add_on_deal_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/add_on_deal/get_add_on_deal_main_item",
        "description": "Get main items in an add-on deal activity",
        "query_params": {
          "add_on_deal_id": "number (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "main_item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/add_on_deal/get_add_on_deal_sub_item",
        "description": "Get sub items (discounted or gift items) in an add-on deal activity",
        "query_params": {
          "add_on_deal_id": "number (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "sub_item_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/update_add_on_deal",
        "description": "Update an existing add-on deal activity",
        "body_params": {
          "add_on_deal_id": "number (required)",
          "add_on_deal_name": "string",
          "start_time": "number",
          "end_time": "number",
          "purchase_min_spend": "number",
          "per_gift_num": "number",
          "promotion_purchase_limit": "number",
          "sub_item_priority": "array"
        },
        "response_fields": [
          "add_on_deal_id",
          "add_on_deal_name",
          "start_time",
          "end_time",
          "promotion_type",
          "purchase_min_spend",
          "per_gift_num",
          "promotion_purchase_limit",
          "sub_item_priority",
          "source"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/update_add_on_deal_main_item",
        "description": "Update main items in an existing add-on deal activity",
        "body_params": {
          "add_on_deal_id": "number (required)",
          "main_item_list": "array (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "main_item_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/add_on_deal/update_add_on_deal_sub_item",
        "description": "Update sub items in an existing add-on deal activity",
        "body_params": {
          "add_on_deal_id": "number (required)",
          "sub_item_list": "array (required)"
        },
        "response_fields": [
          "add_on_deal_id",
          "sub_item_list"
        ]
      }
    ],
    "ads": [
      {
        "method": "GET",
        "path": "/api/v2/ads/check_create_gms_product_campaign_eligibility",
        "description": "Check the seller's eligibility in creating a GMS campaign",
        "response_fields": [
          "is_eligible",
          "reason"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/create_auto_product_ads",
        "description": "Create Auto Product Ads",
        "body_params": {
          "reference_id": "string (required)",
          "budget": "number (required)",
          "start_date": "string (required)",
          "end_date": "string"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/create_gms_product_campaign",
        "description": "Create a GMS product campaign",
        "body_params": {
          "start_date": "string (required)",
          "end_date": "string",
          "daily_budget": "number (required)",
          "reference_id": "string",
          "roas_target": "number"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/create_manual_product_ads",
        "description": "Create Manual Selection Product Ads",
        "body_params": {
          "reference_id": "string (required)",
          "budget": "number (required)",
          "start_date": "string (required)",
          "end_date": "string",
          "bidding_method": "string (required)",
          "item_id": "number (required)",
          "roas_target": "number",
          "selected_keywords": "array",
          "discovery_ads_locations": "array",
          "enhanced_cpc": "boolean",
          "smart_creative_setting": "string"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/edit_auto_product_ads",
        "description": "Edit Auto Product Ads",
        "body_params": {
          "reference_id": "string (required)",
          "campaign_id": "number (required)",
          "edit_action": "string (required)",
          "budget": "number",
          "start_date": "string",
          "end_date": "string"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/edit_gms_item_product_campaign",
        "description": "Add/remove items to/from the GMS Campaign",
        "body_params": {
          "campaign_id": "number",
          "edit_action": "string (required)",
          "item_id_list": "array (required)"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/edit_gms_product_campaign",
        "description": "Edit a GMS product campaign",
        "body_params": {
          "campaign_id": "number (required)",
          "edit_action": "string (required)",
          "daily_budget": "number",
          "start_date": "string",
          "end_date": "string",
          "roas_target": "number"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/edit_manual_product_ad_keywords",
        "description": "Edit Manual Selection Product Ad Keywords",
        "body_params": {
          "reference_id": "string (required)",
          "campaign_id": "number (required)",
          "edit_action": "string (required)",
          "selected_keywords": "array"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/edit_manual_product_ads",
        "description": "Edit Manual Selection Product Ads",
        "body_params": {
          "reference_id": "string (required)",
          "campaign_id": "number (required)",
          "edit_action": "string (required)",
          "budget": "number",
          "start_date": "string",
          "end_date": "string",
          "roas_target": "number",
          "discovery_ads_locations": "array",
          "enhanced_cpc": "boolean",
          "smart_creative_setting": "string"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_ads_facil_shop_rate",
        "description": "Get shop rate for Ads Facil Program",
        "response_fields": [
          "shop_rate"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_all_cpc_ads_daily_performance",
        "description": "Get shop level CPC ads daily performance data for a date range",
        "query_params": {
          "start_date": "string (required)",
          "end_date": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_all_cpc_ads_hourly_performance",
        "description": "Get shop level CPC ads single-date hourly performance data",
        "query_params": {
          "performance_date": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_create_product_ad_budget_suggestion",
        "description": "Get budget suggestion for product ads creation",
        "query_params": {
          "reference_id": "string (required)",
          "product_selection": "string (required)",
          "campaign_placement": "string (required)",
          "bidding_method": "string (required)",
          "enhanced_cpc": "string",
          "discovery_ads_location_names": "string",
          "roas_target": "number",
          "item_id": "number"
        },
        "response_fields": [
          "budget"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/get_gms_campaign_performance",
        "description": "Get GMS Campaign performance",
        "body_params": {
          "campaign_id": "number",
          "start_date": "string (required)",
          "end_date": "string (required)"
        },
        "response_fields": [
          "campaign_id",
          "report"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/get_gms_item_performance",
        "description": "Get GMS Item performance",
        "body_params": {
          "campaign_id": "number",
          "start_date": "string (required)",
          "end_date": "string (required)",
          "offset": "number",
          "limit": "number"
        },
        "response_fields": [
          "campaign_id",
          "result_list",
          "total",
          "has_next_page"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_product_campaign_daily_performance",
        "description": "Get product-level campaign performance data for a date range",
        "query_params": {
          "start_date": "string (required)",
          "end_date": "string (required)",
          "campaign_id_list": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_product_campaign_hourly_performance",
        "description": "Get product-level campaign hourly performance data for a single day",
        "query_params": {
          "performance_date": "string (required)",
          "campaign_id_list": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_product_level_campaign_id_list",
        "description": "Get a list of all product-level campaign IDs for a shop",
        "query_params": {
          "ad_type": "string",
          "offset": "number",
          "limit": "number"
        },
        "response_fields": [
          "shop_id",
          "region",
          "has_next_page",
          "campaign_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_product_level_campaign_setting_info",
        "description": "Get detailed settings information for product-level campaigns",
        "query_params": {
          "info_type_list": "string (required)",
          "campaign_id_list": "string (required)"
        },
        "response_fields": [
          "shop_id",
          "region",
          "campaign_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_product_recommended_roi_target",
        "description": "Get recommended ROI target values for a product's ad campaign",
        "query_params": {
          "reference_id": "string (required)",
          "item_id": "number (required)"
        },
        "response_fields": [
          "lower_bound",
          "exact",
          "upper_bound"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_recommended_item_list",
        "description": "Get the list of recommended SKUs (Shop level) with the corresponding tag"
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_recommended_keyword_list",
        "description": "Get the list of recommended keywords for an item",
        "query_params": {
          "item_id": "number (required)",
          "input_keyword": "string"
        },
        "response_fields": [
          "item_id",
          "input_keyword",
          "suggested_keywords"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_shop_toggle_info",
        "description": "Get seller's toggle status information at the shop level",
        "response_fields": [
          "data_timestamp",
          "auto_top_up",
          "campaign_surge"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ads/get_total_balance",
        "description": "Get seller's real-time total balance of ads credit",
        "response_fields": [
          "data_timestamp",
          "total_balance"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ads/list_gms_user_deleted_item",
        "description": "List GMS items that have been removed from the Campaign by seller",
        "body_params": {
          "offset": "number",
          "limit": "number"
        },
        "response_fields": [
          "campaign_id",
          "item_id_list",
          "total",
          "has_next_page"
        ]
      }
    ],
    "ams": [
      {
        "method": "POST",
        "path": "/api/v2/ams/add_all_products_to_open_campaign",
        "description": "Add all products to open campaign",
        "body_params": {
          "commission_rate": "number (required)",
          "period_start_time": "number (required)",
          "period_end_time": "number (required)"
        },
        "response_fields": [
          "task_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/batch_add_products_to_open_campaign",
        "description": "Batch add products to open campaign",
        "body_params": {
          "item_id_list": "array (required)",
          "commission_rate": "number (required)",
          "period_start_time": "number (required)",
          "period_end_time": "number (required)"
        },
        "response_fields": [
          "task_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/batch_edit_products_open_campaign_setting",
        "description": "Batch edit products open campaign setting",
        "body_params": {
          "campaign_ids": "array (required)",
          "commission_rate": "number",
          "period_start_time": "number",
          "period_end_time": "number"
        },
        "response_fields": [
          "task_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/batch_get_products_suggested_rate",
        "description": "Batch get products suggested rate",
        "query_params": {
          "item_id_list": "string (required)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/batch_remove_products_open_campaign_setting",
        "description": "Batch remove products open campaign setting",
        "body_params": {
          "campaign_ids": "array (required)"
        },
        "response_fields": [
          "task_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/create_new_targeted_campaign",
        "description": "Create a new targeted campaign",
        "body_params": {
          "campaign_name": "string (required)",
          "period_start_time": "number (required)",
          "period_end_time": "number (required)",
          "is_set_budget": "boolean (required)",
          "budget": "number",
          "seller_message": "string (required)",
          "item_list": "array (required)",
          "affiliate_list": "array (required)"
        },
        "response_fields": [
          "campaign_id",
          "fail_item_list",
          "fail_affiliate_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/edit_affiliate_list_of_targeted_campaign",
        "description": "Edit affiliate list of targeted campaign",
        "body_params": {
          "campaign_id": "number (required)",
          "edit_type": "string (required)",
          "affiliate_list": "array (required)"
        },
        "response_fields": [
          "campaign_id",
          "fail_affiliate_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/edit_all_products_open_campaign_setting",
        "description": "Edit all products open campaign setting",
        "body_params": {
          "commission_rate": "number",
          "period_start_time": "number",
          "period_end_time": "number"
        },
        "response_fields": [
          "task_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/edit_product_list_of_targeted_campaign",
        "description": "Edit product list of targeted campaign",
        "body_params": {
          "campaign_id": "number (required)",
          "edit_type": "string (required)",
          "item_list": "array (required)"
        },
        "response_fields": [
          "campaign_id",
          "fail_item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_affiliate_performance",
        "description": "Get affiliate performance",
        "query_params": {
          "period_type": "string (required)",
          "start_date": "string (required)",
          "end_date": "string (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "total_count",
          "data_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_auto_add_new_product_toggle_status",
        "description": "Get auto add new product toggle status",
        "response_fields": [
          "open",
          "commission_rate"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_campaign_key_metrics_performance",
        "description": "Get campaign key metrics performance",
        "query_params": {
          "period_type": "string (required)",
          "start_date": "string (required)",
          "end_date": "string (required)"
        },
        "response_fields": [
          "sales",
          "orders",
          "est_commission",
          "clicks",
          "roi"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_content_performance",
        "description": "Get content performance",
        "query_params": {
          "period_type": "string (required)",
          "start_date": "string (required)",
          "end_date": "string (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "total_count",
          "data_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_conversion_report",
        "description": "Get conversion report",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "order_sn": "string",
          "affiliate_id": "number",
          "item_id": "number"
        },
        "response_fields": [
          "total_count",
          "data_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_managed_affiliate_list",
        "description": "Get managed affiliate list",
        "query_params": {
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "total_count",
          "affiliate_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_open_campaign_added_product",
        "description": "Get open campaign added product list",
        "query_params": {
          "page_size": "number (required)",
          "cursor": "string",
          "sort_by": "string",
          "search_type": "string",
          "search_content": "string"
        },
        "response_fields": [
          "total_count",
          "next_cursor",
          "has_more",
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_open_campaign_batch_task_result",
        "description": "Get open campaign batch task result",
        "query_params": {
          "task_id": "string (required)"
        },
        "response_fields": [
          "status",
          "success_count",
          "fail_count",
          "fail_item_id_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_open_campaign_not_added_product",
        "description": "Get open campaign not added product list",
        "query_params": {
          "page_size": "number (required)",
          "cursor": "string",
          "sort_by": "string",
          "search_type": "string",
          "search_content": "string"
        },
        "response_fields": [
          "total_count",
          "next_cursor",
          "has_more",
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_open_campaign_performance",
        "description": "Get open campaign performance",
        "query_params": {
          "period_type": "string (required)",
          "start_date": "string (required)",
          "end_date": "string (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "total_count",
          "data_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_optimization_suggestion_product",
        "description": "Get optimization suggestion product",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "rcmd_reason_filter": "string"
        },
        "response_fields": [
          "total_count",
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_performance_data_update_time",
        "description": "Get performance data update time",
        "query_params": {
          "marker_type": "string (required)"
        },
        "response_fields": [
          "latest_data_date"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_product_performance",
        "description": "Get product performance",
        "query_params": {
          "period_type": "string (required)",
          "start_date": "string (required)",
          "end_date": "string (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "total_count",
          "data_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_recommended_affiliate_list",
        "description": "Get recommended affiliate list",
        "query_params": {
          "page_size": "number"
        },
        "response_fields": [
          "affiliate_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_shop_performance",
        "description": "Get shop performance",
        "query_params": {
          "period_type": "string (required)",
          "start_date": "string (required)",
          "end_date": "string (required)",
          "order_type": "string (required)",
          "channel": "string (required)"
        },
        "response_fields": [
          "sales",
          "gross_item_sold",
          "orders",
          "clicks",
          "est_commission",
          "roi",
          "total_buyers",
          "new_buyers",
          "fetched_date_range"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_shop_suggested_rate",
        "description": "Get shop suggested rate",
        "response_fields": [
          "suggested_rate",
          "min_rate",
          "max_rate"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_targeted_campaign_addable_product_list",
        "description": "Get targeted campaign addable product list",
        "query_params": {
          "page_size": "number (required)",
          "cursor": "string",
          "sort_by": "string",
          "search_type": "string",
          "search_content": "string"
        },
        "response_fields": [
          "total_count",
          "next_cursor",
          "has_more",
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_targeted_campaign_list",
        "description": "Get targeted campaign list",
        "query_params": {
          "page_size": "number",
          "page_no": "number",
          "campaign_id_list": "string",
          "campaign_name": "string",
          "campaign_status": "string"
        },
        "response_fields": [
          "total_count",
          "has_more",
          "campaign_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_targeted_campaign_performance",
        "description": "Get targeted campaign performance",
        "query_params": {
          "period_type": "string (required)",
          "start_date": "string (required)",
          "end_date": "string (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "total_count",
          "data_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_targeted_campaign_settings",
        "description": "Get targeted campaign settings",
        "query_params": {
          "campaign_id": "number (required)"
        },
        "response_fields": [
          "campaign_id",
          "campaign_name",
          "campaign_status",
          "period_start_time",
          "period_end_time",
          "is_set_budget",
          "budget",
          "seller_message",
          "item_list",
          "affiliate_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_validation_list",
        "description": "Get validation list",
        "response_fields": [
          "validation_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/get_validation_report",
        "description": "Get validation report",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "validation_id": "number",
          "validation_month": "string",
          "campaign_source": "string"
        },
        "response_fields": [
          "total_count",
          "data_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/ams/query_affiliate_list",
        "description": "Query affiliate list",
        "query_params": {
          "query_type": "string (required)",
          "affiliate_id_list": "string",
          "name": "string"
        },
        "response_fields": [
          "affiliate_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/remove_all_products_open_campaign_setting",
        "description": "Remove all products from open campaign",
        "response_fields": [
          "task_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/terminate_targeted_campaign",
        "description": "Terminate targeted campaign",
        "body_params": {
          "campaign_id": "number (required)"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/update_auto_add_new_product_setting",
        "description": "Update auto add new product setting",
        "body_params": {
          "open": "boolean (required)",
          "commission_rate": "number"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/ams/update_basic_info_of_targeted_campaign",
        "description": "Update basic info of targeted campaign",
        "body_params": {
          "campaign_id": "number (required)",
          "campaign_name": "string",
          "period_start_time": "number",
          "period_end_time": "number",
          "is_set_budget": "boolean",
          "budget": "number",
          "seller_message": "string"
        },
        "response_fields": [
          "campaign_id"
        ]
      }
    ],
    "bundle_deal": [
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/add_bundle_deal",
        "description": "Create a new bundle deal activity",
        "body_params": {
          "rule_type": "object (required)",
          "discount_value": "number",
          "fix_price": "number",
          "discount_percentage": "number",
          "min_amount": "number (required)",
          "start_time": "number (required)",
          "end_time": "number (required)",
          "name": "string (required)",
          "purchase_limit": "number (required)",
          "additional_tiers": "array"
        },
        "response_fields": [
          "bundle_deal_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/add_bundle_deal_item",
        "description": "Add items to an existing bundle deal activity",
        "body_params": {
          "bundle_deal_id": "number (required)",
          "item_list": "array (required)"
        },
        "response_fields": [
          "failed_list",
          "success_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/delete_bundle_deal",
        "description": "Delete an existing bundle deal activity",
        "body_params": {
          "bundle_deal_id": "number (required)"
        },
        "response_fields": [
          "bundle_deal_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/delete_bundle_deal_item",
        "description": "Delete items from an existing bundle deal activity",
        "body_params": {
          "bundle_deal_id": "number (required)",
          "item_list": "array (required)"
        },
        "response_fields": [
          "failed_list",
          "success_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/end_bundle_deal",
        "description": "End an ongoing bundle deal activity immediately",
        "body_params": {
          "bundle_deal_id": "number (required)"
        },
        "response_fields": [
          "bundle_deal_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/get_bundle_deal",
        "description": "Get detailed information about a bundle deal activity",
        "body_params": {
          "bundle_deal_id": "number (required)"
        },
        "response_fields": [
          "bundle_deal_id",
          "name",
          "start_time",
          "end_time",
          "bundle_deal_rule",
          "purchase_limit"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/get_bundle_deal_item",
        "description": "Get the list of items in a bundle deal",
        "body_params": {
          "bundle_deal_id": "number (required)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/get_bundle_deal_list",
        "description": "Get a list of bundle deal activities with pagination",
        "body_params": {
          "page_size": "number",
          "time_status": "object",
          "page_no": "number"
        },
        "response_fields": [
          "bundle_deal_list",
          "more"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/update_bundle_deal",
        "description": "Update an existing bundle deal activity",
        "body_params": {
          "bundle_deal_id": "number (required)",
          "rule_type": "object",
          "discount_value": "number",
          "fix_price": "number",
          "discount_percentage": "number",
          "min_amount": "number",
          "start_time": "number",
          "end_time": "number",
          "name": "string",
          "purchase_limit": "number",
          "additional_tiers": "array"
        },
        "response_fields": [
          "bundle_deal_id",
          "name",
          "start_time",
          "end_time",
          "bundle_deal_rule",
          "purchase_limit"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/bundle_deal/update_bundle_deal_item",
        "description": "Update items in an existing bundle deal activity",
        "body_params": {
          "bundle_deal_id": "number (required)",
          "item_list": "array (required)"
        },
        "response_fields": [
          "failed_list",
          "success_list"
        ]
      }
    ],
    "discount": [
      {
        "method": "POST",
        "path": "/api/v2/discount/add_discount",
        "description": "Add a new shop discount activity",
        "body_params": {
          "discount_name": "string (required)",
          "start_time": "number (required)",
          "end_time": "number (required)"
        },
        "response_fields": [
          "discount_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/discount/add_discount_item",
        "description": "Add items to an existing discount activity",
        "body_params": {
          "discount_id": "number (required)",
          "item_list": "array (required)"
        },
        "response_fields": [
          "discount_id",
          "count",
          "error_list",
          "warning"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/discount/delete_discount",
        "description": "Delete an existing discount activity",
        "body_params": {
          "discount_id": "number (required)"
        },
        "response_fields": [
          "discount_id",
          "modify_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/discount/delete_discount_item",
        "description": "Delete items from an existing discount activity",
        "body_params": {
          "discount_id": "number (required)",
          "item_id": "number (required)",
          "model_id": "number"
        },
        "response_fields": [
          "discount_id",
          "error_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/discount/delete_sip_discount",
        "description": "Delete SIP Overseas Discount for SIP affiliate region",
        "body_params": {
          "region": "string (required)"
        },
        "response_fields": [
          "region"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/discount/end_discount",
        "description": "End an ongoing discount activity immediately",
        "body_params": {
          "discount_id": "number (required)"
        },
        "response_fields": [
          "discount_id",
          "modify_time"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/discount/get_discount",
        "description": "Get detailed information about a discount activity",
        "query_params": {
          "discount_id": "number (required)",
          "page_no": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "status",
          "discount_name",
          "item_list",
          "start_time",
          "discount_id",
          "end_time",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/discount/get_discount_list",
        "description": "Get a list of discount activities with pagination",
        "query_params": {
          "discount_status": "object (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "discount_list",
          "more"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/discount/get_sip_discounts",
        "description": "Get SIP Overseas Discounts",
        "query_params": {
          "region": "string"
        },
        "response_fields": [
          "discount_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/discount/set_sip_discount",
        "description": "Set SIP Overseas Discount for SIP affiliate region",
        "body_params": {
          "region": "string (required)",
          "sip_discount_rate": "number (required)"
        },
        "response_fields": [
          "region",
          "status",
          "sip_discount_rate",
          "start_time",
          "end_time",
          "create_time",
          "update_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/discount/update_discount",
        "description": "Update an existing discount activity",
        "body_params": {
          "discount_id": "number (required)",
          "discount_name": "string",
          "start_time": "number",
          "end_time": "number"
        },
        "response_fields": [
          "discount_id",
          "modify_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/discount/update_discount_item",
        "description": "Update items in an existing discount activity",
        "body_params": {
          "discount_id": "number (required)",
          "item_list": "array (required)"
        },
        "response_fields": [
          "discount_id",
          "count",
          "error_list"
        ]
      }
    ],
    "fbs": [
      {
        "method": "GET",
        "path": "/api/v2/fbs/query_br_shop_block_status",
        "description": "Check whether an FBS shop is blocked due to invoice-related issues.",
        "response_fields": [
          "shop_id",
          "is_block"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/fbs/query_br_shop_enrollment_status",
        "description": "Check whether a given shop_id is eligible to enroll in the Brazil Fulfilled-by-Shopee (FBS) service.",
        "response_fields": [
          "shop_id",
          "enrollment_status",
          "enable_enrollment_time"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/fbs/query_br_shop_invoice_error",
        "description": "Get failed invoice issuance information for FBS-related processes.",
        "query_params": {
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "total",
          "list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/fbs/query_br_sku_block_status",
        "description": "Check whether an FBS product is blocked due to invoice-related issues.",
        "query_params": {
          "shop_sku_id": "string (required)"
        },
        "response_fields": [
          "shop_sku_id",
          "is_block",
          "shop_item_id",
          "shop_model_id",
          "shop_item_name",
          "shop_model_name"
        ]
      }
    ],
    "follow_prize": [
      {
        "method": "POST",
        "path": "/api/v2/follow_prize/add_follow_prize",
        "description": "Add a new follow prize activity",
        "body_params": {
          "follow_prize_name": "string (required)",
          "start_time": "number (required)",
          "end_time": "number (required)",
          "usage_quantity": "number (required)",
          "min_spend": "number (required)",
          "reward_type": "object (required)",
          "discount_amount": "number",
          "percentage": "number",
          "max_price": "number"
        },
        "response_fields": [
          "campagin_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/follow_prize/delete_follow_prize",
        "description": "Delete an existing follow prize activity",
        "body_params": {
          "campaign_id": "number (required)"
        },
        "response_fields": [
          "campagin_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/follow_prize/end_follow_prize",
        "description": "End an ongoing follow prize activity immediately",
        "body_params": {
          "campaign_id": "number (required)"
        },
        "response_fields": [
          "campaign_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/follow_prize/get_follow_prize_detail",
        "description": "Get detailed information about a follow prize activity",
        "query_params": {
          "campaign_id": "number (required)"
        },
        "response_fields": [
          "campaign_status",
          "campaign_id",
          "usage_quantity",
          "start_time",
          "end_time",
          "min_spend",
          "reward_type",
          "follow_prize_name",
          "discount_amount",
          "percentage",
          "max_price"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/follow_prize/get_follow_prize_list",
        "description": "Get a list of follow prize activities with pagination",
        "query_params": {
          "status": "object (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "more",
          "follow_prize_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/follow_prize/update_follow_prize",
        "description": "Update an existing follow prize activity",
        "body_params": {
          "campaign_id": "number (required)",
          "follow_prize_name": "string",
          "start_time": "number",
          "end_time": "number",
          "usage_quantity": "number",
          "min_spend": "number"
        },
        "response_fields": [
          "campagin_id"
        ]
      }
    ],
    "global_product": [
      {
        "method": "POST",
        "path": "/api/v2/global_product/add_global_item",
        "description": "Add a global item",
        "body_params": {
          "category_id": "number (required)",
          "global_item_name": "string (required)",
          "description": "string (required)",
          "global_item_sku": "string",
          "weight": "number",
          "dimension": "object",
          "image": "object (required)",
          "video_info": "object",
          "attribute_list": "array",
          "brand": "object",
          "condition": "string",
          "gtin_code": "string",
          "description_type": "string",
          "description_info": "object"
        },
        "response_fields": [
          "global_item_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/add_global_model",
        "description": "Add global models",
        "body_params": {
          "global_item_id": "number (required)",
          "model_list": "array (required)"
        },
        "response_fields": [
          "model_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/category_recommend",
        "description": "Get category recommendation",
        "body_params": {
          "global_item_name": "string (required)"
        },
        "response_fields": [
          "category_id_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/create_publish_task",
        "description": "Create publish task",
        "body_params": {
          "global_item_id": "number (required)",
          "shop_list": "array (required)"
        },
        "response_fields": [
          "publish_task_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/delete_global_item",
        "description": "Delete a global item",
        "body_params": {
          "global_item_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/delete_global_model",
        "description": "Delete global models",
        "body_params": {
          "global_item_id": "number (required)",
          "global_model_id_list": "array (required)"
        },
        "response_fields": [
          "model_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_attribute_tree",
        "description": "Get attribute tree",
        "query_params": {
          "category_id": "number (required)",
          "language": "string"
        },
        "response_fields": [
          "attribute_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_brand_list",
        "description": "Get brand list",
        "query_params": {
          "category_id": "number (required)",
          "offset": "number",
          "page_size": "number (required)",
          "status": "number",
          "language": "string"
        },
        "response_fields": [
          "brand_list",
          "has_next_page",
          "next_offset",
          "total_count"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_category",
        "description": "Get global category list",
        "query_params": {
          "language": "string"
        },
        "response_fields": [
          "category_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_global_item_id",
        "description": "Get global item ID by shop item ID",
        "query_params": {
          "shop_id": "number (required)",
          "item_id": "number (required)"
        },
        "response_fields": [
          "global_item_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_global_item_info",
        "description": "Get global item information",
        "query_params": {
          "global_item_id_list": "array (required)"
        },
        "response_fields": [
          "global_item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_global_item_limit",
        "description": "Get global item limit",
        "query_params": {
          "category_id": "number (required)"
        },
        "response_fields": [
          "limit_info"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_global_item_list",
        "description": "Get global item list",
        "query_params": {
          "offset": "string",
          "page_size": "number (required)",
          "update_time_from": "number",
          "update_time_to": "number"
        },
        "response_fields": [
          "global_item_list",
          "total_count",
          "has_next_page",
          "offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_global_model_list",
        "description": "Get global model list",
        "query_params": {
          "global_item_id": "number (required)"
        },
        "response_fields": [
          "tier_variation",
          "global_model"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_local_adjustment_rate",
        "description": "Get local adjustment rate",
        "query_params": {
          "global_item_id": "number (required)",
          "shop_id_list": "array (required)"
        },
        "response_fields": [
          "adjustment_rate_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_publish_task_result",
        "description": "Get publish task result",
        "query_params": {
          "publish_task_id": "string (required)"
        },
        "response_fields": [
          "status",
          "result_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_publishable_shop",
        "description": "Get publishable shop list",
        "query_params": {
          "global_item_id": "number (required)"
        },
        "response_fields": [
          "shop_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_published_list",
        "description": "Get published list",
        "query_params": {
          "global_item_id": "number (required)"
        },
        "response_fields": [
          "shop_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_recommend_attribute",
        "description": "Get recommended attributes",
        "query_params": {
          "global_item_id": "number (required)"
        },
        "response_fields": [
          "attribute_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_shop_publishable_status",
        "description": "Get shop publishable status",
        "query_params": {
          "global_item_id": "number (required)",
          "shop_id_list": "array (required)"
        },
        "response_fields": [
          "shop_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_size_chart_detail",
        "description": "Get size chart detail",
        "query_params": {
          "size_chart_id": "string (required)"
        },
        "response_fields": [
          "size_chart"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_size_chart_list",
        "description": "Get size chart list",
        "query_params": {
          "offset": "number",
          "page_size": "number (required)"
        },
        "response_fields": [
          "size_chart_list",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/get_variations",
        "description": "Get variations",
        "query_params": {
          "global_item_id": "number (required)"
        },
        "response_fields": [
          "tier_variation"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/init_tier_variation",
        "description": "Initialize tier variation",
        "body_params": {
          "global_item_id": "number (required)",
          "tier_variation": "array (required)",
          "model_list": "array (required)"
        },
        "response_fields": [
          "model_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/search_global_attribute_value_list",
        "description": "Search global attribute value list",
        "body_params": {
          "category_id": "number (required)",
          "attribute_id": "number (required)",
          "keyword": "string (required)",
          "language": "string",
          "page_num": "number",
          "page_size": "number"
        },
        "response_fields": [
          "attribute_value_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/set_sync_field",
        "description": "Set sync field",
        "body_params": {
          "global_item_id": "number (required)",
          "shop_list": "array (required)"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/global_product/support_size_chart",
        "description": "Check size chart support",
        "query_params": {
          "category_id": "number (required)"
        },
        "response_fields": [
          "support"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/update_global_item",
        "description": "Update a global item",
        "body_params": {
          "global_item_id": "number (required)",
          "category_id": "number",
          "global_item_name": "string",
          "description": "string",
          "global_item_sku": "string",
          "weight": "number",
          "dimension": "object",
          "image": "object",
          "video_info": "object",
          "attribute_list": "array",
          "brand": "object",
          "condition": "string",
          "gtin_code": "string",
          "description_type": "string",
          "description_info": "object"
        },
        "response_fields": [
          "global_item_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/update_global_model",
        "description": "Update global models",
        "body_params": {
          "global_item_id": "number (required)",
          "model_list": "array (required)"
        },
        "response_fields": [
          "model_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/update_local_adjustment_rate",
        "description": "Update local adjustment rate",
        "body_params": {
          "global_item_id": "number (required)",
          "adjustment_rate_list": "array (required)"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/update_price",
        "description": "Update global item price",
        "body_params": {
          "global_item_id": "number (required)",
          "price_list": "array (required)"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/update_size_chart",
        "description": "Update size chart",
        "body_params": {
          "size_chart_id": "string (required)",
          "size_chart_name": "string",
          "size_chart_table": "object"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/update_stock",
        "description": "Update global item stock",
        "body_params": {
          "global_item_id": "number (required)",
          "stock_list": "array (required)"
        },
        "response_fields": [
          "result_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/global_product/update_tier_variation",
        "description": "Update tier variation",
        "body_params": {
          "global_item_id": "number (required)",
          "tier_variation": "array (required)"
        }
      }
    ],
    "livestream": [
      {
        "method": "POST",
        "path": "/api/v2/livestream/add_item_list",
        "description": "Add items to a livestream session's shopping bag.",
        "body_params": {
          "shop_category_id": "number (required)",
          "item_list": "array (required)"
        },
        "response_fields": [
          "shop_category_id",
          "current_count",
          "invalid_item_id_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/apply_item_set",
        "description": "Apply a pre-defined item set to a livestream session.",
        "body_params": {
          "session_id": "number (required)",
          "item_set_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/ban_user_comment",
        "description": "Ban a user from commenting in a livestream session.",
        "body_params": {
          "session_id": "number (required)",
          "user_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/create_session",
        "description": "Create a new livestream session with basic information.",
        "body_params": {
          "title": "string (required)",
          "description": "string",
          "cover_image_url": "string (required)",
          "is_test": "boolean"
        },
        "response_fields": [
          "session_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/delete_item_list",
        "description": "Delete items from a livestream session's shopping bag.",
        "body_params": {
          "shop_category_id": "number (required)",
          "item_list": "array (required)"
        },
        "response_fields": [
          "shop_category_id",
          "current_count",
          "invalid_item_id_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/delete_show_item",
        "description": "Remove the currently displayed item from a livestream session.",
        "body_params": {
          "session_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/end_session",
        "description": "End a livestream session.",
        "body_params": {
          "session_id": "number (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_item_count",
        "description": "Get the total count of items in a livestream session's shopping bag.",
        "query_params": {
          "session_id": "number (required)"
        },
        "response_fields": [
          "total_count"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_item_list",
        "description": "Get the list of items in a livestream session's shopping bag.",
        "query_params": {
          "offset": "number (required)",
          "page_size": "number (required)",
          "update_time_from": "number",
          "update_time_to": "number",
          "item_status": "array (required)"
        },
        "response_fields": [
          "item",
          "total_count",
          "has_next_page",
          "next_offset"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_item_set_item_list",
        "description": "Get the items in a specific item set.",
        "query_params": {
          "item_set_id": "number (required)",
          "offset": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "more",
          "next_offset",
          "list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_item_set_list",
        "description": "Get the list of available item sets.",
        "query_params": {
          "offset": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "more",
          "next_offset",
          "list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_latest_comment_list",
        "description": "Get the latest comments from a livestream session.",
        "query_params": {
          "session_id": "number (required)",
          "offset": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "more",
          "next_offset",
          "list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_like_item_list",
        "description": "Get items that viewers liked during the livestream session.",
        "query_params": {
          "session_id": "number (required)",
          "offset": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "more",
          "next_offset",
          "list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_recent_item_list",
        "description": "Get recently added items in a livestream session.",
        "query_params": {
          "session_id": "number (required)",
          "offset": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "more",
          "next_offset",
          "list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_session_detail",
        "description": "Get basic information about a livestream session including cover, title, description,",
        "query_params": {
          "session_id": "number (required)"
        },
        "response_fields": [
          "session_id",
          "title",
          "description",
          "cover_image_url",
          "status",
          "share_url",
          "is_test",
          "create_time",
          "update_time",
          "start_time",
          "end_time",
          "stream_url_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_session_item_metric",
        "description": "Get item-level metrics for a livestream session.",
        "query_params": {
          "session_id": "number (required)",
          "offset": "number (required)",
          "page_size": "number (required)"
        },
        "response_fields": [
          "more",
          "next_offset",
          "list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_session_metric",
        "description": "Get metrics for a livestream session including GMV, orders, viewers, engagement metrics.",
        "query_params": {
          "session_id": "number (required)"
        },
        "response_fields": [
          "gmv",
          "atc",
          "ctr",
          "co",
          "orders",
          "ccu",
          "engage_ccu_1m",
          "peak_ccu",
          "likes",
          "comments",
          "shares",
          "views",
          "avg_viewing_duration"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/livestream/get_show_item",
        "description": "Get the currently displayed item in a livestream session.",
        "query_params": {
          "session_id": "number (required)"
        },
        "response_fields": [
          "item"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/post_comment",
        "description": "Post a comment to a livestream session.",
        "body_params": {
          "session_id": "number (required)",
          "comment": "string (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/start_session",
        "description": "Start a livestream session.",
        "body_params": {
          "session_id": "number (required)",
          "domain_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/unban_user_comment",
        "description": "Unban a user from commenting in a livestream session.",
        "body_params": {
          "session_id": "number (required)",
          "user_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/update_item_list",
        "description": "Update the order of items in a livestream session's shopping bag.",
        "body_params": {
          "session_id": "number (required)",
          "item_list": "array (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/update_session",
        "description": "Update basic information of a livestream session.",
        "body_params": {
          "session_id": "number (required)",
          "title": "string",
          "description": "string",
          "cover_image_url": "string"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/update_show_item",
        "description": "Update which item to display in a livestream session.",
        "body_params": {
          "session_id": "number (required)",
          "item_id": "number (required)",
          "shop_id": "number (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/livestream/upload_image",
        "description": "Upload an image for use in livestream (e.g., cover image).",
        "body_params": {
          "image": "object (required)",
          "scene": "object",
          "ratio": "object"
        },
        "response_fields": [
          "image_info",
          "image_info_list"
        ]
      }
    ],
    "media": [
      {
        "method": "POST",
        "path": "/api/v2/media/upload_image",
        "description": "Upload images for specific business scenarios (e.g., returns)",
        "body_params": {
          "business": "object (required)",
          "scene": "object (required)",
          "images": "object (required)"
        },
        "response_fields": [
          "image_list"
        ]
      }
    ],
    "media_space": [
      {
        "method": "POST",
        "path": "/api/v2/media_space/cancel_video_upload",
        "description": "Cancel a video upload session.",
        "body_params": {
          "video_upload_id": "string (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/media_space/complete_video_upload",
        "description": "Complete the video upload and start the transcoding process when all parts are uploaded successfully.",
        "body_params": {
          "video_upload_id": "string (required)",
          "part_seq_list": "array (required)",
          "report_data": "object (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/media_space/get_video_upload_result",
        "description": "Query the upload status and result of video upload.",
        "query_params": {
          "video_upload_id": "string (required)"
        },
        "response_fields": [
          "status",
          "message",
          "video_info"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/media_space/init_video_upload",
        "description": "Initiate video upload session.",
        "body_params": {
          "file_md5": "string (required)",
          "file_size": "number (required)"
        },
        "response_fields": [
          "video_upload_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/media_space/upload_image",
        "description": "Upload multiple image files to MediaSpace (less than 9 images).",
        "body_params": {
          "image": "object (required)",
          "scene": "object",
          "ratio": "object"
        },
        "response_fields": [
          "image_info",
          "image_info_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/media_space/upload_video_part",
        "description": "Upload video file by part using the upload_id from initVideoUpload.",
        "body_params": {
          "video_upload_id": "string (required)",
          "part_seq": "number (required)",
          "content_md5": "string (required)",
          "part_content": "object (required)"
        }
      }
    ],
    "push": [
      {
        "method": "POST",
        "path": "/api/v2/push/confirm_consumed_lost_push_message",
        "description": "Confirm that lost push messages have been consumed up to a specific message ID",
        "body_params": {
          "last_message_id": "number (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/push/get_app_push_config",
        "description": "push get_app_push_config",
        "response_fields": [
          "callback_url",
          "live_push_status",
          "suspended_time",
          "blocked_shop_id",
          "push_config_on_list",
          "push_config_off_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/push/get_lost_push_message",
        "description": "Get the lost push messages that were lost within 3 days of the current time and not confirmed to have been consumed",
        "response_fields": [
          "push_message_list",
          "has_next_page",
          "last_message_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/push/set_app_push_config",
        "description": "push set_app_push_config",
        "body_params": {
          "callback_url": "string",
          "set_push_config_on": "array",
          "set_push_config_off": "array",
          "blocked_shop_id_list": "array"
        },
        "response_fields": [
          "result"
        ]
      }
    ],
    "sbs": [
      {
        "method": "GET",
        "path": "/api/v2/sbs/get_bound_whs_info",
        "description": "Get bound warehouse by shop id.",
        "response_fields": [
          "list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/sbs/get_current_inventory",
        "description": "Get Seller Center Current Inventory Page Data.",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "search_type": "number",
          "keyword": "string",
          "whs_ids": "string",
          "not_moving_tag": "number",
          "inbound_pending_approval": "number",
          "products_with_inventory": "number",
          "category_id": "number",
          "stock_levels": "string",
          "whs_region": "string (required)"
        },
        "response_fields": [
          "cursor",
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/sbs/get_expiry_report",
        "description": "Get Seller Center Expiry Report page data.",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "whs_ids": "string",
          "expiry_status": "string",
          "category_id_l1": "number",
          "sku_id": "string",
          "item_id": "string",
          "variation": "string",
          "item_name": "string",
          "whs_region": "string (required)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/sbs/get_stock_aging",
        "description": "Get Seller Center Stock Aging page data.",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "search_type": "number",
          "keyword": "string",
          "whs_ids": "string",
          "aging_storage_tag": "number",
          "excess_storage_tag": "number",
          "category_id": "number",
          "whs_region": "string (required)"
        },
        "response_fields": [
          "item_list"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/sbs/get_stock_movement",
        "description": "Get Seller Center Stock Movement page data.",
        "query_params": {
          "page_no": "number",
          "page_size": "number",
          "start_time": "string (required)",
          "end_time": "string (required)",
          "whs_ids": "string",
          "category_id_l1": "number",
          "sku_id": "string",
          "item_id": "string",
          "item_name": "string",
          "variation": "string",
          "whs_region": "string (required)"
        },
        "response_fields": [
          "total",
          "start_time",
          "end_time",
          "query_end_time",
          "item_list"
        ]
      }
    ],
    "shop_flash_sale": [
      {
        "method": "POST",
        "path": "/api/v2/shop_flash_sale/add_shop_flash_sale_items",
        "description": "Add items to shop flash sale",
        "body_params": {
          "flash_sale_id": "number (required)",
          "items": "array (required)"
        },
        "response_fields": [
          "failed_items"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_flash_sale/create_shop_flash_sale",
        "description": "Create a new shop flash sale",
        "body_params": {
          "timeslot_id": "number (required)"
        },
        "response_fields": [
          "timeslot_id",
          "flash_sale_id",
          "status"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_flash_sale/delete_shop_flash_sale",
        "description": "Delete shop flash sale",
        "body_params": {
          "flash_sale_id": "number (required)"
        },
        "response_fields": [
          "timeslot_id",
          "flash_sale_id",
          "status"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_flash_sale/delete_shop_flash_sale_items",
        "description": "Delete items from shop flash sale",
        "body_params": {
          "flash_sale_id": "number (required)",
          "item_ids": "array (required)"
        },
        "response_fields": [
          "failed_items"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop_flash_sale/get_item_criteria",
        "description": "Get item criteria for shop flash sale",
        "response_fields": [
          "criteria",
          "pair_ids",
          "overlap_block_category_ids"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop_flash_sale/get_shop_flash_sale",
        "description": "Get shop flash sale details",
        "query_params": {
          "flash_sale_id": "number (required)"
        },
        "response_fields": [
          "timeslot_id",
          "flash_sale_id",
          "status",
          "start_time",
          "end_time",
          "enabled_item_count",
          "item_count",
          "type"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop_flash_sale/get_shop_flash_sale_items",
        "description": "Get shop flash sale items",
        "query_params": {
          "flash_sale_id": "number (required)",
          "offset": "number (required)",
          "limit": "number (required)"
        },
        "response_fields": [
          "total_count",
          "models",
          "item_info"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop_flash_sale/get_shop_flash_sale_list",
        "description": "Get shop flash sale list",
        "query_params": {
          "type": "object (required)",
          "start_time": "number",
          "end_time": "number",
          "offset": "number (required)",
          "limit": "number (required)"
        },
        "response_fields": [
          "total_count"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/shop_flash_sale/get_time_slot_id",
        "description": "Get available time slot IDs",
        "query_params": {
          "start_time": "number (required)",
          "end_time": "number (required)"
        },
        "response_fields": [
          "timeslot_id",
          "start_time",
          "end_time"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_flash_sale/update_shop_flash_sale",
        "description": "Update shop flash sale status",
        "body_params": {
          "flash_sale_id": "number (required)",
          "status": "object (required)"
        },
        "response_fields": [
          "timeslot_id",
          "flash_sale_id",
          "status"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/shop_flash_sale/update_shop_flash_sale_items",
        "description": "Update shop flash sale items",
        "body_params": {
          "flash_sale_id": "number (required)",
          "items": "array (required)"
        },
        "response_fields": [
          "failed_items"
        ]
      }
    ],
    "top_picks": [
      {
        "method": "POST",
        "path": "/api/v2/top_picks/add_top_picks",
        "description": "Add a new top picks collection",
        "body_params": {
          "name": "string (required)",
          "item_id_list": "array (required)",
          "is_activated": "boolean (required)"
        },
        "response_fields": [
          "collection_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/top_picks/delete_top_picks",
        "description": "Delete an existing top picks collection",
        "body_params": {
          "top_picks_id": "number (required)"
        },
        "response_fields": [
          "top_picks_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/top_picks/get_top_picks_list",
        "description": "Get all top picks collections for the shop",
        "response_fields": [
          "collection_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/top_picks/update_top_picks",
        "description": "Update an existing top picks collection",
        "body_params": {
          "top_picks_id": "number (required)",
          "name": "string",
          "item_id_list": "array",
          "is_activated": "boolean"
        },
        "response_fields": [
          "collection_list"
        ]
      }
    ],
    "video": [
      {
        "method": "POST",
        "path": "/api/v2/video/delete_video",
        "description": "Delete video",
        "body_params": {
          "videoUploadIdList": "array",
          "postIdList": "array"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/video/edit_video_info",
        "description": "Edit video information",
        "body_params": {
          "videoUploadList": "array (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_cover_list",
        "description": "Get cover list",
        "query_params": {
          "videoUploadId": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_metric_trend",
        "description": "Get metric trend",
        "query_params": {
          "periodType": "string (required)",
          "endDate": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_overview_performance",
        "description": "Get overview performance",
        "query_params": {
          "periodType": "string (required)",
          "endDate": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_prodcut_performance_list",
        "description": "Get product performance list",
        "query_params": {
          "pageNo": "number (required)",
          "pageSize": "number (required)",
          "periodType": "string (required)",
          "endDate": "string (required)",
          "orderBy": "string (required)",
          "sort": "string (required)",
          "itemId": "number",
          "itemName": "string"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_user_demographics",
        "description": "Get user demographics"
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_video_detail",
        "description": "Get video detail",
        "query_params": {
          "videoUploadId": "string",
          "postId": "string"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_video_detail_audience_distribution",
        "description": "Get video detail audience distribution",
        "query_params": {
          "postId": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_video_detail_metric_trend",
        "description": "Get video detail metric trend",
        "query_params": {
          "postId": "string (required)",
          "metricName": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_video_detail_performance",
        "description": "Get video detail performance",
        "query_params": {
          "postId": "string (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_video_detail_product_performance",
        "description": "Get video detail product performance",
        "query_params": {
          "pageNo": "number (required)",
          "pageSize": "number (required)",
          "postId": "string (required)",
          "itemId": "number",
          "itemName": "string"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_video_list",
        "description": "Get video list",
        "query_params": {
          "pageNo": "number (required)",
          "pageSize": "number (required)",
          "listType": "number (required)"
        }
      },
      {
        "method": "GET",
        "path": "/api/v2/video/get_video_performance_list",
        "description": "Get video performance list",
        "query_params": {
          "pageNo": "number (required)",
          "pageSize": "number (required)",
          "periodType": "string (required)",
          "endDate": "string (required)",
          "caption": "string",
          "orderBy": "string (required)",
          "sort": "string (required)"
        }
      },
      {
        "method": "POST",
        "path": "/api/v2/video/post_video",
        "description": "Post video",
        "body_params": {
          "videoUploadIdList": "array (required)"
        }
      }
    ],
    "voucher": [
      {
        "method": "POST",
        "path": "/api/v2/voucher/add_voucher",
        "description": "Add a new voucher",
        "body_params": {
          "voucher_name": "string (required)",
          "voucher_code": "string (required)",
          "start_time": "number (required)",
          "end_time": "number (required)",
          "voucher_type": "number (required)",
          "reward_type": "number (required)",
          "usage_quantity": "number (required)",
          "min_basket_price": "number (required)",
          "discount_amount": "number",
          "percentage": "number",
          "max_price": "number",
          "display_channel_list": "array",
          "item_id_list": "array",
          "display_start_time": "number"
        },
        "response_fields": [
          "voucher_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/voucher/delete_voucher",
        "description": "Delete an existing voucher",
        "body_params": {
          "voucher_id": "number (required)"
        },
        "response_fields": [
          "voucher_id"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/voucher/end_voucher",
        "description": "End an ongoing voucher immediately",
        "body_params": {
          "voucher_id": "number (required)"
        },
        "response_fields": [
          "voucher_id"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/voucher/get_voucher",
        "description": "Get detailed information about a voucher",
        "query_params": {
          "voucher_id": "number (required)"
        },
        "response_fields": [
          "voucher_id",
          "voucher_code",
          "voucher_name",
          "voucher_type",
          "reward_type",
          "usage_quantity",
          "current_usage",
          "start_time",
          "end_time",
          "is_admin",
          "voucher_purpose",
          "display_channel_list",
          "min_basket_price",
          "percentage",
          "max_price",
          "discount_amount",
          "cmt_voucher_status",
          "item_id_list",
          "display_start_time",
          "target_voucher",
          "usecase"
        ]
      },
      {
        "method": "GET",
        "path": "/api/v2/voucher/get_voucher_list",
        "description": "Get a list of vouchers with pagination",
        "query_params": {
          "status": "object (required)",
          "page_no": "number",
          "page_size": "number"
        },
        "response_fields": [
          "more",
          "voucher_list"
        ]
      },
      {
        "method": "POST",
        "path": "/api/v2/voucher/update_voucher",
        "description": "Update an existing voucher",
        "body_params": {
          "voucher_id": "number (required)",
          "voucher_name": "string",
          "start_time": "number",
          "end_time": "number",
          "usage_quantity": "number",
          "min_basket_price": "number",
          "discount_amount": "number",
          "percentage": "number",
          "max_price": "number",
          "display_channel_list": "array",
          "item_id_list": "array",
          "display_start_time": "number"
        },
        "response_fields": [
          "voucher_id"
        ]
      }
    ]
  }
}