

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Experimental Rest API &mdash; Airflow Documentation</title>
  

  
  
  
  

  

  
  
    

  

  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="Integration" href="integration.html" />
    <link rel="prev" title="Time zones" href="timezone.html" /> 

  
  <script src="_static/js/modernizr.min.js"></script>
<!-- Matomo -->
<script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '13']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo -->
</head>


<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="index.html" class="icon icon-home"> Airflow
          

          
          </a>

          
            
            
              <div class="version">
                1.10.2
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="project.html">Project</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
<li class="toctree-l1"><a class="reference internal" href="start.html">Quick Start</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="howto/index.html">How-to Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="ui.html">UI / Screenshots</a></li>
<li class="toctree-l1"><a class="reference internal" href="concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="profiling.html">Data Profiling</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command Line Interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="scheduler.html">Scheduling &amp; Triggers</a></li>
<li class="toctree-l1"><a class="reference internal" href="plugins.html">Plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="security.html">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="timezone.html">Time zones</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Experimental Rest API</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#endpoints">Endpoints</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cli">CLI</a></li>
<li class="toctree-l2"><a class="reference internal" href="#authentication">Authentication</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="integration.html">Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="metrics.html">Metrics</a></li>
<li class="toctree-l1"><a class="reference internal" href="kubernetes.html">Kubernetes</a></li>
<li class="toctree-l1"><a class="reference internal" href="lineage.html">Lineage</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="code.html">API Reference</a></li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">Airflow</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="index.html">Docs</a> &raquo;</li>
        
      <li>Experimental Rest API</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            <a href="_sources/api.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="experimental-rest-api">
<h1>Experimental Rest API<a class="headerlink" href="#experimental-rest-api" title="Permalink to this headline">¶</a></h1>
<p>Airflow exposes an experimental Rest API. It is available through the webserver. Endpoints are
available at /api/experimental/. Please note that we expect the endpoint definitions to change.</p>
<div class="section" id="endpoints">
<h2>Endpoints<a class="headerlink" href="#endpoints" title="Permalink to this headline">¶</a></h2>
<dl class="post">
<dt id="post--api-experimental-dags--DAG_ID--dag_runs">
<code class="descname">POST </code><code class="descname">/api/experimental/dags/&lt;DAG_ID&gt;/dag_runs</code><a class="headerlink" href="#post--api-experimental-dags--DAG_ID--dag_runs" title="Permalink to this definition">¶</a></dt>
<dd><p>Creates a dag_run for a given dag id.</p>
<p><strong>Trigger DAG with config, example:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>curl -X POST <span class="se">\</span>
  http://localhost:8080/api/experimental/dags/&lt;DAG_ID&gt;/dag_runs <span class="se">\</span>
  -H <span class="s1">&#39;Cache-Control: no-cache&#39;</span> <span class="se">\</span>
  -H <span class="s1">&#39;Content-Type: application/json&#39;</span> <span class="se">\</span>
  -d <span class="s1">&#39;{&quot;conf&quot;:&quot;{\&quot;key\&quot;:\&quot;value\&quot;}&quot;}&#39;</span>
</pre></div>
</div>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-dags--DAG_ID--dag_runs">
<code class="descname">GET </code><code class="descname">/api/experimental/dags/&lt;DAG_ID&gt;/dag_runs</code><a class="headerlink" href="#get--api-experimental-dags--DAG_ID--dag_runs" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a list of Dag Runs for a specific DAG ID.</p>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-dags--string-dag_id--dag_runs--string-execution_date-">
<code class="descname">GET </code><code class="descname">/api/experimental/dags/&lt;string:dag_id&gt;/dag_runs/&lt;string:execution_date&gt;</code><a class="headerlink" href="#get--api-experimental-dags--string-dag_id--dag_runs--string-execution_date-" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a JSON with a dag_run’s public instance variables. The format for the &lt;string:execution_date&gt; is expected to be “YYYY-mm-DDTHH:MM:SS”, for example: “2016-11-16T11:34:15”.</p>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-test">
<code class="descname">GET </code><code class="descname">/api/experimental/test</code><a class="headerlink" href="#get--api-experimental-test" title="Permalink to this definition">¶</a></dt>
<dd><p>To check REST API server correct work. Return status ‘OK’.</p>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-dags--DAG_ID--tasks--TASK_ID-">
<code class="descname">GET </code><code class="descname">/api/experimental/dags/&lt;DAG_ID&gt;/tasks/&lt;TASK_ID&gt;</code><a class="headerlink" href="#get--api-experimental-dags--DAG_ID--tasks--TASK_ID-" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns info for a task.</p>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-dags--DAG_ID--dag_runs--string-execution_date--tasks--TASK_ID-">
<code class="descname">GET </code><code class="descname">/api/experimental/dags/&lt;DAG_ID&gt;/dag_runs/&lt;string:execution_date&gt;/tasks/&lt;TASK_ID&gt;</code><a class="headerlink" href="#get--api-experimental-dags--DAG_ID--dag_runs--string-execution_date--tasks--TASK_ID-" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a JSON with a task instance’s public instance variables. The format for the &lt;string:execution_date&gt; is expected to be “YYYY-mm-DDTHH:MM:SS”, for example: “2016-11-16T11:34:15”.</p>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-dags--DAG_ID--paused--string-paused-">
<code class="descname">GET </code><code class="descname">/api/experimental/dags/&lt;DAG_ID&gt;/paused/&lt;string:paused&gt;</code><a class="headerlink" href="#get--api-experimental-dags--DAG_ID--paused--string-paused-" title="Permalink to this definition">¶</a></dt>
<dd><p>‘&lt;string:paused&gt;’ must be a ‘true’ to pause a DAG and ‘false’ to unpause.</p>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-latest_runs">
<code class="descname">GET </code><code class="descname">/api/experimental/latest_runs</code><a class="headerlink" href="#get--api-experimental-latest_runs" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the latest DagRun for each DAG formatted for the UI.</p>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-pools">
<code class="descname">GET </code><code class="descname">/api/experimental/pools</code><a class="headerlink" href="#get--api-experimental-pools" title="Permalink to this definition">¶</a></dt>
<dd><p>Get all pools.</p>
</dd></dl>

<dl class="get">
<dt id="get--api-experimental-pools--string-name-">
<code class="descname">GET </code><code class="descname">/api/experimental/pools/&lt;string:name&gt;</code><a class="headerlink" href="#get--api-experimental-pools--string-name-" title="Permalink to this definition">¶</a></dt>
<dd><p>Get pool by a given name.</p>
</dd></dl>

<dl class="post">
<dt id="post--api-experimental-pools">
<code class="descname">POST </code><code class="descname">/api/experimental/pools</code><a class="headerlink" href="#post--api-experimental-pools" title="Permalink to this definition">¶</a></dt>
<dd><p>Create a pool.</p>
</dd></dl>

<dl class="delete">
<dt id="delete--api-experimental-pools--string-name-">
<code class="descname">DELETE </code><code class="descname">/api/experimental/pools/&lt;string:name&gt;</code><a class="headerlink" href="#delete--api-experimental-pools--string-name-" title="Permalink to this definition">¶</a></dt>
<dd><p>Delete pool.</p>
</dd></dl>

</div>
<div class="section" id="cli">
<h2>CLI<a class="headerlink" href="#cli" title="Permalink to this headline">¶</a></h2>
<p>For some functions the cli can use the API. To configure the CLI to use the API when available
configure as follows:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>cli<span class="o">]</span>
<span class="nv">api_client</span> <span class="o">=</span> airflow.api.client.json_client
<span class="nv">endpoint_url</span> <span class="o">=</span> http://&lt;WEBSERVER&gt;:&lt;PORT&gt;
</pre></div>
</div>
</div>
<div class="section" id="authentication">
<h2>Authentication<a class="headerlink" href="#authentication" title="Permalink to this headline">¶</a></h2>
<p>Authentication for the API is handled separately to the Web Authentication. The default is to not
require any authentication on the API – i.e. wide open by default. This is not recommended if your
Airflow webserver is publicly accessible, and you should probably use the deny all backend:</p>
<div class="highlight-ini notranslate"><div class="highlight"><pre><span></span><span class="k">[api]</span>
<span class="na">auth_backend</span> <span class="o">=</span> <span class="s">airflow.api.auth.backend.deny_all</span>
</pre></div>
</div>
<p>Two “real” methods for authentication are currently supported for the API.</p>
<p>To enabled Password authentication, set the following in the configuration:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>api<span class="o">]</span>
<span class="nv">auth_backend</span> <span class="o">=</span> airflow.contrib.auth.backends.password_auth
</pre></div>
</div>
<p>It’s usage is similar to the Password Authentication used for the Web interface.</p>
<p>To enable Kerberos authentication, set the following in the configuration:</p>
<div class="highlight-ini notranslate"><div class="highlight"><pre><span></span><span class="k">[api]</span>
<span class="na">auth_backend</span> <span class="o">=</span> <span class="s">airflow.api.auth.backend.kerberos_auth</span>

<span class="k">[kerberos]</span>
<span class="na">keytab</span> <span class="o">=</span> <span class="s">&lt;KEYTAB&gt;</span>
</pre></div>
</div>
<p>The Kerberos service is configured as <code class="docutils literal notranslate"><span class="pre">airflow/fully.qualified.domainname&#64;REALM</span></code>. Make sure this
principal exists in the keytab file.</p>
</div>
</div>


           </div>
           
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="integration.html" class="btn btn-neutral float-right" title="Integration" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="timezone.html" class="btn btn-neutral" title="Time zones" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    
    
      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
        <script type="text/javascript" src="_static/jquery.js"></script>
        <script type="text/javascript" src="_static/underscore.js"></script>
        <script type="text/javascript" src="_static/doctools.js"></script>
        <script type="text/javascript" src="_static/language_data.js"></script>
    

  

  <script type="text/javascript" src="_static/js/theme.js"></script>

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>
