Resources are exposed through URLs and manipulated with HTTP methods whose semantics match the requested action. Representations such as JSON carry state between client and server. Consistent status codes and idempotency behavior make the interface easier to integrate safely.