{"id":1379,"date":"2023-06-07T08:54:22","date_gmt":"2023-06-07T07:54:22","guid":{"rendered":"https:\/\/codeflarelimited.com\/blog\/?p=1379"},"modified":"2025-10-22T04:05:30","modified_gmt":"2025-10-22T03:05:30","slug":"how-to-use-javascript-fetch-api-to-get-real-time-data","status":"publish","type":"post","link":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/","title":{"rendered":"How to Use JavaScript Fetch API to Get Real-time Data"},"content":{"rendered":"\n<p>JavaScript is a versatile programming language that powers the dynamic nature of the web. With the introduction of the Fetch API, JavaScript developers gained a powerful tool for making network requests and interacting with servers. <\/p>\n\n\n\n<p>The Fetch API provides a modern, streamlined alternative to the traditional XMLHttpRequest (XHR) approach. In this tutorial, we will explore the Fetch API in detail, its core features, and how it simplifies asynchronous data fetching in JavaScript applications. We will also create a GET request using the Fetch API by consuming the <a href=\"https:\/\/catfact.ninja\/breeds\" target=\"_blank\" rel=\"noreferrer noopener\">JSON  cat placeholder API <\/a>as our example endpoint.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-fetch-api\">What is Fetch API<\/h2>\n\n\n\n<p>The Fetch API is a built-in JavaScript interface that enables fetching resources asynchronously across the network. It provides a simplified, promise-based syntax for making HTTP requests, allowing developers to send and receive data from servers with ease. The Fetch API supports a wide range of data formats, including JSON, text, blobs, and more.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-make-a-fetch-request\">How to Make a Fetch Request<\/h2>\n\n\n\n<p>Using the Fetch API is straightforward. To initiate a basic fetch request, we create a new instance of the <code>fetch()<\/code> function and pass in the URL of the resource we want to fetch. The <code>fetch()<\/code> function returns a Promise that resolves to the Response object containing the server&#8217;s response.<\/p>\n\n\n\n<p>We can then use the Response object&#8217;s methods to handle the retrieved data. For example, we can call <code>response.json()<\/code> to extract JSON data, <code>response.text()<\/code> to get plain text, or <code>response.blob()<\/code> to retrieve binary data. These methods also return Promises, allowing us to chain them together or use async\/await syntax for cleaner code.<\/p>\n\n\n\n<p>Now, back to our example. What we want to do is create a simple HTML page and using just a bit of Bootstrap. We will show the Bootstrap spinner for the waiting period.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\" dir=\"ltr\"&gt;\n  &lt;head&gt;\n    &lt;meta charset=\"utf-8\"&gt;\n    &lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.2.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\" integrity=\"sha384-gH2yIJqKdNHPEq0n4Mqa\/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl\/vI1Bx\" crossorigin=\"anonymous\"&gt;\n    &lt;title&gt;&lt;\/title&gt;\n  &lt;\/head&gt;\n  &lt;body&gt;\n    &lt;div class=\"container\"&gt;\n      &lt;center&gt;\n      &lt;div class=\"spinner-border\" role=\"status\" id=\"loading\"&gt;&lt;\/div&gt;\n    &lt;\/center&gt;\n  &lt;div class=\"row row-cols-1 row-cols-md-3 g-4\" id=\"data\"&gt;&lt;\/div&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n\n\n\n<p>Next, we will define our Async function.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">&lt;script&gt;  \nconst api_url =\n    \"https:\/\/catfact.ninja\/breeds\";\n\n\/\/ Defining async function\n  async function getapi(url) {\n\n  \/\/ Storing response\n  const response = await fetch(url);\n\n  \/\/ Storing data in form of JSON\n  var data = await response.json();\n  console.log(data);\n  if (response) {\n      hideloader();\n  }\n  show(data);\n}\n&lt;\/script&gt;<\/code><\/pre>\n\n\n\n<p>Next, we need to call the <strong><em>getapi<\/em><\/strong> function.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\/\/ Calling that async function\ngetapi(api_url);<\/code><\/pre>\n\n\n\n<p>Now, you should be able to see some data in your developer console.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"497\" height=\"555\" src=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-06-at-10.01.28-PM.png\" alt=\"Javascript Fetch API \" class=\"wp-image-1380\" style=\"width:368px;height:411px\" srcset=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-06-at-10.01.28-PM.png 497w, https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-06-at-10.01.28-PM-269x300.png 269w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/figure>\n\n\n\n<p>Next, we iterate over the data and display them in the HTML tag.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\/\/ Loop to access all rows\n  for (let item of data.data) {\n      \/\/ let description = item.course_description.substring(0, 100).concat('...')\n      tab += `\n      &lt;div class=\"col-12 col-md-6 mb-6 col-lg-4 d-flex\"&gt;\n      &lt;div class=\"card shadow-light-lg mb-6 mb-md-0 lift lift-lg\"&gt;\n            &lt;div class=\"card-body position-relative\"&gt;\n              &lt;div class=\"position-relative text-right mt-n8 mr-n4 mb-3\"&gt;\n                &lt;span class=\"badge badge-pill badge-success\"&gt;\n                  &lt;span class=\"h6 text-uppercase\"&gt;&lt;i class=\"fa fa-check\"&gt;&lt;\/i&gt;&lt;\/span&gt;\n                &lt;\/span&gt;\n              &lt;\/div&gt;\n\n              &lt;h3 class=\"text-capitalize\" style=\"font-family:poppins\" &gt;\n                ${item.breed}\n              &lt;\/h3&gt;\n\n              &lt;p class=\"text-muted\"&gt;\n                ${item.country}\n              &lt;\/p&gt;\n\n              &lt;p&gt;${item.origin}&lt;\/p&gt;\n\n            &lt;\/div&gt;\n            &lt;\/div&gt;\n          &lt;\/div&gt;\n          `;\n  }\n  \/\/ Setting innerHTML as tab variable\n  document.getElementById(\"data\").innerHTML = tab;\n}<\/code><\/pre>\n\n\n\n<p>Now, we want to tie our function to the <strong><em>load<\/em><\/strong> event listener so that when the page loads, the function starts to run. <\/p>\n\n\n\n<p>Here&#8217;s the full code:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre title=\"index.html\" class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">&lt;!DOCTYPE html>\n&lt;html lang=\"en\" dir=\"ltr\">\n  &lt;head>\n    &lt;meta charset=\"utf-8\">\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    &lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.2.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\" integrity=\"sha384-gH2yIJqKdNHPEq0n4Mqa\/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl\/vI1Bx\" crossorigin=\"anonymous\">\n    &lt;link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    &lt;link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    &lt;link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n    &lt;link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n    &lt;title>Modern Cat Breeds&lt;\/title>\n    &lt;style>\n      :root {\n        --primary: #6C63FF;\n        --primary-light: #8A84FF;\n        --secondary: #FF6584;\n        --dark: #2A2D3E;\n        --light: #F7F9FC;\n        --gray: #8C8E9A;\n      }\n      \n      body {\n        font-family: 'Poppins', sans-serif;\n        background-color: var(--light);\n        color: var(--dark);\n        line-height: 1.6;\n      }\n      \n      .navbar {\n        background: linear-gradient(135deg, var(--primary), var(--primary-light));\n        box-shadow: 0 4px 12px rgba(108, 99, 255, 0.15);\n      }\n      \n      .hero-section {\n        background: linear-gradient(135deg, var(--primary), var(--primary-light));\n        color: white;\n        padding: 80px 0;\n        margin-bottom: 40px;\n        border-radius: 0 0 30px 30px;\n      }\n      \n      .card {\n        border: none;\n        border-radius: 16px;\n        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);\n        transition: all 0.3s ease;\n        overflow: hidden;\n        height: 100%;\n      }\n      \n      .card:hover {\n        transform: translateY(-8px);\n        box-shadow: 0 12px 20px rgba(0, 0, 0, 0.1);\n      }\n      \n      .card-header {\n        background: linear-gradient(135deg, var(--primary), var(--primary-light));\n        color: white;\n        border: none;\n        padding: 16px 20px;\n        font-weight: 600;\n      }\n      \n      .card-body {\n        padding: 24px;\n      }\n      \n      .country-flag {\n        display: inline-block;\n        width: 24px;\n        height: 24px;\n        border-radius: 50%;\n        background: var(--secondary);\n        color: white;\n        text-align: center;\n        line-height: 24px;\n        font-size: 12px;\n        margin-right: 8px;\n      }\n      \n      .spinner-border {\n        width: 3rem;\n        height: 3rem;\n        color: var(--primary);\n      }\n      \n      .footer {\n        background-color: var(--dark);\n        color: white;\n        padding: 40px 0;\n        margin-top: 60px;\n      }\n      \n      .stats-container {\n        background: white;\n        border-radius: 16px;\n        padding: 24px;\n        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);\n        margin-bottom: 30px;\n      }\n      \n      .stat-number {\n        font-size: 2.5rem;\n        font-weight: 700;\n        color: var(--primary);\n      }\n      \n      .stat-label {\n        font-size: 0.9rem;\n        color: var(--gray);\n        text-transform: uppercase;\n        letter-spacing: 1px;\n      }\n      \n      .search-container {\n        max-width: 500px;\n        margin: 0 auto 30px;\n      }\n      \n      .search-box {\n        border-radius: 50px;\n        padding: 12px 24px;\n        border: 1px solid #e0e0e0;\n        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);\n      }\n      \n      .search-box:focus {\n        border-color: var(--primary);\n        box-shadow: 0 4px 12px rgba(108, 99, 255, 0.15);\n      }\n      \n      .no-results {\n        text-align: center;\n        padding: 40px;\n        color: var(--gray);\n      }\n      \n      .no-results i {\n        font-size: 3rem;\n        margin-bottom: 16px;\n        color: #e0e0e0;\n      }\n    &lt;\/style>\n  &lt;\/head>\n  &lt;body>\n    &lt;!-- Navigation -->\n    &lt;nav class=\"navbar navbar-expand-lg navbar-dark\">\n      &lt;div class=\"container\">\n        &lt;a class=\"navbar-brand fw-bold\" href=\"#\">\n          &lt;i class=\"fas fa-paw me-2\">&lt;\/i>Codeflare CatBreeds\n        &lt;\/a>\n        &lt;button class=\"navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarNav\">\n          &lt;span class=\"navbar-toggler-icon\">&lt;\/span>\n        &lt;\/button>\n        &lt;div class=\"collapse navbar-collapse\" id=\"navbarNav\">\n          &lt;ul class=\"navbar-nav ms-auto\">\n            &lt;li class=\"nav-item\">\n              &lt;a class=\"nav-link active\" href=\"#\">Home&lt;\/a>\n            &lt;\/li>\n            &lt;li class=\"nav-item\">\n              &lt;a class=\"nav-link\" href=\"#\">Breeds&lt;\/a>\n            &lt;\/li>\n            &lt;li class=\"nav-item\">\n              &lt;a class=\"nav-link\" href=\"#\">About&lt;\/a>\n            &lt;\/li>\n            &lt;li class=\"nav-item\">\n              &lt;a class=\"nav-link\" href=\"#\">Contact&lt;\/a>\n            &lt;\/li>\n          &lt;\/ul>\n        &lt;\/div>\n      &lt;\/div>\n    &lt;\/nav>\n\n    &lt;!-- Hero Section -->\n    &lt;section class=\"hero-section\">\n      &lt;div class=\"container text-center\">\n        &lt;h1 class=\"display-4 fw-bold mb-3 text-light\">Discover Cat Breeds&lt;\/h1>\n        &lt;p class=\"lead mb-4 text-light\">Explore the fascinating world of feline breeds from around the globe&lt;\/p>\n        &lt;div class=\"search-container\">\n          &lt;div class=\"input-group search-box\">\n            &lt;span class=\"input-group-text bg-transparent border-0\">\n              &lt;i class=\"fas fa-search text-muted\">&lt;\/i>\n            &lt;\/span>\n            &lt;input type=\"text\" class=\"form-control border-0 bg-transparent\" id=\"searchInput\" placeholder=\"Search cat breeds...\">\n          &lt;\/div>\n        &lt;\/div>\n      &lt;\/div>\n    &lt;\/section>\n\n    &lt;!-- Main Content -->\n    &lt;div class=\"container\">\n      &lt;!-- Stats Section -->\n      &lt;div class=\"row mb-5\">\n        &lt;div class=\"col-md-3 col-6\">\n          &lt;div class=\"stats-container text-center\">\n            &lt;div class=\"stat-number\" id=\"totalBreeds\">0&lt;\/div>\n            &lt;div class=\"stat-label\">Total Breeds&lt;\/div>\n          &lt;\/div>\n        &lt;\/div>\n        &lt;div class=\"col-md-3 col-6\">\n          &lt;div class=\"stats-container text-center\">\n            &lt;div class=\"stat-number\" id=\"totalCountries\">0&lt;\/div>\n            &lt;div class=\"stat-label\">Countries&lt;\/div>\n          &lt;\/div>\n        &lt;\/div>\n        &lt;div class=\"col-md-3 col-6\">\n          &lt;div class=\"stats-container text-center\">\n            &lt;div class=\"stat-number\" id=\"uniqueOrigins\">0&lt;\/div>\n            &lt;div class=\"stat-label\">Unique Origins&lt;\/div>\n          &lt;\/div>\n        &lt;\/div>\n        &lt;div class=\"col-md-3 col-6\">\n          &lt;div class=\"stats-container text-center\">\n            &lt;div class=\"stat-number\" id=\"avgCoat\">0&lt;\/div>\n            &lt;div class=\"stat-label\">Avg. Coat Length&lt;\/div>\n          &lt;\/div>\n        &lt;\/div>\n      &lt;\/div>\n\n      &lt;!-- Loading Spinner -->\n      &lt;div class=\"text-center py-5\" id=\"loading\">\n        &lt;div class=\"spinner-border\" role=\"status\">\n          &lt;span class=\"visually-hidden\">Loading...&lt;\/span>\n        &lt;\/div>\n        &lt;p class=\"mt-3 text-muted\">Loading cat breeds...&lt;\/p>\n      &lt;\/div>\n\n      &lt;!-- Breeds Grid -->\n      &lt;div class=\"row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4\" id=\"data\">&lt;\/div>\n      \n      &lt;!-- No Results Message -->\n      &lt;div class=\"no-results d-none\" id=\"noResults\">\n        &lt;i class=\"fas fa-search\">&lt;\/i>\n        &lt;h4>No breeds found&lt;\/h4>\n        &lt;p>Try adjusting your search terms&lt;\/p>\n      &lt;\/div>\n    &lt;\/div>\n\n    &lt;!-- Footer -->\n    &lt;footer class=\"footer\">\n      &lt;div class=\"container\">\n        &lt;div class=\"row\">\n          &lt;div class=\"col-md-6\">\n            &lt;h5>&lt;i class=\"fas fa-paw me-2\">&lt;\/i>Codeflare CatBreeds&lt;\/h5>\n            &lt;p class=\"mt-3\">Discover and learn about various cat breeds from around the world.&lt;\/p>\n          &lt;\/div>\n          &lt;div class=\"col-md-3\">\n            &lt;h5>Quick Links&lt;\/h5>\n            &lt;ul class=\"list-unstyled\">\n              &lt;li>&lt;a href=\"#\" class=\"text-light text-decoration-none\">Home&lt;\/a>&lt;\/li>\n              &lt;li>&lt;a href=\"#\" class=\"text-light text-decoration-none\">Breeds&lt;\/a>&lt;\/li>\n              &lt;li>&lt;a href=\"#\" class=\"text-light text-decoration-none\">About&lt;\/a>&lt;\/li>\n              &lt;li>&lt;a href=\"#\" class=\"text-light text-decoration-none\">Contact&lt;\/a>&lt;\/li>\n            &lt;\/ul>\n          &lt;\/div>\n          &lt;div class=\"col-md-3\">\n            &lt;h5>Connect&lt;\/h5>\n            &lt;div class=\"d-flex mt-3\">\n              &lt;a href=\"#\" class=\"text-light me-3\">&lt;i class=\"fab fa-facebook-f\">&lt;\/i>&lt;\/a>\n              &lt;a href=\"#\" class=\"text-light me-3\">&lt;i class=\"fab fa-twitter\">&lt;\/i>&lt;\/a>\n              &lt;a href=\"#\" class=\"text-light me-3\">&lt;i class=\"fab fa-instagram\">&lt;\/i>&lt;\/a>\n              &lt;a href=\"#\" class=\"text-light\">&lt;i class=\"fab fa-github\">&lt;\/i>&lt;\/a>\n            &lt;\/div>\n          &lt;\/div>\n        &lt;\/div>\n        &lt;hr class=\"my-4\">\n        &lt;div class=\"text-center\">\n          &lt;p>&amp;copy; 2025 Codeflare CatBreeds. All rights reserved.&lt;\/p>\n        &lt;\/div>\n      &lt;\/div>\n    &lt;\/footer>\n\n    &lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.2.0\/dist\/js\/bootstrap.bundle.min.js\" integrity=\"sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa\" crossorigin=\"anonymous\">&lt;\/script>\n    &lt;script>\n      window.addEventListener('load', (event) => {\n        const api_url = \"https:\/\/catfact.ninja\/breeds\";\n        let allBreeds = [];\n\n        \/\/ Defining async function\n        async function getapi(url) {\n          \/\/ Storing response\n          const response = await fetch(url);\n\n          \/\/ Storing data in form of JSON\n          var data = await response.json();\n          console.log(data);\n          if (response) {\n            hideloader();\n          }\n          allBreeds = data.data;\n          updateStats(allBreeds);\n          show(allBreeds);\n        }\n\n        \/\/ Calling that async function\n        getapi(api_url);\n\n        \/\/ Function to hide the loader\n        function hideloader() {\n          document.getElementById('loading').style.display = 'none';\n        }\n\n        \/\/ Update stats\n        function updateStats(breeds) {\n          document.getElementById('totalBreeds').textContent = breeds.length;\n          \n          const countries = [...new Set(breeds.map(item => item.country))];\n          document.getElementById('totalCountries').textContent = countries.length;\n          \n          const origins = [...new Set(breeds.map(item => item.origin))];\n          document.getElementById('uniqueOrigins').textContent = origins.length;\n          \n          \/\/ Calculate average coat length (mock data since API doesn't provide this)\n          const avgCoat = (breeds.length \/ 3).toFixed(1);\n          document.getElementById('avgCoat').textContent = avgCoat;\n        }\n\n        \/\/ Function to define innerHTML for HTML table\n        function show(data) {\n          let tab = ``;\n\n          \/\/ Loop to access all rows\n          for (let item of data) {\n            \/\/ Get first two letters of country for flag icon\n            const countryCode = item.country.substring(0, 2).toUpperCase();\n            \n            tab += `\n            &lt;div class=\"col\">\n              &lt;div class=\"card h-100\">\n                &lt;div class=\"card-header d-flex justify-content-between align-items-center\">\n                  &lt;span>${item.breed}&lt;\/span>\n                  &lt;span class=\"country-flag\">${countryCode}&lt;\/span>\n                &lt;\/div>\n                &lt;div class=\"card-body\">\n                  &lt;div class=\"mb-3\">\n                    &lt;small class=\"text-muted\">Country&lt;\/small>\n                    &lt;p class=\"mb-0\">${item.country}&lt;\/p>\n                  &lt;\/div>\n                  &lt;div class=\"mb-3\">\n                    &lt;small class=\"text-muted\">Origin&lt;\/small>\n                    &lt;p class=\"mb-0\">${item.origin}&lt;\/p>\n                  &lt;\/div>\n                  &lt;div>\n                    &lt;small class=\"text-muted\">Coat&lt;\/small>\n                    &lt;p class=\"mb-0\">${item.coat || 'Medium'}&lt;\/p>\n                  &lt;\/div>\n                &lt;\/div>\n                &lt;div class=\"card-footer bg-transparent border-0 pt-0\">\n                  &lt;button class=\"btn btn-sm btn-outline-primary\">Learn More&lt;\/button>\n                &lt;\/div>\n              &lt;\/div>\n            &lt;\/div>`;\n          }\n          \n          \/\/ Setting innerHTML as tab variable\n          document.getElementById(\"data\").innerHTML = tab;\n          \n          \/\/ Show no results message if no data\n          if (data.length === 0) {\n            document.getElementById('noResults').classList.remove('d-none');\n          } else {\n            document.getElementById('noResults').classList.add('d-none');\n          }\n        }\n\n        \/\/ Search functionality\n        document.getElementById('searchInput').addEventListener('input', function(e) {\n          const searchTerm = e.target.value.toLowerCase();\n          const filteredBreeds = allBreeds.filter(item => \n            item.breed.toLowerCase().includes(searchTerm) || \n            item.country.toLowerCase().includes(searchTerm) ||\n            item.origin.toLowerCase().includes(searchTerm)\n          );\n          show(filteredBreeds);\n        });\n      });\n    &lt;\/script>\n  &lt;\/body>\n&lt;\/html><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Here&#8217;s what the result looks like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"586\" src=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.40.22-AM-1024x586.png\" alt=\"javascript Fetch API\" class=\"wp-image-1381\" srcset=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.40.22-AM-1024x586.png 1024w, https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.40.22-AM-300x172.png 300w, https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.40.22-AM-768x439.png 768w, https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.40.22-AM.png 1427w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>The Fetch API has become an essential part of modern JavaScript development, offering a more intuitive and flexible way to fetch resources from servers. Its simplicity, promise-based nature, and support for various data formats make it a powerful tool for building web applications that rely on dynamic data retrieval.<\/p>\n\n\n\n<p>By leveraging the Fetch API, developers can handle asynchronous network requests with ease, handle errors gracefully, and customize requests to suit their application&#8217;s needs. Whether it&#8217;s fetching data from APIs, uploading files, or sending form data, the Fetch API provides a versatile solution.<\/p>\n\n\n\n<p>As the web continues to evolve, the Fetch API remains a valuable addition to a JavaScript developer&#8217;s toolkit. By mastering this powerful API, developers can unlock new possibilities for creating fast, interactive, and data-driven web applications.<\/p>\n\n\n\n<p><a href=\"https:\/\/codeflarelimited.com\/blog\/build-a-news-app-with-javascript-es6\/\" target=\"_blank\" rel=\"noreferrer noopener\">Build a New App with Javascript ES6<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript is a versatile programming language that powers the dynamic nature of the web. With the introduction of<\/p>\n","protected":false},"author":1,"featured_media":1382,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[98],"tags":[],"class_list":["post-1379","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softare-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Use JavaScript Fetch API to Get Real-time Data<\/title>\n<meta name=\"description\" content=\"In this tutorial, we will create a GET request using the Fetch API. We will use a JSON cat placeholder API as our example endpoint.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use JavaScript Fetch API to Get Real-time Data\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, we will create a GET request using the Fetch API. We will use a JSON cat placeholder API as our example endpoint.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/facebook.com\/codeflretech\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-07T07:54:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-22T03:05:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.53.00-AM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"930\" \/>\n\t<meta property=\"og:image:height\" content=\"483\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"codeflare\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codeflaretech\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/\"},\"author\":{\"name\":\"codeflare\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/person\\\/7e65653d49add95629f8c1053c5cd76a\"},\"headline\":\"How to Use JavaScript Fetch API to Get Real-time Data\",\"datePublished\":\"2023-06-07T07:54:22+00:00\",\"dateModified\":\"2025-10-22T03:05:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/\"},\"wordCount\":508,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/Screen-Shot-2023-06-07-at-12.53.00-AM.png\",\"articleSection\":[\"softare development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/\",\"name\":\"How to Use JavaScript Fetch API to Get Real-time Data\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/Screen-Shot-2023-06-07-at-12.53.00-AM.png\",\"datePublished\":\"2023-06-07T07:54:22+00:00\",\"dateModified\":\"2025-10-22T03:05:30+00:00\",\"description\":\"In this tutorial, we will create a GET request using the Fetch API. We will use a JSON cat placeholder API as our example endpoint.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/#primaryimage\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/Screen-Shot-2023-06-07-at-12.53.00-AM.png\",\"contentUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/Screen-Shot-2023-06-07-at-12.53.00-AM.png\",\"width\":930,\"height\":483,\"caption\":\"javascript Fetch API example\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/how-to-use-javascript-fetch-api-to-get-real-time-data\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"softare development\",\"item\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/softare-development\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Use JavaScript Fetch API to Get Real-time Data\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\",\"name\":\"\",\"description\":\"Sustainable solutions\",\"publisher\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\",\"name\":\"Codeflare Limited\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/codeflare.png\",\"contentUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/codeflare.png\",\"width\":1040,\"height\":263,\"caption\":\"Codeflare Limited\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/person\\\/7e65653d49add95629f8c1053c5cd76a\",\"name\":\"codeflare\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g\",\"caption\":\"codeflare\"},\"description\":\"Latest tech news and coding tips.\",\"sameAs\":[\"https:\\\/\\\/codeflarelimited.com\\\/blog\",\"https:\\\/\\\/facebook.com\\\/codeflretech\",\"https:\\\/\\\/instagram.com\\\/codeflaretech\",\"https:\\\/\\\/x.com\\\/codeflaretech\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCuBLtiYqsajHdqw0uyt7Ofw?sub_confirmation=1\"],\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/author\\\/watcher\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Use JavaScript Fetch API to Get Real-time Data","description":"In this tutorial, we will create a GET request using the Fetch API. We will use a JSON cat placeholder API as our example endpoint.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/","og_locale":"en_US","og_type":"article","og_title":"How to Use JavaScript Fetch API to Get Real-time Data","og_description":"In this tutorial, we will create a GET request using the Fetch API. We will use a JSON cat placeholder API as our example endpoint.","og_url":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/","article_author":"https:\/\/facebook.com\/codeflretech","article_published_time":"2023-06-07T07:54:22+00:00","article_modified_time":"2025-10-22T03:05:30+00:00","og_image":[{"width":930,"height":483,"url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.53.00-AM.png","type":"image\/png"}],"author":"codeflare","twitter_card":"summary_large_image","twitter_creator":"@codeflaretech","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/#article","isPartOf":{"@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/"},"author":{"name":"codeflare","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/person\/7e65653d49add95629f8c1053c5cd76a"},"headline":"How to Use JavaScript Fetch API to Get Real-time Data","datePublished":"2023-06-07T07:54:22+00:00","dateModified":"2025-10-22T03:05:30+00:00","mainEntityOfPage":{"@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/"},"wordCount":508,"commentCount":0,"publisher":{"@id":"https:\/\/codeflarelimited.com\/blog\/#organization"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/#primaryimage"},"thumbnailUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.53.00-AM.png","articleSection":["softare development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/","url":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/","name":"How to Use JavaScript Fetch API to Get Real-time Data","isPartOf":{"@id":"https:\/\/codeflarelimited.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/#primaryimage"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/#primaryimage"},"thumbnailUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.53.00-AM.png","datePublished":"2023-06-07T07:54:22+00:00","dateModified":"2025-10-22T03:05:30+00:00","description":"In this tutorial, we will create a GET request using the Fetch API. We will use a JSON cat placeholder API as our example endpoint.","breadcrumb":{"@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/#primaryimage","url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.53.00-AM.png","contentUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.53.00-AM.png","width":930,"height":483,"caption":"javascript Fetch API example"},{"@type":"BreadcrumbList","@id":"https:\/\/codeflarelimited.com\/blog\/how-to-use-javascript-fetch-api-to-get-real-time-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codeflarelimited.com\/blog\/"},{"@type":"ListItem","position":2,"name":"softare development","item":"https:\/\/codeflarelimited.com\/blog\/softare-development\/"},{"@type":"ListItem","position":3,"name":"How to Use JavaScript Fetch API to Get Real-time Data"}]},{"@type":"WebSite","@id":"https:\/\/codeflarelimited.com\/blog\/#website","url":"https:\/\/codeflarelimited.com\/blog\/","name":"","description":"Sustainable solutions","publisher":{"@id":"https:\/\/codeflarelimited.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codeflarelimited.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/codeflarelimited.com\/blog\/#organization","name":"Codeflare Limited","url":"https:\/\/codeflarelimited.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2020\/11\/codeflare.png","contentUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2020\/11\/codeflare.png","width":1040,"height":263,"caption":"Codeflare Limited"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/person\/7e65653d49add95629f8c1053c5cd76a","name":"codeflare","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g","caption":"codeflare"},"description":"Latest tech news and coding tips.","sameAs":["https:\/\/codeflarelimited.com\/blog","https:\/\/facebook.com\/codeflretech","https:\/\/instagram.com\/codeflaretech","https:\/\/x.com\/codeflaretech","https:\/\/www.youtube.com\/channel\/UCuBLtiYqsajHdqw0uyt7Ofw?sub_confirmation=1"],"url":"https:\/\/codeflarelimited.com\/blog\/author\/watcher\/"}]}},"jetpack_featured_media_url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2023\/06\/Screen-Shot-2023-06-07-at-12.53.00-AM.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/1379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/comments?post=1379"}],"version-history":[{"count":4,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/1379\/revisions"}],"predecessor-version":[{"id":3105,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/1379\/revisions\/3105"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/media\/1382"}],"wp:attachment":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/media?parent=1379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/categories?post=1379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/tags?post=1379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}