     (.replace html re (fn [s m1 m2]
                         (let [[name & path] (string/split m1 #"\.")
                               var (case name
-                                    "versions" (aget js/window "CI" "Versions"))
+                                    "versions" (aget js/window "CI" "Versions")
+                                    "api_data" (aget js/window "api_data"))
                               val (apply aget var path)
                               filter (case m2
                                        "code-list" code-list-filter
+                                       "api-endpoint" api-endpoint-filter
                                        identity)]
-                          (filter val))))))
+                          (filter (js->clj val :keywordize-keys true)))))))
 
 (defn replace-asset-paths [html]
   (let [re (js/RegExp. "\"asset:/(.*?)\"" "g")]

         #js {"__html"  ((aget (aget js/window "HAML") template-name)
                         (clj->js (merge {"include_article" include-article} args)))}}])

(defn code-list-filter [versions]
  (let [component (fn [vs]
                    (om/component

(ns frontend.utils.docs
  (:require [clojure.string :as string]
            [frontend.stefon :as stefon]
            [frontend.utils :as utils :include-macros true :refer [defrender]]
            [goog.string :as gstring]
            goog.string.format
            [frontend.state :as state]
