<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/markdown/api.md at 2018-10-11
 | 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="20181011" />
    <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: 2018-10-11</li>
      <li id="projectVersion" class="pull-right">Version: 0.9.5-SNAPSHOT</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/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 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>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>
</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>
