TL;DR: REST API is a stateless Web API that allows systems to communicate over HTTP/HTTPS at the application layer without storing client session state on the server..

The term REST API combines two distinct concepts: REST (Representational State Transfer) and API (Application Programming Interface).

We will explain APIs first, followed by REST.


An API is a mechanism that allows systems; such as virtual machines, containers, or networked devices to communicate with each other at the application layer.

At a high level, APIs are categorized into two primary forms:

  • Web APIs: Operate over network protocols like HTTP and HTTPS to exchange data between remote clients and servers.
  • System/Library APIs: Operate locally within memory to allow software programs to interact directly with operating system functions or compiled code libraries.

You can inspect how Web APIs communicate directly in your web browser:

  1. Open DevTools (F12 or Ctrl+Shift+I / Cmd+Option+I).
  2. Navigate to the Network tab.
  3. Select the Fetch/XHR filter to isolate API calls.

This inspection method works consistently across all major browsers, including Chrome, Edge, Firefox, and Safari.


REST is an architectural style that governs how Web APIs structure their communication. One of its defining principles is that all requests must be stateless; meaning the server does not retain any client context or session state between requests; every request must contain all the information necessary to understand and process it.

Since this post focuses specifically on REST, we will not cover other Web API architectural styles (such as GraphQL or gRPC).

REST APIs rely on standard HTTP methods to perform CRUD (Create, Read, Update, Delete) operations:

  • POST (Create): Submits data to create a new resource on the server.
  • GET (Read): Retrieves data or representations of resources without modifying them.
  • PUT (Update): Replaces or updates an existing resource entirely (or creates it if it does not exist). Note: PATCH is often used alongside PUT for partial updates.
  • DELETE (Delete): Removes a specified resource from the server.

Back to Certified Cloud Native Platform Engineering Associate Preparation