# TVMaze Uses HAL For Their API Media Type

**Canonical:** https://apievangelist.com/2018/07/16/tvmaze-uses-hal-for-their-api-media-type/

<p>One of the layers of the API universe where I come across an increased number Hypermedia APIs is in the movie, television, and entertainment space. Where having a more flowing API experience makes a lot of sense, and the extra investment in link relations will pay off. One example of this I recently came across was over at TVMaze, <a href="https://www.tvmaze.com/api">who has a pretty robust hypermedia API</a>, where they opted for using HAL as their media type.

<p>Like any good hypermedia should, TVMaze begins with its root URL: http://api.tvmaze.com, and provides a robust set of endpoints from there:
<p><img src="https://kinlane-images.s3.amazonaws.com/apievangelist/tv-maze/tvmaze-ha.png" width="40%" align="right" />
<h2 id="search">Search</h2>
<ul>
  <li><a href="http://www.tvmaze.com/api#show-search">Show Search</a></li>
  <li><a href="http://www.tvmaze.com/api#show-single-search">Show single search</a></li>
  <li><a href="http://www.tvmaze.com/api#show-lookup">Show Lookup</a></li>
  <li><a href="http://www.tvmaze.com/api#people-search">People search</a></li>
</ul>

<h2 id="schedule">Schedule</h2>
<ul>
  <li><a href="http://www.tvmaze.com/api#full-schedule">Full Schedule</a></li>
</ul>

<h2 id="shows">Shows</h2>
<ul>
  <li><a href="http://www.tvmaze.com/api#show-main-information">Show main information</a></li>
  <li><a href="http://www.tvmaze.com/api#show-episode-list">Show episode list</a></li>
  <li><a href="http://www.tvmaze.com/api#episode-by-number">Episode by number</a></li>
  <li><a href="http://www.tvmaze.com/api#episodes-by-date">Episodes by date</a></li>
  <li><a href="http://www.tvmaze.com/api#show-seasons">Show seasons</a></li>
  <li><a href="http://www.tvmaze.com/api#season-episodes">Season episodes</a></li>
  <li><a href="http://www.tvmaze.com/api#show-cast">Show cast</a></li>
  <li><a href="http://www.tvmaze.com/api#show-crew">Show crew</a></li>
  <li><a href="http://www.tvmaze.com/api#show-aka">Show AKA’s</a></li>
  <li><a href="http://www.tvmaze.com/api#show-index">Show index</a></li>
</ul>

<h2 id="people">People</h2>
<ul>
  <li><a href="http://www.tvmaze.com/api#person-main-information">Person main information</a></li>
  <li><a href="http://www.tvmaze.com/api#person-cast-credits">Person cast credits</a></li>
  <li><a href="http://www.tvmaze.com/api#person-crew-credits">Person crew credits</a></li>
</ul>

<h2 id="updates">Updates</h2>
<ul>
  <li><a href="http://www.tvmaze.com/api#show-updates">Show updates</a></li>
</ul>

<p>The TVMaze API isn’t an overly complex hypermedia API. I think it is simple, elegant, and shows how you can use link relations to establish a more meaningful experience for API consumers. Allowing you to navigate the large, ever-changing catalog of television shows, allowing the API client to do the heavy lifting of navigating the shows, schedules, and people involved with each production.

<p>There hasn’t been enough showcasing of the <a href="http://hypermedia.apievangelist.com">hypermedia APIs</a> available out there. Usually once a year I remember to give the subject some attention, or when I come across interesting ones like TVMaze. Hypermedia isn’t just an academic idea anymore, and is something that has gotten traction in a number of sectors, and I keep seeing signs of growth and adoption. I don’t think it will be the API solution most hypermedia believers envisioned it, but I do think it is a viable tool in our API toolbox, and for the right projects it makes a lot of sense.
