Browser APIs
This lesson explains Browser APIs with clear examples, use cases, and best practices so you can use HTML5 APIs confidently in real web applications.
HTML5 Browser APIs Overview
HTML5 Browser APIs provide powerful native features that allow websites
and web applications to interact with the browser, device, network,
storage, media, files, graphics, performance data, and user interface.
These APIs make modern web applications more interactive, responsive,
offline-ready, and app-like without requiring third-party plugins.
Browser APIs work with JavaScript and are supported directly by modern
browsers. Developers can use them to build features such as location
tracking, offline caching, push notifications, file uploads, real-time
communication, animations, background processing, and client-side data
storage.
| Category | Common APIs |
| Storage | Local Storage, Session Storage, IndexedDB, Cache API |
| Network | Fetch API, WebSocket, Server-Sent Events, WebRTC |
| Media | Audio, Video, MediaDevices, MediaRecorder, Web Audio |
| Device | Geolocation, Device Orientation, Vibration, Gamepad |
| Files | File API, Blob API, FileReader, Clipboard, Drag and Drop |
| Performance | Performance API, Intersection Observer, Resize Observer |
Basic Browser API Example
// HTML5 Browser APIs Example
localStorage.setItem("theme", "dark");
fetch("/api/users")
.then((response) => response.json())
.then((users) => {
console.log(users);
});
if ("geolocation" in navigator) {
navigator.geolocation.getCurrentPosition((position) => {
console.log(position.coords.latitude);
console.log(position.coords.longitude);
});
}
This example uses multiple browser APIs: Local Storage for saving user
preferences, Fetch API for server communication, and Geolocation API for
accessing the user's location with permission.
Popular HTML5 Browser APIs
The following browser APIs are commonly used in modern frontend and
full-stack web applications.
| API | Purpose | Example Syntax |
| Fetch API | Make HTTP requests. | fetch("/api/data") |
| Local Storage | Store small persistent data. | localStorage.setItem("key", "value") |
| Session Storage | Store tab-based temporary data. | sessionStorage.setItem("key", "value") |
| IndexedDB | Store large structured data. | indexedDB.open("app-db") |
| Geolocation API | Access user location. | navigator.geolocation.getCurrentPosition() |
| Clipboard API | Read and write clipboard text. | navigator.clipboard.writeText("Hello") |
| Notification API | Show system notifications. | Notification.requestPermission() |
| History API | Update browser URL without reload. | history.pushState({}, "", "/page") |
| Web Workers | Run JavaScript in background threads. | new Worker("worker.js") |
| Service Workers | Support offline caching and background tasks. | navigator.serviceWorker.register() |
Browser API Categories
Browser APIs can be grouped by what part of the application they help
with, such as storage, networking, media, files, device access, and
performance optimization.
| Category | APIs | Use Cases |
| Storage APIs | Local Storage, Session Storage, IndexedDB, Cache API | User preferences, offline data, app cache. |
| Communication APIs | Fetch, WebSocket, WebRTC, Broadcast Channel | API calls, real-time updates, video calls, tab sync. |
| Media APIs | Audio, Video, MediaDevices, MediaRecorder, Web Audio | Players, recording, camera access, audio apps. |
| File APIs | File API, Blob API, FileReader, File System Access | Uploads, previews, downloads, file editors. |
| Device APIs | Geolocation, Device Orientation, Vibration, Gamepad | Maps, games, motion interfaces, mobile feedback. |
| Performance APIs | Performance, Intersection Observer, Resize Observer | Lazy loading, monitoring, layout observation. |
| Browser UI APIs | History, Fullscreen, Page Visibility, Notification | SPA routing, fullscreen apps, tab visibility, alerts. |
| Graphics APIs | Canvas, SVG, WebGL, WebGPU | Charts, games, visualizations, 3D graphics. |
Browser API Support & Feature Detection
Not every browser supports every API. Always check feature availability
before using browser APIs, especially newer APIs or privacy-sensitive
APIs such as Battery, Clipboard, Notification, and File System Access.
// Feature detection example
if ("clipboard" in navigator) {
navigator.clipboard.writeText("Copied text");
} else {
console.log("Clipboard API is not supported.");
}
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js");
}
Browser API Best Practices
- Always check browser support before using advanced APIs.
- Request user permission only when the feature is needed.
- Provide fallback behavior when an API is unavailable.
- Use secure HTTPS for APIs that require protected contexts.
- Never store sensitive data in Local Storage or Session Storage.
- Handle errors, permission denial, and unsupported browsers gracefully.
- Use browser APIs progressively to enhance the user experience.
- Optimize performance when using APIs that process large data or media.
Common Browser API Mistakes
- Assuming every browser supports the same APIs.
- Requesting permissions immediately on page load.
- Ignoring API errors and permission denials.
- Storing authentication tokens in Local Storage.
- Using powerful APIs without explaining why they are needed.
- Not providing fallback behavior for unsupported browsers.
- Running heavy processing on the main thread instead of using workers.
- Using browser APIs without considering privacy and security.
Key Takeaways
- HTML5 Browser APIs extend what websites can do inside the browser.
- Browser APIs work with JavaScript to access storage, media, files, devices, and networking.
- Popular APIs include Fetch, Storage, Geolocation, Clipboard, Workers, and Service Workers.
- Use feature detection before relying on browser-specific capabilities.
- Handle permissions, fallbacks, errors, privacy, and security carefully.
- Browser APIs help build modern, app-like, offline-ready, and interactive web applications.
Pro Tip
Treat Browser APIs as progressive enhancements. Build the core experience
first, then add APIs such as Geolocation, Clipboard, Notifications,
Service Workers, and File Access only when they improve the user
experience. Always provide a fallback for unsupported browsers.