Description
Hypertext Application Language (HAL) is a simple, lightweight media type (application/hal+json or application/hal+xml) designed for representing resources and their relationships in hypermedia-driven RESTful APIs. It structures API responses to include not only data but also hyperlinks that indicate possible actions and relationships to other resources, adhering to the HATEOAS (Hypermedia as the Engine of Application State) constraint. This enables clients to dynamically discover and navigate APIs without prior knowledge of URI structures, promoting loose coupling between clients and servers. In 3GPP, HAL is adopted within service-based architectures, particularly for interfaces between Network Functions (NFs) in the 5G Core, to facilitate flexible and scalable communication.
The HAL format organizes resources into two main components: the resource state (data properties) and embedded resources (sub-resources included within the response). Each resource contains a '_links' object with hyperlinks keyed by relation types (e.g., 'self', 'next', 'related'), which define navigational paths. For example, a network function instance resource might include links to its associated services or management endpoints. This link-centric approach allows clients to traverse the API by following relations, reducing hardcoded dependencies and enabling API evolution without breaking clients. HAL also supports curies (compact URIs) for defining custom link relations, enhancing readability and standardization.
In 3GPP specifications, HAL is utilized in HTTP-based service-based interfaces (SBIs) defined for the 5G Core Network, such as those between the Access and Mobility Management Function (AMF) and Session Management Function (SMF). It works by serializing resource representations in JSON or XML format, with predefined schemas for network function discovery, registration, and service consumption. The protocol leverages standard HTTP methods (GET, POST, PUT, DELETE) and status codes, with HAL providing the structural consistency for responses. This enables automated service interaction, dynamic load balancing, and fault tolerance, as clients can discover alternative instances via links. The use of HAL aligns with cloud-native principles, supporting microservices architectures and continuous deployment in telecom networks.
Purpose & Motivation
HAL was introduced in 3GPP to address the need for standardized, hypermedia-driven communication in service-based architectures, particularly with the transition to 5G. Prior approaches, such as proprietary APIs or non-hypermedia REST, led to tight coupling between network functions, making systems brittle and difficult to evolve. HAL solves this by embedding discoverability into API responses, allowing clients to adapt to changes dynamically and reducing integration complexity.
The motivation for adopting HAL stems from the shift towards cloud-native and microservices-based core networks, where network functions are decoupled and deployed independently. Traditional telecom interfaces were often static and point-to-point, hindering scalability and agility. HAL enables a more flexible interaction model, where services can be discovered and consumed on-demand, supporting automation, orchestration, and network slicing. This is critical for 5G's demands on low latency, high reliability, and service diversity.
Historically, API design in telecom relied on protocol-specific methods (e.g., Diameter) with fixed message flows. HAL provides a web-friendly, RESTful alternative that aligns with IT industry practices, facilitating integration with cloud platforms and third-party services. It addresses limitations like versioning issues and client updates by using hyperlinks as the primary means of navigation, ensuring backward compatibility and future-proofing network interfaces. This enhances interoperability and accelerates innovation in network service deployment.
Classification
Detected Changes Across Releases
from 3GPP Change RequestsSpecific changes extracted from the „Change history“ tables of 3GPP specifications (1 CRs across 1 releases). Complements the general historical overview above with the evidence-based evolution of this function.
Studied in Rel-15, normative work from Rel-16.
In Release 16, the primary new introduction for the Hypertext Application Language (HAL) function was the specification of the **HAL-forms media type**. This addition provides a concrete hypermedia format to implement the optional HATEOAS (Hypermedia as the Engine of Application State) principles within 5GC Service-Based Interfaces, as outlined in the release's guidelines. It enables resource representations to embed control state options, guiding the NF service consumer through application state transitions via standardized hypermedia markups.
- HAL-forms media type TS 29.501CR0066
Explore further
Broader topics and technologies where HAL plays a role.
Defining Specifications
3GPP specifications that define or reference HAL, with the latest known release. Sourced from the 3GPP document catalog — see methodology.
| Specification | Title | Release |
|---|---|---|
| TS 29.501 vj40 | 5GC SBI API Design Principles & Guidelines | Rel-19 |
| TS 32.866 vf00 | REST, HTTP, JSON for Management Interfaces | Rel-15 |
| TR 38.857 vh00 | Study on NR Positioning Enhancements | Rel-17 |