diff --git a/content/docs/0.9.8/api.html b/content/docs/0.9.8/api.html
new file mode 100644
index 0000000..8ee5a1d
--- /dev/null
+++ b/content/docs/0.9.8/api.html
@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/markdown/api.md at 2022-05-12
+ | Rendered using Apache Maven Fluido Skin 1.7
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20220512" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>AsterixDB &#x2013; HTTP API to AsterixDB</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.7.min.js"></script>
+
+  </head>
+  <body class="topBarDisabled">
+    <div class="container-fluid">
+      <div id="banner">
+        <div class="pull-left"><a href="./" id="bannerLeft"><img src="images/asterixlogo.png"  alt="AsterixDB"/></a></div>
+        <div class="pull-right"></div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+        <li id="publishDate">Last Published: 2022-05-12</li>
+      <li id="projectVersion" class="pull-right">Version: 0.9.8</li>
+      <li class="pull-right"><a href="index.html" title="Documentation Home">Documentation Home</a></li>
+        </ul>
+      </div>
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+    <ul class="nav nav-list">
+      <li class="nav-header">Get Started - Installation</li>
+    <li><a href="ncservice.html" title="Option 1: using NCService"><span class="none"></span>Option 1: using NCService</a></li>
+    <li><a href="ansible.html" title="Option 2: using Ansible"><span class="none"></span>Option 2: using Ansible</a></li>
+    <li><a href="aws.html" title="Option 3: using Amazon Web Services"><span class="none"></span>Option 3: using Amazon Web Services</a></li>
+      <li class="nav-header">AsterixDB Primer</li>
+    <li><a href="sqlpp/primer-sqlpp.html" title="Using SQL++"><span class="none"></span>Using SQL++</a></li>
+      <li class="nav-header">Data Model</li>
+    <li><a href="datamodel.html" title="The Asterix Data Model"><span class="none"></span>The Asterix Data Model</a></li>
+      <li class="nav-header">Queries</li>
+    <li><a href="sqlpp/manual.html" title="The SQL++ Query Language"><span class="none"></span>The SQL++ Query Language</a></li>
+    <li><a href="SQLPP.html" title="Raw SQL++ Grammar"><span class="none"></span>Raw SQL++ Grammar</a></li>
+    <li><a href="sqlpp/builtins.html" title="Builtin Functions"><span class="none"></span>Builtin Functions</a></li>
+      <li class="nav-header">API/SDK</li>
+    <li class="active"><a href="#"><span class="none"></span>HTTP API</a></li>
+    <li><a href="csv.html" title="CSV Output"><span class="none"></span>CSV Output</a></li>
+      <li class="nav-header">Advanced Features</li>
+    <li><a href="aql/externaldata.html" title="Accessing External Data"><span class="none"></span>Accessing External Data</a></li>
+    <li><a href="feeds.html" title="Data Ingestion with Feeds"><span class="none"></span>Data Ingestion with Feeds</a></li>
+    <li><a href="udf.html" title="User Defined Functions"><span class="none"></span>User Defined Functions</a></li>
+    <li><a href="sqlpp/filters.html" title="Filter-Based LSM Index Acceleration"><span class="none"></span>Filter-Based LSM Index Acceleration</a></li>
+    <li><a href="sqlpp/fulltext.html" title="Support of Full-text Queries"><span class="none"></span>Support of Full-text Queries</a></li>
+    <li><a href="sqlpp/similarity.html" title="Support of Similarity Queries"><span class="none"></span>Support of Similarity Queries</a></li>
+    <li><a href="geo/quickstart.html" title="GIS Support Overview"><span class="none"></span>GIS Support Overview</a></li>
+    <li><a href="geo/functions.html" title="GIS Functions"><span class="none"></span>GIS Functions</a></li>
+    <li><a href="interval_join.html" title="Support of Interval Joins"><span class="none"></span>Support of Interval Joins</a></li>
+    <li><a href="spatial_join.html" title="Support of Spatial Joins"><span class="none"></span>Support of Spatial Joins</a></li>
+    <li><a href="sqlpp/arrayindex.html" title="Support of Array Indexes"><span class="none"></span>Support of Array Indexes</a></li>
+      <li class="nav-header">Deprecated</li>
+    <li><a href="aql/primer.html" title="AsterixDB Primer: Using AQL"><span class="none"></span>AsterixDB Primer: Using AQL</a></li>
+    <li><a href="aql/manual.html" title="Queries: The Asterix Query Language (AQL)"><span class="none"></span>Queries: The Asterix Query Language (AQL)</a></li>
+    <li><a href="aql/builtins.html" title="Queries: Builtin Functions (AQL)"><span class="none"></span>Queries: Builtin Functions (AQL)</a></li>
+</ul>
+          <hr />
+          <div id="poweredBy">
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+<a href="./" title="AsterixDB" class="builtBy"><img class="builtBy"  alt="AsterixDB" src="images/asterixlogo.png"    /></a>
+            </div>
+          </div>
+        </div>
+        <div id="bodyColumn"  class="span10" >
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership.  The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License.  You may obtain a copy of the License at
+ !
+ !   http://www.apache.org/licenses/LICENSE-2.0
+ !
+ ! Unless required by applicable law or agreed to in writing,
+ ! software distributed under the License is distributed on an
+ ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ! KIND, either express or implied.  See the License for the
+ ! specific language governing permissions and limitations
+ ! under the License.
+ !-->
+<h1>HTTP API to AsterixDB</h1>
+<div class="section">
+<h2><a name="Table_of_Contents"></a><a name="toc" id="toc">Table of Contents</a></h2>
+<ul>
+
+<li><a href="#queryservice">Query Service API</a></li>
+<li><a href="#querystatus">Query Status API</a></li>
+<li><a href="#queryresult">Query Result API</a></li>
+</ul></div>
+<div class="section">
+<h2><a name="POST_.2Fquery.2Fservice_.5BBack_to_TOC.5D"></a><a name="queryservice" id="queryservice">POST /query/service</a><font size="4"> <a href="#toc">[Back to TOC]</a></font></h2>
+<p><b>Description</b> Returns result for query as JSON. The response is a JSON object that contains some result metadata along with either an embedded result or an opaque handle that can be used to navigate to the result (see the decription of the <tt>mode</tt> parameter for more details).</p>
+<p><b>Parameters</b></p>
+<ul>
+
+<li><tt>statement</tt> - Specifies at least one valid SQL++ statement to run. The statements need to be urlencoded. Required.</li>
+<li><tt>pretty</tt> - If the parameter <tt>pretty</tt> is given with the value <tt>true</tt>, the result will be indented. (Optional)</li>
+<li><tt>client_context_id</tt> - A user-defined sequence of characters that the API receives and returns unchanged. This can be used e.g. to match individual requests, jobs, and responses. Another option could be to use it for groups of requests if an application decides to put e.g. an group identifier into that field to route groups of responses to a particular response processor.</li>
+<li><tt>dataverse</tt> - Default dataverse for this statement (Optional). If the specified dataverse does not exist then this setting is ignored.</li>
+<li><tt>mode</tt> - Result delivery mode. Possible values are <tt>immediate</tt>, <tt>deferred</tt>, <tt>async</tt> (default: <tt>immediate</tt>). If the delivery mode is <tt>immediate</tt> the query result is returned with the response. If the delivery mode is <tt>deferred</tt> the response contains a handle to the <a href="#queryresult">result</a>. If the delivery mode is <tt>async</tt> the response contains a handle to the query&#x2019;s <a href="#querystatus">status</a>.</li>
+<li><tt>readonly</tt> - Reject DDL and DML statements, only accept the following kinds: <a href="sqlpp/manual.html#SELECT_statements">SELECT</a>, <a href="sqlpp/manual.html#Declarations">USE</a>, <a href="sqlpp/manual.html#Declarations">DECLARE FUNCTION</a>, and <a href="sqlpp/manual.html#Performance_tuning">SET</a></li>
+<li><tt>args</tt> - (SQL++ only) A JSON array where each item is a value of a <a href="sqlpp/manual.html#Parameter_references">positional query parameter</a></li>
+<li><tt>$parameter_name</tt> - (SQL++ only) a JSON value of a <a href="sqlpp/manual.html#Parameter_references">named query parameter</a>.</li>
+</ul>
+<p><b>Command (immediate result delivery)</b></p>
+
+<div>
+<div>
+<pre class="source">$ curl -v --data-urlencode &quot;statement=select 1;&quot; \
+          --data pretty=true                     \
+          --data client_context_id=xyz           \
+          http://localhost:19002/query/service
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; POST /query/service HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt; Content-Length: 57
+&gt; Content-Type: application/x-www-form-urlencoded
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json; charset=utf-8
+&lt;
+{
+    &quot;requestID&quot;: &quot;5f72e78c-482a-45bf-b174-6443c8273025&quot;,
+    &quot;clientContextID&quot;: &quot;xyz&quot;,
+    &quot;signature&quot;: &quot;*&quot;,
+    &quot;results&quot;: [ {
+        &quot;$1&quot; : 1
+    } ]
+    ,
+    &quot;status&quot;: &quot;success&quot;,
+    &quot;metrics&quot;: {
+        &quot;elapsedTime&quot;: &quot;20.263371ms&quot;,
+        &quot;executionTime&quot;: &quot;19.889389ms&quot;,
+        &quot;resultCount&quot;: 1,
+        &quot;resultSize&quot;: 15
+    }
+}
+</pre></div></div>
+
+<p><b>Command (<a name="deferred" id="deferred">deferred result delivery</a>)</b></p>
+
+<div>
+<div>
+<pre class="source">$ curl -v --data-urlencode &quot;statement=select 1;&quot; \
+          --data mode=deferred                   \
+          http://localhost:19002/query/service
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; POST /query/service HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt; Content-Length: 37
+&gt; Content-Type: application/x-www-form-urlencoded
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json; charset=utf-8
+&lt;
+{
+    &quot;requestID&quot;: &quot;6df7afb4-5f83-49b6-8c4b-f11ec84c4d7e&quot;,
+    &quot;signature&quot;: &quot;*&quot;,
+    &quot;handle&quot;: &quot;http://localhost:19002/query/service/result/7-0&quot;,
+    &quot;status&quot;: &quot;success&quot;,
+    &quot;metrics&quot;: {
+        &quot;elapsedTime&quot;: &quot;12.270570ms&quot;,
+        &quot;executionTime&quot;: &quot;11.948343ms&quot;,
+        &quot;resultCount&quot;: 0,
+        &quot;resultSize&quot;: 0
+    }
+}
+</pre></div></div>
+
+<p><b>Command (<a name="async" id="async>">async result delivery</a>)</b></p>
+
+<div>
+<div>
+<pre class="source">$ curl -v --data-urlencode &quot;statement=select 1;&quot; \
+          --data mode=async                      \
+          http://localhost:19002/query/service
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; POST /query/service HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt; Content-Length: 34
+&gt; Content-Type: application/x-www-form-urlencoded
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json; charset=utf-8
+&lt;
+{
+    &quot;requestID&quot;: &quot;c5858420-d821-4c0c-81a4-2364386827c2&quot;,
+    &quot;signature&quot;: &quot;*&quot;,
+    &quot;status&quot;: &quot;running&quot;,
+    &quot;handle&quot;: &quot;http://localhost:19002/query/service/status/9-0&quot;,
+    &quot;metrics&quot;: {
+        &quot;elapsedTime&quot;: &quot;9.727006ms&quot;,
+        &quot;executionTime&quot;: &quot;9.402282ms&quot;,
+        &quot;resultCount&quot;: 0,
+        &quot;resultSize&quot;: 0
+    }
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h2><a name="GET_.2Fquery.2Fservice.2Fstatus_.5BBack_to_TOC.5D"></a><a name="querystatus" id="querystatus">GET /query/service/status</a><font size="4"> <a href="#toc">[Back to TOC]</a></font></h2>
+<p><b>Description</b> Returns status of an <tt>async</tt> query request. The response is a JSON object that has a similar structure to the responses for the <a href="#queryservice">/query/service</a> endpoint. Possible status values for the status are <tt>running</tt>, <tt>success</tt>, <tt>timeout</tt>, <tt>failed</tt>, and <tt>fatal</tt>. If the status value is <tt>success</tt>, the response also contains a handle to the <a href="#queryresult">result</a>. URLs for this endpoint are usually not constructed by the application, they are simply extracted from the <tt>handle</tt> field of the response to a request to the <a href="#queryservice">/query/service</a> endpoint.</p>
+<p><b>Command</b></p>
+<p>This example shows a request/reponse for the (opaque) status handle that was returned by the <a href="#async">async result delivery</a> example.</p>
+
+<div>
+<div>
+<pre class="source">$ curl -v http://localhost:19002/query/service/status/9-0
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; GET /query/service/status/9-0 HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json; charset=utf-8
+&lt;
+{
+    &quot;status&quot;: &quot;success&quot;,
+    &quot;handle&quot;: &quot;http://localhost:19002/query/service/result/9-0&quot;
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h2><a name="GET_.2Fquery.2Fservice.2Fresult_.5BBack_to_TOC.5D"></a><a name="queryresult" id="queryresult">GET /query/service/result</a><font size="4"> <a href="#toc">[Back to TOC]</a></font></h2>
+<p><b>Description</b> Returns result set for an <tt>async</tt> or <tt>deferred</tt> query request. The response is a plain result without a wrapping JSON object. URLs for this endpoint are usually not constructed by the application, they are simply extracted from the <tt>handle</tt> field of the response to a request to the <a href="#queryservice">/query/service</a> or the <a href="#querystatus">/query/service/status</a> endpoint.</p>
+<p><b>Command</b></p>
+<p>This example shows a request/reponse for the (opaque) result handle that was returned by the <a href="#deferred">deferred result delivery</a> example.</p>
+
+<div>
+<div>
+<pre class="source">$ curl -v http://localhost:19002/query/service/result/7-0
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; GET /query/service/result/7-0 HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json
+&lt;
+[ { &quot;$1&quot;: 1 }
+ ]
+</pre></div></div></div>
+        </div>
+      </div>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container-fluid">
+        <div class="row-fluid">
+<div class="row-fluid">Apache AsterixDB, AsterixDB, Apache, the Apache
+        feather logo, and the Apache AsterixDB project logo are either
+        registered trademarks or trademarks of The Apache Software
+        Foundation in the United States and other countries.
+        All other marks mentioned may be trademarks or registered
+        trademarks of their respective owners.
+      </div>
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>
