Tech Definitions
What Is a REST API?
REST is the architectural style behind most APIs you'll ever call -- here's what the term actually means.
What Is REST?
REST (Representational State Transfer) is an architectural style for designing networked APIs, defined by a set of constraints rather than a specific protocol or format. A REST API represents resources (like a "job posting" or a "user") as URLs, and lets clients act on them using standard HTTP methods -- GET to read, POST to create, PUT/PATCH to update, DELETE to remove.
Core REST Principles
- Resources are identified by URLs (e.g. /jobs/123, not /getJob?id=123)
- Standard HTTP methods carry the meaning of the action (GET, POST, PUT, DELETE)
- Stateless -- each request contains everything needed to process it; the server holds no client session state between requests
- Responses use standard HTTP status codes (200 OK, 404 Not Found, 201 Created, etc.)
- Resources are typically represented as JSON, though REST doesn't mandate a specific format
Common HTTP Status Codes in REST APIs
| Code | Meaning |
|---|---|
| 200 OK | Request succeeded |
| 201 Created | A new resource was created |
| 400 Bad Request | The request was malformed |
| 401 Unauthorized | Authentication is required or failed |
| 404 Not Found | The resource doesn't exist |
| 500 Internal Server Error | Something failed on the server |
Frequently Asked Questions
Not necessarily -- many APIs are loosely called "REST APIs" without following every REST constraint strictly (like true statelessness or hypermedia links). In practice, "REST API" is often used more loosely to mean "a resource-oriented HTTP+JSON API," which is fine for most real-world purposes.
PUT is conventionally used to replace a resource entirely; PATCH is used to apply a partial update to just some fields. Many APIs are lenient about this distinction in practice, but it's a common interview question.
No -- REST doesn't mandate a format. XML was common historically, and some APIs still support multiple formats via content negotiation. JSON is simply the dominant convention today.