thewoksoflife.com Open in urlscan Pro
2606:4700:20::ac43:46d1  Public Scan

URL: https://thewoksoflife.com/chinese-roast-duck/
Submission Tags: falconsandbox
Submission: On October 02 via api from US — Scanned from DE

Form analysis 9 forms found in the DOM

GET https://thewoksoflife.com/

<form class="search-form" method="get" action="https://thewoksoflife.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-1">Search</label><input class="search-form-input" type="search" name="s" id="searchform-1"
    placeholder="Search"><input class="search-form-submit" type="submit" value="Search">
  <meta content="https://thewoksoflife.com/?s={s}">
  <div class="search-submit-icon"><span class="icon-font icon-search"></span></div>
</form>

GET https://thewoksoflife.com/

<form class="search-form" method="get" action="https://thewoksoflife.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-2">Search</label><input class="search-form-input" type="search" name="s" id="searchform-2"
    placeholder="Search"><input class="search-form-submit" type="submit" value="Search">
  <meta content="https://thewoksoflife.com/?s={s}">
  <div class="search-submit-icon"><span class="icon-font icon-search"></span></div>
</form>

POST https://thewoksoflife.com/wp-admin/admin-ajax.php?action=wpdAddSubscription

<form action="https://thewoksoflife.com/wp-admin/admin-ajax.php?action=wpdAddSubscription" method="post" id="wpdiscuz-subscribe-form">
  <div class="wpdiscuz-subscribe-form-intro">Notify of </div>
  <div class="wpdiscuz-subscribe-form-option" style="width:40%;">
    <select class="wpdiscuz_select" name="wpdiscuzSubscriptionType">
      <option value="post">new follow-up comments</option>
      <option value="all_comment">new replies to my comments</option>
    </select>
  </div>
  <div class="wpdiscuz-item wpdiscuz-subscribe-form-email">
    <input class="email" type="email" name="wpdiscuzSubscriptionEmail" required="required" value="" placeholder="Email">
  </div>
  <div class="wpdiscuz-subscribe-form-button">
    <input id="wpdiscuz_subscription_button" class="wpd-prim-button wpd_not_clicked" type="submit" value="›" name="wpdiscuz_subscription_button">
  </div>
  <input type="hidden" id="wpdiscuz_subscribe_form_nonce" name="wpdiscuz_subscribe_form_nonce" value="d23f455b0f"><input type="hidden" name="_wp_http_referer" value="/chinese-roast-duck/">
</form>

POST

<form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd_main_comm_form">
  <div class="wpd-field-comment">
    <div class="wpdiscuz-item wc-field-textarea">
      <div class="wpdiscuz-textarea-wrap wpd-txt">
        <div class="wpd-avatar">
          <img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2056%2056'%3E%3C/svg%3E" width="56" height="56" alt="guest" class="avatar avatar-56 wp-user-avatar wp-user-avatar-56 photo avatar-default"
            data-lazy-src="https://thewoksoflife.com/wp-content/uploads/2022/06/cropped-TWOL-favicon-3-60x60.png"><noscript><img src="https://thewoksoflife.com/wp-content/uploads/2022/06/cropped-TWOL-favicon-3-60x60.png" width="56" height="56"
              alt="guest" class="avatar avatar-56 wp-user-avatar wp-user-avatar-56 photo avatar-default"></noscript>
        </div>
        <div class="wpd-textarea-wrap">
          <div id="wpd-editor-char-counter-0_0" class="wpd-editor-char-counter"></div>
          <label style="display: none;" for="wc-textarea-0_0">Label</label>
          <textarea id="wc-textarea-0_0" placeholder="Join the discussion" aria-label="Join the discussion" name="wc_comment" class="wc_comment wpd-field"></textarea>
        </div>
        <div class="wpd-editor-buttons-right">
        </div>
      </div>
    </div>
  </div>
  <div class="wpd-form-foot">
    <div class="wpdiscuz-textarea-foot">
      <div class="comment-form-wprm-rating">
        <label for="wprm-comment-rating-1079840800">Rate this recipe:</label> <span class="wprm-rating-stars">
          <fieldset class="wprm-comment-ratings-container" data-original-rating="0" data-current-rating="0">
            <legend>Rate this recipe:</legend>
            <input aria-label="Don't rate this recipe" name="wprm-comment-rating" value="0" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="margin-left: -31px !important; width: 34px !important; height: 34px !important;"
              checked="checked"><span aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px"
                height="16px" viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-0" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                </defs>
                <use xlink:href="#wprm-star-empty-0" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-0" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-0" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-0" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-0" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 1 out of 5 stars" name="wprm-comment-rating" value="1" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
              aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
                viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-1" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                  <path class="wprm-star-full" id="wprm-star-full-1" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-1" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-1" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-1" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-1" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-1" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 2 out of 5 stars" name="wprm-comment-rating" value="2" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
              aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
                viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-2" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                  <path class="wprm-star-full" id="wprm-star-full-2" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-2" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-2" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-2" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-2" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-2" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 3 out of 5 stars" name="wprm-comment-rating" value="3" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
              aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
                viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-3" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                  <path class="wprm-star-full" id="wprm-star-full-3" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-3" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-3" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-3" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-3" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-3" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 4 out of 5 stars" name="wprm-comment-rating" value="4" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
              aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
                viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-4" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                  <path class="wprm-star-full" id="wprm-star-full-4" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-4" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-4" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-4" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-4" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-4" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 5 out of 5 stars" name="wprm-comment-rating" value="5" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" id="wprm-comment-rating-1079840800"
              style="width: 34px !important; height: 34px !important;"><span aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
                y="0px" width="97.142857142857px" height="16px" viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <path class="wprm-star-full" id="wprm-star-full-5" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-5" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-5" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-5" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-5" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-5" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span>
          </fieldset>
        </span>
      </div>
      <div class="wpdiscuz-button-actions"></div>
    </div>
    <div class="wpd-form-row">
      <div class="wpd-form-col-left">
        <div class="wpdiscuz-item wc_name-wrapper wpd-has-icon">
          <div class="wpd-field-icon"><i class="fas fa-user"></i>
          </div>
          <input id="wc_name-0_0" value="" required="required" aria-required="true" class="wc_name wpd-field" type="text" name="wc_name" placeholder="Name*" maxlength="50" pattern=".{3,50}" title="">
          <label for="wc_name-0_0" class="wpdlb">Name*</label>
        </div>
        <div class="wpdiscuz-item wc_email-wrapper wpd-has-icon">
          <div class="wpd-field-icon"><i class="fas fa-at"></i>
          </div>
          <input id="wc_email-0_0" value="" required="required" aria-required="true" class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*">
          <label for="wc_email-0_0" class="wpdlb">Email*</label>
        </div>
      </div>
      <div class="wpd-form-col-right">
        <div class="wc-field-submit">
          <input id="wpd-field-submit-0_0" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Post Comment" aria-label="Post Comment">
        </div>
      </div>
      <div class="clearfix"></div>
    </div>
  </div>
  <input type="hidden" class="wpdiscuz_unique_id" value="0_0" name="wpdiscuz_unique_id">
  <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="c793987762"></p>
  <p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="104">
    <script type="rocketlazyloadscript">document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script>
  </p>
</form>

POST

<form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd-secondary-form-wrapper">
  <div class="wpd-field-comment">
    <div class="wpdiscuz-item wc-field-textarea">
      <div class="wpdiscuz-textarea-wrap wpd-txt">
        <div class="wpd-avatar">
          <img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2056%2056'%3E%3C/svg%3E" width="56" height="56" alt="guest" class="avatar avatar-56 wp-user-avatar wp-user-avatar-56 photo avatar-default"
            data-lazy-src="https://thewoksoflife.com/wp-content/uploads/2022/06/cropped-TWOL-favicon-3-60x60.png"><noscript><img src="https://thewoksoflife.com/wp-content/uploads/2022/06/cropped-TWOL-favicon-3-60x60.png" width="56" height="56"
              alt="guest" class="avatar avatar-56 wp-user-avatar wp-user-avatar-56 photo avatar-default"></noscript>
        </div>
        <div class="wpd-textarea-wrap">
          <div id="wpd-editor-char-counter-wpdiscuzuniqueid" class="wpd-editor-char-counter"></div>
          <label style="display: none;" for="wc-textarea-wpdiscuzuniqueid">Label</label>
          <textarea id="wc-textarea-wpdiscuzuniqueid" placeholder="Join the discussion" aria-label="Join the discussion" name="wc_comment" class="wc_comment wpd-field"></textarea>
        </div>
        <div class="wpd-editor-buttons-right">
        </div>
      </div>
    </div>
  </div>
  <div class="wpd-form-foot">
    <div class="wpdiscuz-textarea-foot">
      <div class="comment-form-wprm-rating">
        <label for="wprm-comment-rating-1486073266">Rate this recipe:</label> <span class="wprm-rating-stars">
          <fieldset class="wprm-comment-ratings-container" data-original-rating="0" data-current-rating="0">
            <legend>Rate this recipe:</legend>
            <input aria-label="Don't rate this recipe" name="wprm-comment-rating" value="0" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="margin-left: -31px !important; width: 34px !important; height: 34px !important;"
              checked="checked"><span aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px"
                height="16px" viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-0" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                </defs>
                <use xlink:href="#wprm-star-empty-0" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-0" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-0" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-0" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-0" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 1 out of 5 stars" name="wprm-comment-rating" value="1" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
              aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
                viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-1" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                  <path class="wprm-star-full" id="wprm-star-full-1" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-1" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-1" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-1" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-1" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-1" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 2 out of 5 stars" name="wprm-comment-rating" value="2" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
              aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
                viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-2" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                  <path class="wprm-star-full" id="wprm-star-full-2" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-2" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-2" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-2" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-2" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-2" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 3 out of 5 stars" name="wprm-comment-rating" value="3" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
              aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
                viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-3" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                  <path class="wprm-star-full" id="wprm-star-full-3" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-3" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-3" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-3" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-3" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-3" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 4 out of 5 stars" name="wprm-comment-rating" value="4" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
              aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
                viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <polygon class="wprm-star-empty" id="wprm-star-empty-4" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
                    stroke-linejoin="miter"></polygon>
                  <path class="wprm-star-full" id="wprm-star-full-4" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-4" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-4" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-4" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-4" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-empty-4" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span><br><input aria-label="Rate this recipe 5 out of 5 stars" name="wprm-comment-rating" value="5" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" id="wprm-comment-rating-1486073266"
              style="width: 34px !important; height: 34px !important;"><span aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
                y="0px" width="97.142857142857px" height="16px" viewBox="0 0 145.71428571429 29.142857142857">
                <defs>
                  <path class="wprm-star-full" id="wprm-star-full-5" fill="#222222"
                    d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
                  </path>
                </defs>
                <use xlink:href="#wprm-star-full-5" x="2.5714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-5" x="31.714285714286" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-5" x="60.857142857143" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-5" x="90" y="2.5714285714286"></use>
                <use xlink:href="#wprm-star-full-5" x="119.14285714286" y="2.5714285714286"></use>
              </svg></span>
          </fieldset>
        </span>
      </div>
      <div class="wpdiscuz-button-actions"></div>
    </div>
    <div class="wpd-form-row">
      <div class="wpd-form-col-left">
        <div class="wpdiscuz-item wc_name-wrapper wpd-has-icon">
          <div class="wpd-field-icon"><i class="fas fa-user"></i>
          </div>
          <input id="wc_name-wpdiscuzuniqueid" value="" required="required" aria-required="true" class="wc_name wpd-field" type="text" name="wc_name" placeholder="Name*" maxlength="50" pattern=".{3,50}" title="">
          <label for="wc_name-wpdiscuzuniqueid" class="wpdlb">Name*</label>
        </div>
        <div class="wpdiscuz-item wc_email-wrapper wpd-has-icon">
          <div class="wpd-field-icon"><i class="fas fa-at"></i>
          </div>
          <input id="wc_email-wpdiscuzuniqueid" value="" required="required" aria-required="true" class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*">
          <label for="wc_email-wpdiscuzuniqueid" class="wpdlb">Email*</label>
        </div>
      </div>
      <div class="wpd-form-col-right">
        <div class="wc-field-submit">
          <input id="wpd-field-submit-wpdiscuzuniqueid" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Post Comment" aria-label="Post Comment">
        </div>
      </div>
      <div class="clearfix"></div>
    </div>
  </div>
  <input type="hidden" class="wpdiscuz_unique_id" value="wpdiscuzuniqueid" name="wpdiscuz_unique_id">
  <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="c793987762"></p>
  <p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="19">
    <script type="rocketlazyloadscript">document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script>
  </p>
</form>

POST

<form id="mc4wp-form-1" class="mc4wp-form mc4wp-form-12107 mc4wp-form-basic" method="post" data-id="12107" data-name="Default sign-up form">
  <div class="mc4wp-form-fields">
    <p><input type="text" name="FNAME" placeholder="First Name" required=""></p>
    <p><input type="email" id="mc4wp_email" name="EMAIL" placeholder="Your email address" required=""></p>
    <p><input type="submit" value="GET IT NOW"></p>
  </div><label style="display: none !important;">Leave this field empty if you're human: <input type="text" name="_mc4wp_honeypot" value="" tabindex="-1" autocomplete="off"></label><input type="hidden" name="_mc4wp_timestamp"
    value="1727747835"><input type="hidden" name="_mc4wp_form_id" value="12107"><input type="hidden" name="_mc4wp_form_element_id" value="mc4wp-form-1">
  <div class="mc4wp-response"></div>
</form>

POST

<form id="mc4wp-form-2" class="mc4wp-form mc4wp-form-12107 mc4wp-form-basic" method="post" data-id="12107" data-name="Default sign-up form">
  <div class="mc4wp-form-fields">
    <p><input type="text" name="FNAME" placeholder="First Name" required=""></p>
    <p><input type="email" id="mc4wp_email" name="EMAIL" placeholder="Your email address" required=""></p>
    <p><input type="submit" value="GET IT NOW"></p>
  </div><label style="display: none !important;">Leave this field empty if you're human: <input type="text" name="_mc4wp_honeypot" value="" tabindex="-1" autocomplete="off"></label><input type="hidden" name="_mc4wp_timestamp"
    value="1727747835"><input type="hidden" name="_mc4wp_form_id" value="12107"><input type="hidden" name="_mc4wp_form_element_id" value="mc4wp-form-2">
  <div class="mc4wp-response"></div>
</form>

GET https://thewoksoflife.com/

<form class="search-form" method="get" action="https://thewoksoflife.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-11">Search</label><input class="search-form-input" type="search" name="s" id="searchform-11"
    placeholder="Search"><input class="search-form-submit" type="submit" value="Search">
  <meta content="https://thewoksoflife.com/?s={s}">
  <div class="search-submit-icon"><span class="icon-font icon-search"></span></div>
</form>

Name: mc-embedded-subscribe-formPOST https://thewoksoflife.us7.list-manage.com/subscribe/post?u=c0ff269a59d4081b24338d690&id=02de1ed282

<form action="https://thewoksoflife.us7.list-manage.com/subscribe/post?u=c0ff269a59d4081b24338d690&amp;id=02de1ed282" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
  <input type="text" value="" name="FNAME" placeholder="first name..." class="required" id="mce-FNAME" aria-labelledby="mce-FNAME" required="">
  <input type="email" value="" name="EMAIL" placeholder="email address..." class="required email" id="mce-EMAIL" aria-labelledby="mce-EMAIL" required="">
  <input type="submit" value="DOWNLOAD NOW" name="subscribe" id="mc-embedded-subscribe" class="button" <div="">
  <div class="content__gdpr">
    <fieldset class="mc_fieldset gdprRequired mc-field-group" name="interestgroup_field">
      <label class="checkbox subfield checkbox-container" for="gdpr_2">I consent to receive emails from The Woks of Life. <input type="checkbox" id="gdpr_2" name="gdpr[2]" value="Y" class="av-checkbox required" required="">
        <span class="checkmark"></span>
      </label>
    </fieldset>
  </div>
</form>

Text Content

 * Skip to primary navigation
 * Skip to privacy navigation
 * Skip to recipes navigation
 * Skip to main content
 * Skip to primary sidebar

Facebook Instagram Pinterest YouTube
Search


The Woks of Life

a culinary genealogy

Main Menu

Display Search Bar
Surprise Me!
Search

 * Recipes
   * Recipe Index
   * All Posts by Date
   * Our Cookbook: NOW AVAILABLE!
   * Videos
 * How-To
   * Cooking Methods
   * Cooking Tools
   * Wok Guide
   * Garden/Farm
   * Culture
 * Ingredients
   * Chinese Ingredients Glossary
   * Sauces, Wines, Vinegars & Oils
   * Spices & Seasonings
   * Dried, Cured & Pickled Ingredients
   * Noodles & Wrappers
   * Rice, Grains, Flours & Starches
   * Tofu, Bean Curd & Seitan
   * Vegetables & Fungi
   * Fresh Herbs & Aromatics
 * Life & Travel
   * Family Life
   * Travel With Us
 * About Us
 * Contact
   * Press
   * Work with Us
   * Send Us A Message
 * Facebook Instagram Pinterest YouTube

JOIN OUR NEWSLETTER AND RECEIVE OUR FREE TOP 25 RECIPES BOOK!

Subscribe
Tap here to receive our FREE top 25 recipe book!
Home Recipes Chicken & Poultry Chinese Roast Duck


CHINESE ROAST DUCK

by: Bill
25 Comments
Jump to Recipe
Posted:1/11/2024Updated:4/18/2024

“A Chinese Roast Duck.” Those roast ducks glistening suspended in Chinatown
windows across the globe are iconic. They’re a culinary masterpiece—admittedly
an intimidating one to pull off at home. As you can imagine, we’ve gotten so
many questions over the years—“do we have a Cantonese roast duck recipe?” As of
last fall, when our cookbook came out, the answer has been a resounding YES! 

Understandably, you’ve probably got lots and lots of questions, so we decided to
post this recipe and do a deeper dive on the ins and outs of making a Chinese
roast duck at home. We’ve got step-by-step photos—and a full VIDEO to walk you
through it.


CHINESE ROAST DUCK: DIFFERENT TYPES!

Most people who come to us are looking for a “Chinese Roast Duck.” There are two
kinds of Chinese roast duck, which differ a lot in their flavor, preparation,
and what regions of China they come from: 



Chinese Roast Duck
Finally, a recipe for those incredible Chinese roast ducks hanging in Chinatown
windows! It's the best roast duck we've had—worth the effort! (Music: Some/Hara
Noda/epidemicsound.com)
More Videos


0 seconds of 3 minutes, 9 secondsVolume 0%

Press shift question mark to access a list of keyboard shortcuts
Keyboard ShortcutsEnabledDisabled
Play/PauseSPACE
Increase Volume↑
Decrease Volume↓
Seek Forward→
Seek Backward←
Captions On/Offc
Fullscreen/Exit Fullscreenf
Mute/Unmutem
Decrease Caption Size-
Increase Caption Size+ or =
Seek %0-9

Next Up
Postpartum Pig Feet Papaya Soup
02:38
facebook twitter Email pinterest
Linkhttps://thewoksoflife.com/chinese-roast-duck/
Copied
Live
00:00
03:09
03:09








 
 1. Peking duck: Peking duck doesn’t actually involve much seasoning, because
    the star of the show is the crispy skin. Served with mandarin pancakes or
    lotus leaf buns, hoisin sauce, scallions, cucumbers, and sometimes
    cantaloupe shreds, it’s an iconic dish, but not what we’re talking about
    today. This dish is a famous Beijing / northern Chinese delicacy. When
    Kaitlin was young, this was her often requested birthday meal that we would
    eat at our favorite restaurant in New Jersey (sadly, it changed hands a few
    times and is now closed). 
 2. Cantonese roast duck: This is what has brought us here today. It’s the
    Chinese roast duck that we eat most often, and a crown jewel in the genre of
    Hong Kong-style roast meats or siu mei, which includes other favorites like
    Cantonese crispy roast pork (siu yuk), Char siu, and Soy Sauce Chicken. It’s
    got tons more flavor than a Peking Duck, which instead relies on hoisin
    sauce as a condiment. There are layers and layers of flavor from a
    water/vinegar bath and two marinades for the cavity—one that is a seasoning
    paste and one that is a cooked, cooled sauce. There are flavors of five
    spice, scallion, garlic, ginger, bean sauce, oyster sauce, and fermented
    bean curd. In other words, one umami heavy hitter after another!!! 


BEST CHINESE ROAST DUCK RECIPE

When I think about this recipe, I can’t help but do a little dance, because it’s
SO tasty. 

I spent many, many hours (and ducks) perfecting this recipe, and it’s designed
to be extremely tasty—i.e., plenty of salt, five spice, sand ginger powder (the
secret ingredient!), ground bean sauce, and so many other yummy things. 



Watch our complete recipe tutorial over on our Youtube channel. And don’t forget
to like and subscribe if you enjoy our cooking videos :)

In fact, it’s THE best Cantonese roast duck we’ve ever eaten.



It’s probably rivaled only by the excellent roast meat we had in Hong Kong at
the legendary Joy Hing, a Cantonese siu mei spot that has been open since the
later part of the Qing Dynasty. (Okay, so the Qing Dynasty ended in 1914, but
that’s still crazy to think about, considering the Qing Dynasty began in
1636!!!!)

My buddy Dennis and my cousin Ed each tested this recipe while I was developing
it—so I know that it’s possible to do at home! Both told me that it was
definitely worth the effort. 




GET MORE INFO FROM OUR COOKBOOK!

This recipe was originally shared in our cookbook, The Woks of Life: Recipes to
Know and Love from a Chinese American Family. We wanted to make the recipe
available on the blog to encourage people to make it, but if you have the
cookbook, there are also step-by-step photos for carving the duck. You can
purchase it from your favorite bookseller!

If you’re in the U.S., get your copy from any of the retailers below, or your
local bookstore!

Pearl River Mart
Mala Market
Strand Books
Bookshop.org
Books A Million
IndieBound
Barnes & Noble
Amazon
Target

Want a signed copy? The following independent bookstores have limited numbers.
Check to see if they still have one in stock, and get it shipped to you:

Now Serving (LA)
Book Larder (Seattle)
Omnivore Books (SF)
Kitchen Arts & Letters (NYC)
Yu & Me Books (NYC)

If you live outside the U.S., check Amazon in your home country, or try the
links below, where we’ve seen the book available internationally. It’s also
available as an eBook!

Australian Retailers
Blackwell’s (UK)
Wordery
Better World Books


WHERE TO BUY A WHOLE DUCK 

Depending on where you find it, a whole Pekin duck (the most common American
breed of duck) can be a bit pricey. 



In NYC Chinatown, a whole roast duck is about $45. So, is this a money saving
recipe? Truthfully—not necessarily. 

Is this a recipe for the ultimate discerning cook who wants only the tastiest,
most flavorsome results, and a little extracurricular kitchen challenge? Yes.

That said, let’s move on to the finer points of buying a whole duck. The duck
breed you’re looking for is the Pekin duck (easy enough to remember, given the
fame of Peking duck). 

You’ll want the plumpest duck you can get your hands on, because sometimes we’ve
gotten a bit unlucky with a skinny duck, and this recipe is simply too much work
if you’re not going to get a lot of meat off the bird. 



It can sometimes be difficult to find a duck with the head intact, but rest
assured, this recipe can be made just as easily with a duck that has no head.
You just need to take a little extra care to make sure that the neck cavity is
well-sealed, using the same method as you do with the tail cavity. 


WHERE WE BUY WHOLE DUCKS: 

 * Your local Chinese grocery store (this can be hit or miss—check the frozen
   section too). 
 * If you live in Chinatown, head to a local butcher or meat market like 47
   Division St, one of the oldest butchers in NYC Chinatown! 
 * SayWeee.com usually has whole ducks, but they sell out often.
 * Find a local farm. We’re lucky to live close to Goffle Poultry Farms, which
   produces Pekin ducks that are “whole,” but without the head.


SPECIAL EQUIPMENT

You’ll need an air pump—something electric like what you would use for an air
mattress or inflatable cushion. Here are some options here OR here.



You’ll also need skewers—long and extra sturdy bamboo skewers work well, but
long, thin (not flat) metal skewers are better. 

(You can also substitute butcher’s twine and a trussing needle, but this takes a
bit more skill. You’ll have to make sure you get a tight seal.)

Optionally, you may also want some flat-edge tweezers to get rid of straggler
pin feathers. 


SERVING & STORING CANTONESE ROAST DUCK 

This duck is so tasty, there are really no condiments needed. Just a big bowl of
jasmine rice and a side of leafy green vegetables! 

This is ideal for serving 4 people if you are just cooking the duck, rice, and
vegetables. It can stretch to up to 6 people, but that would be with 1-2 other
dishes on the table, or a couple of smaller mouths to feed in the mix! 



We’d be astounded if this Cantonese roast duck hangs around your fridge for very
long. But if you’re worried about not being able to eat it fast enough, we
recommend freezing the cut pieces in an airtight container for 1-2 months. 

It won’t be ideal for eating over rice, but you can make an absolutely delicious
soup or duck noodle soup with napa cabbage. For this reason, it’s best to
prioritize eating the breast and legs, and saving bonier pieces for soup. 


CANTONESE ROAST DUCK RECIPE INSTRUCTIONS


1. TRIM AND CLEAN THE DUCK: 

Trim any excess fat from the cavity of the duck, leaving the skin intact. Remove
the wing tips using a sharp cleaver or kitchen shears. If you have a whole duck,
remove the feet at the joints between the feet and legs. 



Traditionally, Chinese roast ducks come with the head on, but you can remove the
head if you prefer. Leave the entire neck—it’s good for roasting and leaving it
on makes the inflation process easier in later steps. 

Use tweezers to remove any pinfeathers and remove any of the remaining internal
organs. (There may still be parts of the lung in the upper cavity or the kidneys
next to the cavity opening.) Then rinse the outside and cavity of the duck. Pat
both the outside and cavity dry with a paper towel. (Disinfect your sink and
work surfaces after this process.)


2. SEASON THE DUCK CAVITY: 

Combine the salt, five- spice powder, sugar, and sand ginger powder. Rub the
cavity of the duck with the Shaoxing wine, followed by the dry spice mixture,
until thoroughly coated. Refrigerate for 1 hour, uncovered.


3. MAKE THE COOKED MARINADE: 

In a medium bowl, combine the chee hou sauce, warm water, ground bean sauce,
hoisin sauce, oyster sauce, and red fermented bean curd. Heat the oil in a
saucepan over medium-low heat. 

Add the ginger and cook for 20 to 30 seconds, until fragrant. Stir in the
garlic, scallion (both white and green parts), bay leaves, star anise, cinnamon
stick, and orange peel. Cook for another 20 to 30 seconds. Add the sauce mixture
you made earlier, and bring to a simmer over medium heat, stirring often. Once
simmering, remove from the heat and let cool completely.




4. MARINATE AND SEAL THE CAVITY: 

After the duck has sat in the fridge for 1 hour, pour the cooled marinade into
the cavity. Use your hands to coat the entire cavity with the marinade, taking
care to keep the outside of the duck clean.

Use a metal skewer to carefully seal the cavity and make it completely airtight.
At the base of the tail, insert the skewer crosswise through the flaps of skin
on either side of the cavity, poking the skewer through so that only about 1
inch of the sharp end is sticking out the other side. 

Turn the skewer over the skin back the way it came from, and insert the skewer
again, just above where you initially inserted it. Repeat, weaving the skewer
across the skin around the cavity until you’ve sealed it completely. Push any
remaining length of the skewer into the cavity. 

(You can also perform these steps with butcher’s twine and a trussing needle;
just make sure you get a tight seal.)




5. INFLATE THE DUCK:

Now for the part that makes this a distinctively Chinese duck recipe! Insert a
clean plastic tube attached to a small electric air pump between the folds of
skin on the neck and close your hand around the tube and neck to create a seal.
There should be a cut on the neck where the duck was slaughtered, where you can
insert the tube. If your duck does not have the neck still attached, and the
opening at the neck is very large, seal a portion of the opening using skewers
or butcher’s twine before inserting the tube.

Pump air in until you see the skin separating from the meat, all the way down to
the drumsticks. As the air is pumped under the skin, it will look like an
inflated balloon (albeit a lumpy one). Maintain a tight seal; it will deflate if
the air is released.

If the seal over the cavity (where you used the metal skewer earlier) opens, use
your other hand (or ask someone to help!) to hold it closed so that the duck
inflates. In stubborn areas where the skin is still sticking to the meat, use
your fingers to pull the skin up off the meat (especially around the breast),
and then reinflate. Thorough separation of the skin from the meat is key to even
roasting. Flip the duck over and repeat this process.



When the duck has been completely inflated on both sides, it’s time to tie it
off. Grab someone to help you with this step to make it easier! With the pump
still running, take a 6- to 8-inch length of kitchen string and tie a knot
around the neck of the duck. Do your best to seal in as much air as possible.




6. APPLY THE WATER AND VINEGAR BATHS:

Bring 4 cups of the water to a boil. Turn off the heat. Place a rack crosswise
over the top of a deep roasting pan or wok. Place the duck on top of the rack.
One ladle at a time, pour half the boiled water evenly over the duck. You’ll see
the skin immediately shrink and tighten up as the hot water is applied.
Carefully flip the duck over and repeat with the remaining boiling water. Set
the duck aside on a sheet pan and discard the water.



Next, make the vinegar bath, which will give the duck that signature dark color
after roasting. In a medium saucepan over medium-high heat, heat the remaining 2
cups water, along with the red vinegar, maltose, and salt. Bring to a simmer,
stirring to dissolve the salt, and remove from the heat.

Place the duck back on the rack (over the roasting pan or wok) breast side down.
Carefully ladle all the hot vinegar solution over the duck to coat it
completely, just as you did with the boiling water. Make sure to cover all the
exposed skin.



Set the duck on the sheet pan once again and pour the used vinegar solution into
a bowl. Then repeat this procedure with the duck back on the rack breast side
up, pouring the reused hot vinegar liquid over this side of the duck. Any missed
areas won’t have that signature Chinese roast duck color, so thoroughness is
important!




7. AIR-DRY AND MARINATE OVERNIGHT:

Leave the duck to air-dry for 30 minutes. Then place the duck breast side down
on a clean, dry sheet pan or roasting pan, and refrigerate overnight, uncovered.




8. ROAST THE DUCK:

4 hours before serving, take the duck out of the fridge. Flip it breast side up,
and let it sit for 2 hours at room temperature. (A cold duck won’t roast
evenly.)

Position a rack in the center of the oven, then preheat the oven to 350°F. Line
a large roasting pan with heavy- duty foil, with a roasting rack on top (a
V-shaped rack is ideal). Place the duck on the rack breast side down and use a
paper towel to wipe away any marinade that may have leaked onto the skin (it
will burn in the oven or result in uneven coloring). Add the 1⁄2 cup hot water
to the bottom of the pan to prevent any drippings from smoking as the duck
roasts.

Roast breast side down for 25 minutes. Rotate the pan 180 degrees and continue
to roast for another 25 minutes. At this point, the skin should be a uniform
reddish, dark brown. Remove the duck from the oven and use clean kitchen towels
or heat resistant cooking gloves to flip the duck over so it is breast side up.



Roast for 20 minutes, then rotate the pan 180 degrees and roast for another 20
minutes, or until the duck is a uniform dark brown color. Remove the duck from
the oven, tent it with a piece of aluminum foil, and let it rest for 20 minutes.


9. CARVE AND SERVE: 

When ready to serve, remove the skewer sealing the cavity.



Carefully pour all the fat and juices into a fat separator. Then pour the juices
through a fine-mesh strainer into a bowl to serve with the duck. (Reserve the
rendered duck fat for other uses.)



Using a sharp cleaver, cut the duck in half lengthwise from the top of the
breast down through to one side of the backbone. Remove any aromatics in the
cavity and discard. Next, take the half of the duck with the backbone still
attached and make a lengthwise cut along the other side of the backbone to
remove it. Cut off the wings and leg quarters. Chop the wings in half at the
joint. Chop each drumstick into two pieces, and chop the thighs crosswise into
three pieces. Then, chop the remaining duck into bite-size pieces, using your
cleaver to drive through the soft bones. Serve with the reserved sauce on the
side.




Looking for more authentic recipes? Subscribe to our email list and be sure to
follow us on Pinterest, Facebook, Instagram, and Youtube!


5 from 8 votes


CHINESE ROAST DUCK

Finally, a recipe for those incredible Chinese roast ducks hanging in Chinatown
windows! It's the best roast duck we've ever had—well worth the effort!
by: Bill
serves: 6
Prep: 1 day day 4 hours hours
Cook: 2 hours hours
Total: 1 day day 6 hours hours
Print
 * 

Rate


INGREDIENTS

 * ▢ 1 Long Island (Pekin) duckling (about 5-6 pounds/2.5kg)
 * ▢ ½ cup hot water for the roasting pan

FOR SEASONING THE DUCK CAVITY:

 * ▢ 1½ tablespoons fine sea salt
 * ▢ 2½ teaspoons five-spice powder
 * ▢ 2 teaspoons sugar
 * ▢ 1 teaspoon sand ginger powder or galangal powder
 * ▢ 2 tablespoons Shaoxing wine

FOR THE COOKED MARINADE:

 * ▢ 2 tablespoons chee hou sauce
 * ▢ 2 tablespoons warm water
 * ▢ 1 tablespoon ground bean sauce
 * ▢ 1 tablespoon hoisin sauce
 * ▢ 1 tablespoon oyster sauce
 * ▢ 1 tablespoon red fermented bean curd (a mix of solids and liquid)
 * ▢ 2 teaspoons neutral oil (such as vegetable, canola, peanut, or avocado oil)
 * ▢ 2 slices fresh ginger (⅛-inch/3mm thick)
 * ▢ 2 medium garlic cloves (sliced)
 * ▢ 1 scallion (white and green parts cut into 2-inch/5cm pieces and smashed)
 * ▢ 2 dried bay leaves
 * ▢ 2 star anise (segments broken apart)
 * ▢ 1 Chinese cassia cinnamon stick (about 3 inches/7-8cm long, broken into
   small pieces)
 * ▢ 1 piece dried mandarin orange peel (a 2-inch/5cm piece, broken into a few
   small pieces)

FOR THE WATER AND VINEGAR BATH:

 * ▢ 6 cups water
 * ▢ 3 tablespoons Chinese red vinegar (preferably Koon Chun brand)
 * ▢ 2 tablespoons maltose (or corn syrup)
 * ▢ 1½ teaspoons fine sea salt
   

US Customary – Metric
Cook ModePrevent screen from going dark


INSTRUCTIONS

TRIM AND CLEAN THE DUCK:

 * Trim any excess fat from the cavity of the duck, leaving the skin intact.
   Remove the wing tips using a sharp cleaver or kitchen shears. If you have a
   whole duck, remove the feet at the joints between the feet and legs.
 * Traditionally, Chinese roast ducks come with the head on, but you can remove
   the head if you prefer. Leave the entire neck—it’s good for roasting and
   leaving it on makes the inflation process easier in later steps.
   
 * Use tweezers to remove any pinfeathers and remove any of the remaining
   internal organs (there may still be parts of the lung in the upper cavity or
   the kidneys next to the cavity opening). Then rinse the outside and cavity of
   the duck, and pat both the outside and cavity dry with a paper towel.
   (Disinfect your sink and work surfaces after this process.)

SEASON THE DUCK CAVITY:

 * Combine the salt, five- spice powder, sugar, and sand ginger powder. Rub the
   cavity of the duck with the Shaoxing wine, followed by the dry spice mixture,
   until thoroughly coated. Refrigerate for 1 hour, uncovered.

MAKE THE COOKED MARINADE:

 * In a medium bowl, combine the chee hou sauce, warm water, ground bean sauce,
   hoisin sauce, oyster sauce, and red fermented bean curd. Heat the oil in a
   saucepan over medium-low heat.
 * Add the ginger and cook for 20 to 30 seconds, until fragrant. Stir in the
   garlic, scallion (both white and green parts), bay leaves, star anise,
   cinnamon stick, and orange peel. Cook for another 20 to 30 seconds. Add the
   sauce mixture you made earlier, and bring to a simmer over medium heat,
   stirring often. Once simmering, remove from the heat and let cool completely.

MARINATE AND SEAL THE CAVITY:

 * After the duck has sat in the fridge for 1 hour, pour the cooled marinade
   into the cavity. Use your hands to coat the entire cavity with the marinade,
   taking care to keep the outside of the duck clean.
 * Use a metal skewer to carefully seal the cavity and make it completely
   airtight. At the base of the tail, insert the skewer crosswise through the
   flaps of skin on either side of the cavity, poking the skewer through so that
   only about 1 inch of the sharp end is sticking out the other side.
 * Turn the skewer over the skin back the way it came from, and insert the
   skewer again, just above where you initially inserted it. Repeat, weaving the
   skewer across the skin around the cavity until you’ve sealed it completely.
   Push any remaining length of the skewer into the cavity.
 * (You can also perform these steps with butcher’s twine and a trussing needle;
   just make sure you get a tight seal.)

INFLATE THE DUCK:

 * Now for the part that makes this a distinctively Chinese duck recipe! Insert
   a clean plastic tube attached to a small electric air pump between the folds
   of skin on the neck and close your hand around the tube and neck to create a
   seal. There should be a cut on the neck where the duck was slaughtered, where
   you can insert the tube. If your duck does not have the neck still attached,
   and the opening at the neck is very large, seal a portion of the opening
   using skewers or butcher’s twine before inserting the tube.
 * Pump air in until you see the skin separating from the meat, all the way down
   to the drumsticks. As the air is pumped under the skin, it will look like an
   inflated balloon (albeit a lumpy one). Maintain a tight seal; it will deflate
   if the air is released.
 * If the seal over the cavity (where you used the metal skewer earlier) opens,
   use your other hand (or ask someone to help!) to hold it closed so that the
   duck inflates. In stubborn areas where the skin is still sticking to the
   meat, use your fingers to pull the skin up off the meat (especially around
   the breast), and then reinflate. Thorough separation of the skin from the
   meat is key to even roasting. Flip the duck over and repeat this process.
 * When the duck has been completely inflated on both sides, it’s time to tie it
   off. Grab someone to help you with this step to make it easier! With the pump
   still running, take a 6- to 8-inch/15-20cm length of kitchen string and tie a
   knot around the neck of the duck. Do your best to seal in as much air as
   possible.

APPLY THE WATER AND VINEGAR BATHS:

 * Bring 4 cups of the water to a boil. Turn off the heat. Place a rack
   crosswise over the top of a deep roasting pan or wok and place the duck on
   top of the rack. One ladle at a time, pour half the boiled water evenly over
   the duck. You’ll see the skin immediately shrink and tighten up as the hot
   water is applied. Carefully flip the duck over and repeat with the remaining
   boiling water. Set the duck aside on a sheet pan and discard the water.
 * Next, make the vinegar bath, which will give the duck that signature dark
   color after roasting. In a medium saucepan over medium-high heat, heat the
   remaining 2 cups water, along with the red vinegar, maltose, and salt. Bring
   to a simmer, stirring to dissolve the salt, and remove from the heat.
 * Place the duck back on the rack (over the roasting pan or wok) breast side
   down, and carefully ladle all the hot vinegar solution over the duck to coat
   it completely, just as you did with the boiling water. Make sure to cover all
   the exposed skin.
 * Set the duck on the sheet pan once again and pour the used vinegar solution
   into a bowl. Then repeat this procedure with the duck back on the rack breast
   side up, pouring the reused hot vinegar liquid over this side of the duck.
   Any missed areas won’t have that signature Chinese roast duck color, so
   thoroughness is important!

AIR-DRY AND MARINATE OVERNIGHT:

 * Leave the duck to air-dry for 30 minutes. Then place the duck breast side
   down on a clean, dry sheet pan or roasting pan, and refrigerate overnight,
   uncovered.

ROAST THE DUCK:

 * 4 hours before serving, take the duck out of the fridge, flip it breast side
   up, and let it sit for 2 hours at room temperature. (A cold duck won’t roast
   evenly.)
 * Position a rack in the center of the oven, then preheat the oven to
   350°F/175°C. Line a large roasting pan with heavy- duty foil, with a roasting
   rack on top (a V-shaped rack is ideal). Place the duck on the rack breast
   side down and use a paper towel to wipe away any marinade that may have
   leaked onto the skin (it will burn in the oven or result in uneven coloring).
   Add the 1/2 cup hot water to the bottom of the pan to prevent any drippings
   from smoking as the duck roasts.
 * Roast breast side down for 25 minutes. Rotate the pan 180 degrees and
   continue to roast for another 25 minutes. At this point, the skin should be a
   uniform reddish, dark brown. Remove the duck from the oven and use clean
   kitchen towels or heat resistant cooking gloves to flip the duck over so it
   is breast side up.
 * Roast for 20 minutes, then rotate the pan 180 degrees and roast for another
   20 minutes, or until the duck is a uniform dark brown color. Remove the duck
   from the oven, tent it with a piece of aluminum foil, and let it rest for 20
   minutes.

CARVE AND SERVE:

 * When ready to serve, remove the skewer sealing the cavity and carefully pour
   all the fat and juices into a fat separator. Then pour the juices through a
   fine-mesh strainer into a bowl to serve with the duck. (Reserve the rendered
   duck fat for other uses.)
 * Using a sharp cleaver, cut the duck in half lengthwise from the top of the
   breast down through to one side of the backbone. Remove any aromatics in the
   cavity and discard. Next, take the half of the duck with the backbone still
   attached and make a lengthwise cut along the other side of the backbone to
   remove it. Cut off the wings and leg quarters. Chop the wings in half at the
   joint, chop each drumstick into two pieces, and chop the thighs crosswise
   into three pieces. Then, chop the remaining duck into bite-size pieces, using
   your cleaver to drive through the soft bones. Serve with the reserved sauce
   on the side.






NUTRITION FACTS

Calories: 455kcal (23%) Carbohydrates: 8g (3%) Protein: 50g (100%) Fat: 23g
(35%) Saturated Fat: 6g (30%) Polyunsaturated Fat: 4g Monounsaturated Fat: 11g
Trans Fat: 0.01g Cholesterol: 208mg (69%) Sodium: 2752mg (115%) Potassium: 54mg
(2%) Fiber: 1g (4%) Sugar: 4g (4%) Vitamin A: 29IU (1%) Vitamin C: 4mg (5%)
Calcium: 51mg (5%) Iron: 5mg (28%)

NUTRITIONAL INFO DISCLAIMER

TheWoksofLife.com is written and produced for informational purposes only. While
we do our best to provide nutritional information as a general guideline to our
readers, we are not certified nutritionists, and the values provided should be
considered estimates. Factors such as brands purchased, natural variations in
fresh ingredients, etc. will change the nutritional information in any recipe.
Various online calculators also provide different results, depending on their
sources. To obtain accurate nutritional information for a recipe, use your
preferred nutrition calculator to determine nutritional information with the
actual ingredients and quantities used.

Did You Make This?Tag us on Instagram @thewoksoflife, subscribe to our email
list, and be sure to follow us on social for more recipes!
@thewoksoflife


YOU MAY ALSO LIKE…

 * Peking Duck Grilled Cheese
 * Chinese Braised Duck Legs
 * Chinese Baijiu
 * Roast Pork with Chinese Vegetables

 * 
 * 
 * 
 * 

ABOUT BILL

Bill is the dad of The Woks of Life family. He grew up in upstate New York,
working through high school and college in restaurants with his father, a chef.
Rose from modest beginnings as a Burger King sandwich assembler to Holiday Inn
busboy and line cook, to cooking at the family's Chinese restaurant, while also
learning the finer points of Cantonese cooking from his immigrant parents.
Specializes in all things traditional Cantonese and American Chinese takeout.

Previous Post
When is Chinese New Year 2024?
Next Post
Dumpling Filling Recipes

Subscribe

Notify of
new follow-up comments new replies to my comments



Label

Rate this recipe: Rate this recipe:







Name*

Email*





Δ


Label

Rate this recipe: Rate this recipe:







Name*

Email*





Δ

This site uses Akismet to reduce spam. Learn how your comment data is processed.

25 Comments

Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Load More Comments




PRIMARY SIDEBAR


WELCOME!

We’re Sarah, Kaitlin, Judy, and Bill– a family of four cooks sharing our
home-cooked and restaurant-style recipes.

Our Story
25 Top Recipes

TOP 25 RECIPES

FREE EBOOK

Subscribe for the latest updates on new recipes, and get started with our
family's Top 25 Recipe eBook!

Get It Now
Cooking Tools Wok Guide Ingredients 101 Kitchen Wisdom
Surprise Me!

SIGN UP FOR EMAIL UPDATES & RECEIVE OUR


TOP 25 RECIPES EBOOK!



Leave this field empty if you're human:



















OUR FAMILY FAVORITES

bill's pick


BEEF AND BROCCOLI

judy's pick


ASIAN MILK BREAD

sarah's pick


CHICKEN ADOBO

kaitlin's pick


MAPO TOFU

SIGN UP FOR EMAIL UPDATES & RECEIVE OUR


TOP 25 RECIPES EBOOK!



Leave this field empty if you're human:


“I am proud to say that your genealogy has been the sole tutorial for my
Asian-inspired culinary adventures for years; probably since you began. Time and
again, my worldwide web pursuits for solid recipes that I know my family will
eat has landed me back here.”

BETH, COMMUNITY MEMBER SINCE 2013


Search

Facebook Instagram Pinterest YouTube
© 2013–2024 The Woks of Life
 * Privacy Policy
 * Disclaimer

Site Credits Site design by Melissa Rose Design Logo & Illustrations by Sasa
Khalisa Developed by Once Coupled Back To Top
Opens in a new window Opens an external site Opens an external site in a new
window
Update Privacy Preferences
A Raptive Partner Site


GET UPDATES ON NEW RECIPES & OUR

FREE RECIPE EBOOK!

I consent to receive emails from The Woks of Life.



wpDiscuz


Insert