A REST API (Representational State Transfer) is a way for two systems to communicate over HTTP using a small set of conventions: URLs identify resources, HTTP verbs (GET, POST, PUT, PATCH, DELETE) describe actions, status codes communicate outcomes, and JSON typically carries the data. Most modern web APIs are REST or REST-adjacent. The benefit is universality — any language with an HTTP client can call a REST API, and any developer who knows HTTP can read one with no extra learning curve.
The core conventions
A well-designed REST API maps cleanly to the resources it exposes. For an object type called calls, the conventional URL space is:
| Verb | URL | Purpose | Typical response |
|---|---|---|---|
GET | /v1/calls | List calls (paginated) | 200 with JSON list |
GET | /v1/calls/{id} | Read one call | 200 with JSON object, or 404 |
POST | /v1/calls | Create a new call | 201 with the created resource |
PATCH | /v1/calls/{id} | Update specific fields | 200 with the updated resource |
PUT | /v1/calls/{id} | Replace the entire resource | 200 with the new resource |
DELETE | /v1/calls/{id} | Delete the resource | 204 with no body, or 200 with the deleted record |
Why this matters in practice
Once you internalise the verb-on-URL pattern, every well-designed REST API follows the same shape. You read documentation faster, your code is easier to skim, and switching between providers is mostly mechanical: change the base URL, change the auth header, the rest is similar enough. The places APIs differ matter (auth, rate limits, pagination, error format, versioning) and we cover each below.
REST is not a strict spec
"REST" was coined in Roy Fielding's 2000 PhD thesis and described an architectural style, not a wire format. Most APIs that call themselves REST violate parts of his definition (HATEOAS in particular is rare), and the term has settled into meaning "JSON over HTTP with conventional verbs and URLs". For practical purposes that's the working definition you need; the academic purity arguments rarely matter to integration code.
What about GraphQL, gRPC and others?
- GraphQL is a single-endpoint query language; clients ask for exactly the fields they want. Strong for client-driven UIs (mobile apps, complex dashboards). Weaker for fixed integration patterns where REST simplicity wins.
- gRPC is a binary RPC protocol over HTTP/2 with auto-generated client code from .proto files. Very fast, very strongly typed, used heavily inside service-to-service backends. Less common as a public API surface because it is harder to call from random tools.
- JSON-RPC, SOAP, XML-RPC exist; you encounter them mostly in legacy or specific-vendor contexts.
For most public-facing APIs in 2026, REST + JSON is the pragmatic default and what this guide covers. The Team-Connect API is REST + JSON; the patterns here apply directly.
/getUserByEmail with a body containing the email), it is not really REST — just RPC dressed in REST clothes. Real REST APIs read like sentences.