Implement custom usePolling hook in React
Explore code implementation and details of the custom usePolling hook in React to use the common API polling logic.
Anuj Sharma
Last Updated Jun 11, 2026

API polling is a common requirement in frontend development to fetch data from a server at regular intervals. In React, we can create a custom usePolling hook to encapsulate the logic of fetching data at specified intervals.
This blog post will cover the code implementation and usage of the custom usePolling hook in React.
What you need to know
- Understanding of React hooks
- Fetch API call implementation
Code Implementation - usePolling Hook
Let's create a custom usePolling hook that fetches data from an API endpoint at regular intervals.
import React, { useState, useEffect } from 'react';
const usePolling = (url, interval) => {
const [data, setData] = useState(null);
const fetchData = async () => {
try {
const response = await fetch(url);
const jsonData = await response.json();
setData(jsonData);
} catch (error) {
console.error('Error fetching data:', error);
}
};
useEffect(() => {
fetchData();
const pollingId = setInterval(() => {
fetchData();
}, interval);
return () => {
clearInterval(pollingId);
};
}, [url, interval]);
return data;
};
export default usePolling;
How to use this hook?
Now, let's see how we can use the usePolling hook in a React component.
import React from 'react';
import usePolling from './usePolling';
const PollingComponent = () => {
const data = usePolling('https://api.example.com/data', 5000);
return (
<div>
{data && <p>{JSON.stringify(data)}</p>}
</div>
);
};
export default PollingComponent;
This custom usePolling hook in React can now help to handle API polling logic. This hook can be reused across multiple components to fetch data at regular intervals efficiently.
Now that you understand this custom hook, let's explore 20+ Most Asked Custom Hooks in React to prepare for your next frontend interview
Love this Blog? Share it Now!
Help others discover this resource
A seasoned Sr. Engineering Manager at GoDaddy (Ex-Dell) with over 12+ years of experience in the frontend technologies. A frontend tech enthusiast passionate building SaaS application to solve problem. Know more about me 🚀








