Hydra

Build better Web APIs.
Enable smart clients.

Hydra simplifies the development of interoperable, hypermedia-driven Web APIs

Building Web APIs seems still more an art than a science. How can we build APIs such that generic clients can easily use them? And how do we build those clients? Current APIs heavily rely on out-of-band information such as human-readable documentation and API-specific SDKs. However, this only allows for very simple and brittle clients that are hardcoded against specific APIs. Hydra, in contrast, is a set of technologies that allow to design APIs in a different manner, in a way that enables smarter clients.

Hydra Core Vocabulary

Essential building blocks for machine-accessible Hypermedia APIs

Read the specification

There also exists a demo Web API featuring a simple issue tracker which allows you to play with Hydra directly in your web browser.

Linked Data Fragments

API and client designs to publish and query Linked Data at Web-scale

Get familiar with Linked Data Fragments or read the triple pattern fragments specification

Various LDF data sources are already available. Query them.

Join the Working Group

Wanna help? Then join the Hydra W3C Community Group. Here's how:

  1. Get a free W3C account (it may take a while to get approved).
  2. Join the Hydra W3C Community Group.
  3. Bonus points: Send an email to introduce yourself to the group.

Tools/Libraries/​Applications

  • HydraConsole: a generic API console for Hydra-powered Web APIs
  • HydraBundle: a bundle for Symfony2 to create Web APIs based on Hydra (demo application)
  • API Platform: a PHP framework to build Web APIs with JSON-LD, Schema.org and Hydra
  • hydra-java: annotate your Java beans and serialize them as JSON-LD with Hydra
  • URSA: a framework written in C# to create Hydra-powered Web APIs
  • hydrus: a set of Python based tools to create Hydra-powered Web APIs
  • Levanzo: Clojure library to build hypermedia driven RESTful APIs
  • Argolis: Hydra hypermedia controls for .NET web applications written in Nancy
  • hydra-core: a JavaScript library to work with Hydra-enabled Web APIs
  • SmallHydra: a small Hydra library for the ESP8266 and Arduino platform
  • hydra-py: a Hydra library for Python (including a Triple Patterns Fragments client)
  • Alcaeus: a Hydra client library written in TypeScript
  • HydraClient: a PHP client library to access Hydra-powered Web APIs
  • api-doc-parser: a JavaScript library to parse Hydra API documentations
  • JsonLD: a JSON-LD processor implemented in PHP
  • Linked Data Fragments Server: serve triple pattern fragments (JavaScript, Java, NetKernel)
  • Linked Data Fragments Client: query a Linked Data Fragments API (JavaScript, browser, Java)

Publications/​Presentations