How to Fetch Data from an API: A Beginner’s Guide

Written by

Gourav Bishnoi
Front End Developer
Table of contents
Build with Radial Code
Data Fetch refers to the act of obtaining information from a server or database to present on a webpage. This typically involves sending an HTTP request to a particular URL and receiving data—commonly in formats like JSON or XML—in response. Once retrieved, this data is utilized to update the user interface, display content, or trigger other operations within the application.
What is API
API stands for Application Programming Interface, acts as a bridge between different software systems. Imagine it like a messenger that takes a request from one part of a program, delivers it to another system (like a server), and then returns the response — similar to how a delivery service brings your order to your door.

- Weather updates from a weather API
- Movie details from a movie database
- User info from a social media platform
Tools You’ll Need
- A browser or code editor (like VS Code)
- Basic knowledge of JavaScript
- An API to test with (we’ll use a free one)
How to Fetch Data Using the Fetch API

JavaScript's built-in Fetch API allows you to interact with web servers by sending and receiving data. Here’s a simple example showing how it works with a sample API:
fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(data => {
console.log('Fetched Data:', data);
})
.catch(error => {
console.error('Error:', error);
});
What’s Happening Here?
- fetch()is used to send a request to a specified API endpoint.
- then(response => response.json())takes the response and parses it into JSON format so it’s easier to work with.
- then(data => { ... })gives you access to the parsed data, allowing you to do whatever you need with it.
- catch()is there to catch and handle any potential errors—like a failed request or connection issue—so your app doesn't crash.
Example in a Real Project (HTML + JS)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>API Demo</title>
</head>
<body>
<h1>Posts</h1>
<ul id="post-list"></ul>
<script>
fetch('https://jsonplaceholder.typicode.com/posts')
.then(res => res.json())
.then(posts => {
const list = document.getElementById('post-list');
posts.forEach(post => {
const li = document.createElement('li');
li.textContent = post.title;
list.appendChild(li);
});
});
</script>
</body>
</html>
This will display a list of post titles on your webpage.
Tips for Beginners
Make sure to review the API documentation—it provides details about available endpoints, the structure of the returned data, and any authentication requirements like API keys
- Some APIs have usage limits — don’t spam requests!
- Use console.log() to inspect the data you’re receiving.
- Start with public APIs like:
Next Steps
After mastering the fundamentals, you can dive into more advanced methods and strategies:
- Use async/await for cleaner syntax.
- Fetch data in frameworks like React or Vue.
- Handle loading states and errors gracefully.
- Use libraries like Axios for more control.
More Fun With JSONPlaceholder
Try experimenting with these other endpoints:
- /posts – List of blog posts
- /comments – Comments on posts
- /todos – To-do items
- /albums – Photo albums
Example:
fetch('https://jsonplaceholder.typicode.com/posts')
Common API Response Formats
When working with APIs, it's important to understand the format of the data you receive. Most modern APIs return data in JSON (JavaScript Object Notation), which is lightweight and easy to read in JavaScript.
Example JSON Response from JSONPlaceholder:
[
{
"id": 1,
"name": "Leanne Graham",
"email": "Sincere@april.biz",
"address": {
"city": "Gwenborough"
}
},
...
]
Tips for Reading JSON:
- JSON data is made up of key-value pairs
- Arrays ([ ]) contain multiple records
- Objects ({ }) hold related data grouped under one item
- Use dot notation (e.g., user.name) to access values
Understanding JSON structure will help you extract the exact data you need from an API response and display it correctly on your website or app.