MyCodery - Web Scraping API with Headless Browser API

API ID 21

Our MyCodery - Web Scraping API with Headless Browser capability allows you to extract data from websites while simulating a real browser. This enables you to bypass restrictions, solve captchas and scrape dynamic websites with ease. Perfect for high-level web scraping tasks.

66% uptime 7,990 ms avg response

API Documentation

Endpoints

Request

Returns the html code of a url.

Endpoint ID: 82
GET https://www.zylalabs.com/api/21/mycodery+-+web+scraping+api+with+headless+browser+api/82/scrape
INPUT PARAMETERS

Scrape — Endpoint Features

Object Description
url Required
render_js Optional
country_code Optional Select the country you want to set the proxy into. Two letter code (ISO 3166-1 format)
premium_proxy Optional

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

url
render_js
country_code
premium_proxy
API EXAMPLE RESPONSE
JSON
<!DOCTYPE html><!--[if IE]><![endif]--><!--[if IE 8 ]><html dir="ltr" lang="en" class="ie8"><![endif]--><!--[if IE 9 ]><html dir="ltr" lang="en" class="ie9"><![endif]--><!--[if (gt IE 9)|!(IE)]><!--><html dir="ltr" class="ltr wf-loading wf-playfairdisplay-n9-loading wf-montserrat-n4-loading" lang="en"><!--<![endif]--><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"><title>La Chic | Chicago's Prom Headquarters</title>
<base href="//www.lachicchicago.com">
<link rel="canonical" href="https://www.lachicchicago.com">    
<meta http-equiv="X-UA-Compatible" content="IE=edge">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
<style>
    #mainslider .scrollingslide img {
        height: 700px !important;
        width:auto !important;
    }
   
</style>
            <link href="https://estylecdn.com/rdoassets/catalog/view/theme/pav_fashion/stylesheet/bootstrap.css" rel="stylesheet">
        <!--    <link rel="stylesheet" href="https://estylecdn.com/ar/fontawesome/4.7/css/font-awesome.min.css">-->
        <link rel="stylesheet" href="https://estylecdn.com/ar/fontawesome/css/all.css" crossorigin="anonymous">
    <link href="https://estylecdn.com/rdoassets/catalog/view/theme/pav_fashion/stylesheet/stylesheet.min.css" rel="stylesheet">

<style>
    /* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-display:swap;
  font-style: normal;
  font-weight: 300;
  src: local('Nunito Light'), local('Nunito-Light'), url(https://fonts.gstatic.com/s/nunito/v10/XRXW3I6Li01BKofAnsSUb-vISTs.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Nunito';
  font-display:swap;
  font-style: normal;
  font-weight: 300;
  src: local('Nunito Light'), local('Nunito-Light'), url(https://fonts.gstatic.com/s/nunito/v10/XRXW3I6Li01BKofAnsSUYevI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
</style>



    <link href="https://estylecdn.com/rdoassets/catalog/view/theme/pav_fashion/stylesheet/customize/ESC-White-on-White.css" rel="stylesheet">
    <link rel="stylesheet" href="https://estylecdn.com/ar/assetssty/12/escpavmod.min.css">
    <script src="https://connect.facebook.net/signals/config/397495456115138?v=2.9.179&amp;r=stable&amp;domain=www.lachicchicago.com&amp;hme=b8122d5d96cd6f542162ba4f497489972d1ebe228d24c39d34f560e30ae932ce&amp;ex_m=70%2C122%2C107%2C111%2C61%2C4%2C100%2C69%2C16%2C97%2C89%2C51%2C54%2C173%2C176%2C188%2C184%2C185%2C187%2C29%2C101%2C53%2C77%2C186%2C168%2C171%2C181%2C182%2C189%2C132%2C41%2C191%2C192%2C34%2C144%2C15%2C50%2C197%2C196%2C134%2C18%2C40%2C1%2C43%2C65%2C66%2C67%2C71%2C93%2C17%2C14%2C96%2C92%2C91%2C108%2C52%2C110%2C39%2C109%2C30%2C94%2C26%2C169%2C172%2C141%2C86%2C56%2C84%2C33%2C73%2C0%2C95%2C32%2C28%2C82%2C83%2C88%2C47%2C46%2C87%2C37%2C11%2C12%2C13%2C6%2C7%2C25%2C22%2C23%2C57%2C62%2C64%2C75%2C102%2C27%2C76%2C9%2C8%2C80%2C48%2C21%2C104%2C103%2C105%2C98%2C10%2C20%2C3%2C38%2C74%2C19%2C5%2C90%2C81%2C44%2C35%2C85%2C2%2C36%2C63%2C42%2C106%2C45%2C79%2C68%2C112%2C60%2C59%2C31%2C99%2C58%2C55%2C49%2C78%2C72%2C24%2C113" async=""></script><script async="" src="https://connect.facebook.net/en_US/fbevents.js"></script><script data-cfasync="false" src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<script data-cfasync="false" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.min.css">



<script data-cfasync="false" async="" src="https://estylecdn.com/ar/js/jquery.invertImages.min.js"></script>

<script data-cfasync="false" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script data-cfasync="false" async="" src="https://estylecdn.com/rdoassets/catalog/view/javascript/jquery/magnific/jquery.magnific-popup.min.js"></script>

<script data-cfasync="false" async="" src="https://estylecdn.com/ar/assetssty/12/commoncomb.min.js"></script>



<script>
document.addEventListener("DOMContentLoaded", function() {
  var lazyImages = [].slice.call(document.querySelectorAll("img.lazy"));;

  if ("IntersectionObserver" in window && "IntersectionObserverEntry" in window && "intersectionRatio" in window.IntersectionObserverEntry.prototype) {
    let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
      entries.forEach(function(entry) {
        if (entry.isIntersecting) {
          let lazyImage = entry.target;
          lazyImage.src = lazyImage.dataset.src;
          lazyImage.srcset = lazyImage.dataset.srcset;
          lazyImage.classList.remove("lazy");
          lazyImageObserver.unobserve(lazyImage);
        }
      });
    });

    lazyImages.forEach(function(lazyImage) {
      lazyImageObserver.observe(lazyImage);
    });
  }
});


document.addEventListener("DOMContentLoaded", function() {
  var lazyBackgrounds = [].slice.call(document.querySelectorAll(".lazy-background"));

  if ("IntersectionObserver" in window && "IntersectionObserverEntry" in window && "intersectionRatio" in window.IntersectionObserverEntry.prototype) {
    let lazyBackgroundObserver = new IntersectionObserver(function(entries, observer) {
      entries.forEach(function(entry) {
        if (entry.isIntersecting) {
          entry.target.classList.add("visible");
          lazyBackgroundObserver.unobserve(entry.target);
        }
      });
    });

    lazyBackgrounds.forEach(function(lazyBackground) {
      lazyBackgroundObserver.observe(lazyBackground);
    });
  }
});
</script>

    <style>
    .ui-slider { position: relative; text-align: left; }
    .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 10px; height: 10px; cursor: default; }
    .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: 12px; display: block; border: 0; background-position: 0 0; }
    .ui-slider-horizontal { height: 8px; }
    .ui-slider-horizontal .ui-slider-handle { top: -1px; margin-left: -2px; }
    .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
    .ui-slider-horizontal .ui-slider-range-min { left: 0; }
    .ui-slider-horizontal .ui-slider-range-max { right: 0; }
    
    .ui-slider-horizontal .ui-slider-handle {
        top: -6px;
        margin-left: -2px;
    }

    .ui-slider .ui-slider-handle {
        position: absolute;
        z-index: 2;
        width: 18px;
        height: 18px;
        cursor: default;
    }

    .ui-state-default, .ui-widget-content .ui-state-default{
        border: 1px solid #000000;
       
    }
    </style>
    <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/15.6.0/nouislider.min.css" as="style" onload="this.rel='stylesheet'">
    <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/15.6.0/nouislider.min.css"></noscript>

 <script src="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/15.6.0/nouislider.min.js" defer=""></script>
    <script>
        jQuery(document).ready(function($) {
            var slider = document.getElementById('slider-rangeMOB');

            noUiSlider.create(slider, {
                start: [0, 6000],
                connect: true,
                range: {
                    'min': 0,
                    'max': 6000
                },
                format: {
                    to: function (value) {
                        return Math.round(value);
                    },
                    from: function (value) {
                        return Number(value);
                    }
                }
            });

            slider.noUiSlider.on('update', function(values, handle) {
                $('#amountMOB').val('$' + values[0] + ' - $' + values[1]);
            });

            slider.noUiSlider.on('start', function() {
                document.getElementById('priceFilterOnIdMOB').checked = true;
            });

            $('#amountMOB').val('$' + slider.noUiSlider.get()[0] + ' - $' + slider.noUiSlider.get()[1]);
        });
    </script>
<script data-cfasync="false">
    jQuery(function() {
                    // jQuery( "#slider-rangeMOB" ).slider({
            //         range: true,
            //         min: 0,
            //         max: 6000,
            //         values: [ 0, 6000 ],
            //         slide: function( event, ui ) {
            //                 jQuery( "#amountMOB" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
            //         },
            //         start: function(event, ui) {
            //                 document.getElementById('priceFilterOnIdMOB').checked=true;
            //         }
            // });
            // jQuery( "#amount" ).val( "$" + jQuery( "#slider-rangeMOB" ).slider( "values", 0 ) +
            //         " - $" + jQuery( "#slider-rangeMOB" ).slider( "values", 1 ) );



            jQuery('.attChk').change(function() {
                if(jQuery(this).is(":checked")) {
                    jQuery(this).parent().parent().parent().prev().find('.attClear').html(" <a href='#' class=attClearBtn>Clear</a>");
                }
            });
            $(".filterToggle").click(function () {
                $header = $(this);
                $content = $header.next('div');
                $content.slideToggle(500, function () {
                    $("span.filterInd",$header).text(function () {
                        return $content.is(":visible") ? "-" : "+";
                    });
                });
            });
            $(".filterToggleCB").click(function () {
                $header = $(this).parent();
                $content = $header.next('div');
                $content.slideT...
Scrape — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/21/mycodery+-+web+scraping+api+with+headless+browser+api/82/scrape?url=https://www.youtube.com/' --header 'Authorization: Bearer YOUR_API_KEY' 


    

API Access Key & Authentication

After signing up, every developer is assigned a personal API access key, a unique combination of letters and digits provided to access to our API endpoint. To authenticate with the MyCodery - Web Scraping API with Headless Browser API simply include your bearer token in the Authorization header.

Headers
Header Description
Authorization Required Should be Bearer access_key. See "Your API Access Key" above when you are subscribed.

Simple Transparent Pricing

No long-term commitment. Upgrade, downgrade, or cancel anytime. Free Trial includes up to 50 requests.

(Save 2 months with annual billing 🎉)

🚀 Enterprise Plan
Custom Volume

  • Custom Rate Limit
  • Team & Access Management
  • SLA-backed Uptime
  • Specialized Customer Support
  • Real-Time API Monitoring
  • Enterprise Security & Compliance
Minimum annual contract: USD 10,000

Trusted by leading companies

Overview

About the API:

Our MyCodery - Web Scraping API with Headless Browser capability is the perfect solution for high-level web scraping tasks. This powerful API allows you to extract data from websites while simulating a real browser. This means that you can bypass website restrictions, solve captchas and scrape dynamic websites with ease.

The headless browser capability of the API emulates a real browser, allowing it to interact with web pages just as a human user would. This is particularly useful for scraping websites that use JavaScript and other dynamic elements, as well as for bypassing bot detection mechanisms.

The API also provides a wide range of tools for data extraction, allowing you to easily extract the information you need from web pages, including text, images, and links. The API can also be customized to suit your specific needs, such as extracting data from specific elements on a page or following links to scrape multiple pages.

Our API is easy to integrate into your existing systems, whether it's a mobile app, website, or standalone application. It is designed to be user-friendly and easy to use, making it accessible to developers of all skill levels.

In summary, our Web Scraping API with Headless Browser capability is the perfect solution for high-level web scraping tasks. With its ability to simulate a real browser, bypass website restrictions and solve captchas, this API makes scraping dynamic websites a breeze.

What this API receives and what your API provides (input/output)?

Pass the URL that you want to scrape and receive the HTML within it in a matter of seconds. 

 

What are the most common uses cases of this API?

  1. Competitive intelligence: Use the API to scrape competitor websites for pricing, product offerings, and other relevant information to gain a competitive edge in your market.

  2. Online marketplaces: Use the API to scrape online marketplace websites to gather data on prices, products, and seller ratings for price comparison and market research.

  3. Business intelligence: Use the API to scrape business news websites and social media platforms to track market trends, competitor activity, and customer sentiment.

  4. Job posting: Extract job postings from multiple job boards and career websites to create a searchable database of job opportunities, even if the website is using anti-scraping techniques.

  5. Real estate: Extract property listings, pricing, and location data from real estate websites to create a comprehensive database of real estate market information.

  6. Data mining: Use the API to scrape large amounts of data from public websites for analysis and research, such as scientific data, financial data, and more.

 

Are there any limitations to your plans?

Besides API call limitations per month, there are no other limitations.

MyCodery - Web Scraping API with Headless Browser API FAQs

The GET Scrape endpoint returns the complete HTML code of the specified URL. This includes all text, images, links, and other elements present on the webpage, allowing users to extract any required information.

The response data is structured as a single HTML document. Users can parse this document to access specific elements, such as headings, paragraphs, images, and links, using standard HTML parsing techniques.

The primary parameter for the GET Scrape endpoint is the URL of the webpage to be scraped. Users can customize their requests by specifying additional parameters, such as headers or user-agent strings, to mimic different browser behaviors.

The GET Scrape endpoint provides access to all publicly available information on the specified webpage, including text content, images, links, and metadata. This makes it suitable for various data extraction tasks.

Data accuracy is maintained by using a headless browser that simulates real user interactions. This helps bypass restrictions and ensures that the most current version of the webpage is retrieved, reducing the likelihood of outdated or incorrect data.

Typical use cases include competitive analysis, market research, job listing aggregation, and data mining for trends. Users can extract specific information for analysis or reporting based on their needs.

Users can utilize the returned HTML data by employing HTML parsing libraries (like BeautifulSoup in Python) to extract specific elements, such as text, images, or links, based on their requirements for further analysis or storage.

The API employs a headless browser to ensure that the data retrieved reflects the live state of the webpage. Additionally, users can implement their own validation checks after data extraction to ensure accuracy and relevance.

General FAQs

To obtain your API key, first sign in to your account and navigate to the API you want to use. From the API's Pricing section, choose a plan and complete the subscription process. Once subscribed, return to the API page and you will see your API Access Key displayed at the top of the documentation page. You can use this key to authenticate your requests.

You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.

The free trial lasts for 7 days and allows you to make up to 50 API requests.

No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.

Yes. If the API offers a free trial, you will see a "Free 7-Day Trial" option in its Pricing section. The trial lasts for 7 days and allows up to 50 API requests, enabling you to evaluate the API before subscribing to a paid plan.

Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.

Prices are listed in USD (United States Dollar), EUR (Euro), CAD (Canadian Dollar), AUD (Australian Dollar), and GBP (British Pound). We accept all major debit and credit cards. Our payment system uses the latest security technology and is powered by Stripe, one of the world's most reliable payment companies. If you have any trouble paying by card, just contact us at [email protected]

Additionally, if you already have an active subscription in any of these currencies (USD, EUR, CAD, AUD, GBP), that currency will remain for subsequent subscriptions. You can change the currency at any time as long as you don't have any active subscriptions.
The local currency shown on the pricing page is based on the country of your IP address and is provided for reference only. The actual prices are in USD (United States Dollar). When you make a payment, the charge will appear on your card statement in USD, even if you see the equivalent amount in your local currency on our website. This means you cannot pay directly with your local currency.
Occasionally, a bank may decline the charge due to its fraud protection settings. We suggest reaching out to your bank initially to check if they are blocking our charges. Also, you can access the Billing Portal and change the card associated to make the payment. If these does not work and you need further assistance, please contact our team at [email protected]
Prices are determined by a recurring monthly or yearly subscription, depending on the chosen plan.
API calls are deducted from your plan based on successful requests. Each plan comes with a specific number of calls that you can make per month. Only successful calls, indicated by a Status 200 response, will be counted against your total. This ensures that failed or incomplete requests do not impact your monthly quota.
Zyla API Hub works on a recurring monthly subscription system. Your billing cycle will start the day you purchase one of the paid plans, and it will renew the same day of the next month. So be aware to cancel your subscription beforehand if you want to avoid future charges.
To upgrade your current subscription plan, simply go to the pricing page of the API and select the plan you want to upgrade to. The upgrade will be instant, allowing you to immediately enjoy the features of the new plan. Please note that any remaining calls from your previous plan will not be carried over to the new plan, so be aware of this when upgrading. You will be charged the full amount of the new plan.
To check how many API calls you have left for the current month, refer to the 'X-Zyla-API-Calls-Monthly-Remaining' field in the response header. For example, if your plan allows 1,000 requests per month and you've used 100, this field in the response header will indicate 900 remaining calls.

You can monitor your API usage through the response headers included with every request:

x-zyla-api-calls-monthly-used: Shows the total number of API requests you have used during the current billing period.
x-zyla-api-calls-monthly-remaining: Shows the number of API requests you have remaining for the current billing period.

The 'X-Zyla-RateLimit-Reset' header shows the number of seconds until your rate limit resets. This tells you when your request count will start fresh. For example, if it displays 3,600, it means 3,600 seconds are left until the limit resets.

Yes, you can cancel your subscription at any time. Simply go to the Pricing section of the API you're subscribed to and click the "Unsubscribe" button.

Please note that upgrades, downgrades, and cancellations take effect immediately. Once your subscription is canceled, access to the service will end immediately, regardless of any remaining API calls in your quota.

After 7 days, you will be charged the full amount for the plan you were subscribed to during the trial. Therefore, it's important to cancel before the trial period ends. Refund requests for forgetting to cancel on time are not accepted.
When you subscribe to an API free trial, you can make up to 50 API calls. If you wish to make additional API calls beyond this limit, the API will prompt you to perform an "Start Your Paid Plan." You can find the "Start Your Paid Plan" button in your profile under Subscription -> Choose the API you are subscribed to -> Pricing tab.
You can contact us through our chat channel to receive immediate assistance. We are always online from 8 am to 5 pm (EST). If you reach us after that time, we will get back to you as soon as possible. Additionally, you can contact us via email at [email protected]

Please have a look at our Refund Policy: https://zylalabs.com/terms#refund


Related APIs


You might also like