HAL (Hypertext Application Language) is a media-type specification for representing resources and their links in JSON or XML. It provides a simple, consistent convention for embedding hyperlinks and related resources to enable hypermedia-driven APIs.
HAL
HAL (Hypertext Application Language) is a lightweight media-type convention for representing resources and their links in JSON or XML. Created by Mike Kelly in 2011, it defines just two reserved properties, _links and _embedded, giving APIs a simple, consistent way to attach hyperlinks and nest related resources so that clients can navigate an API by following links rather than hard-coding URLs.
_linksfor navigation - Every resource can advertise related URLs, including aselflink, so clients discover where to go next._embeddedfor related resources - Full or partial representations of related resources can be nested inline to cut round trips.- Media types -
application/hal+jsonandapplication/hal+xmlsignal the format so clients parse it correctly. - Deliberately minimal - HAL adds hypermedia with almost no ceremony, which is much of why it saw real-world adoption.
In real API operations HAL is one of the more pragmatic ways providers add hypermedia to otherwise plain JSON responses, and I still find it in the wild alongside formats like JSON-LD when a team wants links without a heavy standard. Its self-describing links make an API more navigable for both human developers and machine clients, which is exactly the property that matters as agents attempt to traverse an API on their own. Where a provider ships HAL, I read it as a sign they have thought about discoverability and the hypermedia constraint of REST rather than treating endpoints as isolated calls.
Referenced on the API Evangelist blog
Where this standard shows up across sixteen years of my writing at apievangelist.com — how it fits into API design, governance, and the agentic turn.