duckduckgo.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. <!DOCTYPE html>
  2. <html lang="en" data-content_root="../../../">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>DuckDuckGo Engines &#8212; SearXNG Documentation (2025.5.2+590b21165)</title>
  8. <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=6625fa76" />
  9. <link rel="stylesheet" type="text/css" href="../../../_static/searxng.css?v=52e4ff28" />
  10. <script src="../../../_static/documentation_options.js?v=8c00f3b4"></script>
  11. <script src="../../../_static/doctools.js?v=9a2dae69"></script>
  12. <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
  13. <script data-project="searxng" data-version="2025.5.2+590b21165" src="../../../_static/describe_version.js?v=fa7f30d0"></script>
  14. <link rel="index" title="Index" href="../../../genindex.html" />
  15. <link rel="search" title="Search" href="../../../search.html" />
  16. <link rel="next" title="Geizhals" href="geizhals.html" />
  17. <link rel="prev" title="Discourse Forums" href="discourse.html" />
  18. </head><body>
  19. <div class="related" role="navigation" aria-label="Related">
  20. <h3>Navigation</h3>
  21. <ul>
  22. <li class="right" style="margin-right: 10px">
  23. <a href="../../../genindex.html" title="General Index"
  24. accesskey="I">index</a></li>
  25. <li class="right" >
  26. <a href="../../../py-modindex.html" title="Python Module Index"
  27. >modules</a> |</li>
  28. <li class="right" >
  29. <a href="geizhals.html" title="Geizhals"
  30. accesskey="N">next</a> |</li>
  31. <li class="right" >
  32. <a href="discourse.html" title="Discourse Forums"
  33. accesskey="P">previous</a> |</li>
  34. <li class="nav-item nav-item-0"><a href="../../../index.html">SearXNG Documentation (2025.5.2+590b21165)</a> &#187;</li>
  35. <li class="nav-item nav-item-1"><a href="../../index.html" >Developer documentation</a> &#187;</li>
  36. <li class="nav-item nav-item-2"><a href="../index.html" accesskey="U">Engine Implementations</a> &#187;</li>
  37. <li class="nav-item nav-item-this"><a href="">DuckDuckGo Engines</a></li>
  38. </ul>
  39. </div>
  40. <div class="document">
  41. <div class="documentwrapper">
  42. <div class="bodywrapper">
  43. <div class="body" role="main">
  44. <section id="duckduckgo-engines">
  45. <span id="id1"></span><h1>DuckDuckGo Engines<a class="headerlink" href="#duckduckgo-engines" title="Link to this heading">¶</a></h1>
  46. <nav class="contents local" id="contents">
  47. <ul class="simple">
  48. <li><p><a class="reference internal" href="#duckduckgo-web" id="id2">DuckDuckGo WEB</a></p></li>
  49. <li><p><a class="reference internal" href="#duckduckgo-extra-images-videos-news" id="id3">DuckDuckGo Extra (images, videos, news)</a></p></li>
  50. <li><p><a class="reference internal" href="#duckduckgo-instant-answer-api" id="id4">DuckDuckGo Instant Answer API</a></p></li>
  51. <li><p><a class="reference internal" href="#duckduckgo-weather" id="id5">DuckDuckGo Weather</a></p></li>
  52. </ul>
  53. </nav>
  54. <section id="duckduckgo-web">
  55. <span id="module-searx.engines.duckduckgo"></span><h2><a class="toc-backref" href="#id2" role="doc-backlink">DuckDuckGo WEB</a><a class="headerlink" href="#duckduckgo-web" title="Link to this heading">¶</a></h2>
  56. </section>
  57. <dl class="py data">
  58. <dt class="sig sig-object py" id="searx.engines.duckduckgo.send_accept_language_header">
  59. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo.</span></span><span class="sig-name descname"><span class="pre">send_accept_language_header</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#searx.engines.duckduckgo.send_accept_language_header" title="Link to this definition">¶</a></dt>
  60. <dd><p>DuckDuckGo-Lite tries to guess user’s preferred language from the HTTP
  61. <code class="docutils literal notranslate"><span class="pre">Accept-Language</span></code>. Optional the user can select a region filter (but not a
  62. language).</p>
  63. </dd></dl>
  64. <dl class="py function">
  65. <dt class="sig sig-object py" id="searx.engines.duckduckgo.cache_vqd">
  66. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo.</span></span><span class="sig-name descname"><span class="pre">cache_vqd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">region</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/duckduckgo.html#cache_vqd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.duckduckgo.cache_vqd" title="Link to this definition">¶</a></dt>
  67. <dd><p>Caches a <code class="docutils literal notranslate"><span class="pre">vqd</span></code> value from a query.</p>
  68. </dd></dl>
  69. <dl class="py function">
  70. <dt class="sig sig-object py" id="searx.engines.duckduckgo.get_vqd">
  71. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo.</span></span><span class="sig-name descname"><span class="pre">get_vqd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">region</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">force_request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/duckduckgo.html#get_vqd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.duckduckgo.get_vqd" title="Link to this definition">¶</a></dt>
  72. <dd><p>Returns the <code class="docutils literal notranslate"><span class="pre">vqd</span></code> that fits to the <em>query</em>.</p>
  73. <dl class="field-list simple">
  74. <dt class="field-odd">Parameters<span class="colon">:</span></dt>
  75. <dd class="field-odd"><ul class="simple">
  76. <li><p><strong>query</strong> – The query term</p></li>
  77. <li><p><strong>region</strong> – DDG’s region code</p></li>
  78. <li><p><strong>force_request</strong> – force a request to get a vqd value from DDG</p></li>
  79. </ul>
  80. </dd>
  81. </dl>
  82. <p>TL;DR; the <code class="docutils literal notranslate"><span class="pre">vqd</span></code> value is needed to pass DDG’s bot protection and is used
  83. by all request to DDG:</p>
  84. <ul class="simple">
  85. <li><p>DuckDuckGo Lite: <code class="docutils literal notranslate"><span class="pre">https://lite.duckduckgo.com/lite</span></code> (POST form data)</p></li>
  86. <li><p>DuckDuckGo Web: <code class="docutils literal notranslate"><span class="pre">https://links.duckduckgo.com/d.js?q=...&amp;vqd=...</span></code></p></li>
  87. <li><p>DuckDuckGo Images: <code class="docutils literal notranslate"><span class="pre">https://duckduckgo.com/i.js??q=...&amp;vqd=...</span></code></p></li>
  88. <li><p>DuckDuckGo Videos: <code class="docutils literal notranslate"><span class="pre">https://duckduckgo.com/v.js??q=...&amp;vqd=...</span></code></p></li>
  89. <li><p>DuckDuckGo News: <code class="docutils literal notranslate"><span class="pre">https://duckduckgo.com/news.js??q=...&amp;vqd=...</span></code></p></li>
  90. </ul>
  91. <p>DDG’s bot detection is sensitive to the <code class="docutils literal notranslate"><span class="pre">vqd</span></code> value. For some search terms
  92. (such as extremely long search terms that are often sent by bots), no <code class="docutils literal notranslate"><span class="pre">vqd</span></code>
  93. value can be determined.</p>
  94. <p>If SearXNG cannot determine a <code class="docutils literal notranslate"><span class="pre">vqd</span></code> value, then no request should go out
  95. to DDG.</p>
  96. <div class="admonition attention">
  97. <p class="admonition-title">Attention</p>
  98. <p>A request with a wrong <code class="docutils literal notranslate"><span class="pre">vqd</span></code> value leads to DDG temporarily putting
  99. SearXNG’s IP on a block list.</p>
  100. </div>
  101. <p>Requests from IPs in this block list run into timeouts. Not sure, but it
  102. seems the block list is a sliding window: to get my IP rid from the bot list
  103. I had to cool down my IP for 1h (send no requests from that IP to DDG).</p>
  104. </dd></dl>
  105. <dl class="py function">
  106. <dt class="sig sig-object py" id="searx.engines.duckduckgo.get_ddg_lang">
  107. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo.</span></span><span class="sig-name descname"><span class="pre">get_ddg_lang</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">eng_traits</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../enginelib.html#searx.enginelib.traits.EngineTraits" title="searx.enginelib.traits.EngineTraits"><span class="pre">EngineTraits</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">sxng_locale</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'en_US'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/duckduckgo.html#get_ddg_lang"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.duckduckgo.get_ddg_lang" title="Link to this definition">¶</a></dt>
  108. <dd><p>Get DuckDuckGo’s language identifier from SearXNG’s locale.</p>
  109. <p>DuckDuckGo defines its languages by region codes (see
  110. <a class="reference internal" href="#searx.engines.duckduckgo.fetch_traits" title="searx.engines.duckduckgo.fetch_traits"><code class="xref py py-obj docutils literal notranslate"><span class="pre">fetch_traits</span></code></a>).</p>
  111. <p>To get region and language of a DDG service use:</p>
  112. <p>It might confuse, but the <code class="docutils literal notranslate"><span class="pre">l</span></code> value of the cookie is what SearXNG calls
  113. the <em>region</em>:</p>
  114. <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># !ddi paris :es-AR --&gt; {&#39;ad&#39;: &#39;es_AR&#39;, &#39;ah&#39;: &#39;ar-es&#39;, &#39;l&#39;: &#39;ar-es&#39;}</span>
  115. <span class="n">params</span><span class="p">[</span><span class="s1">&#39;cookies&#39;</span><span class="p">][</span><span class="s1">&#39;ad&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">eng_lang</span>
  116. <span class="n">params</span><span class="p">[</span><span class="s1">&#39;cookies&#39;</span><span class="p">][</span><span class="s1">&#39;ah&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">eng_region</span>
  117. <span class="n">params</span><span class="p">[</span><span class="s1">&#39;cookies&#39;</span><span class="p">][</span><span class="s1">&#39;l&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">eng_region</span>
  118. </pre></div>
  119. </div>
  120. <div class="admonition hint">
  121. <p class="admonition-title">Hint</p>
  122. <p><a class="reference external" href="https://lite.duckduckgo.com/lite">DDG-lite</a> and the <em>no Javascript</em>
  123. page <a class="reference external" href="https://html.duckduckgo.com/html">https://html.duckduckgo.com/html</a> do not offer a language selection
  124. to the user, only a region can be selected by the user (<code class="docutils literal notranslate"><span class="pre">eng_region</span></code>
  125. from the example above). DDG-lite and <em>no Javascript</em> store the selected
  126. region in a cookie:</p>
  127. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;cookies&#39;</span><span class="p">][</span><span class="s1">&#39;kl&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">eng_region</span> <span class="c1"># &#39;ar-es&#39;</span>
  128. </pre></div>
  129. </div>
  130. </div>
  131. </dd></dl>
  132. <dl class="py function">
  133. <dt class="sig sig-object py" id="searx.engines.duckduckgo.is_ddg_captcha">
  134. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo.</span></span><span class="sig-name descname"><span class="pre">is_ddg_captcha</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dom</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/duckduckgo.html#is_ddg_captcha"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.duckduckgo.is_ddg_captcha" title="Link to this definition">¶</a></dt>
  135. <dd><p>In case of CAPTCHA ddg response its own <em>not a Robot</em> dialog and is not
  136. redirected to a CAPTCHA page.</p>
  137. </dd></dl>
  138. <dl class="py function">
  139. <dt class="sig sig-object py" id="searx.engines.duckduckgo.fetch_traits">
  140. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo.</span></span><span class="sig-name descname"><span class="pre">fetch_traits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">engine_traits</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../enginelib.html#searx.enginelib.traits.EngineTraits" title="searx.enginelib.traits.EngineTraits"><span class="pre">EngineTraits</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/duckduckgo.html#fetch_traits"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.duckduckgo.fetch_traits" title="Link to this definition">¶</a></dt>
  141. <dd><p>Fetch languages &amp; regions from DuckDuckGo.</p>
  142. <p>SearXNG’s <code class="docutils literal notranslate"><span class="pre">all</span></code> locale maps DuckDuckGo’s “Alle regions” (<code class="docutils literal notranslate"><span class="pre">wt-wt</span></code>).
  143. DuckDuckGo’s language “Browsers preferred language” (<code class="docutils literal notranslate"><span class="pre">wt_WT</span></code>) makes no
  144. sense in a SearXNG request since SearXNG’s <code class="docutils literal notranslate"><span class="pre">all</span></code> will not add a
  145. <code class="docutils literal notranslate"><span class="pre">Accept-Language</span></code> HTTP header. The value in <code class="docutils literal notranslate"><span class="pre">engine_traits.all_locale</span></code>
  146. is <code class="docutils literal notranslate"><span class="pre">wt-wt</span></code> (the region).</p>
  147. <p>Beside regions DuckDuckGo also defines its languages by region codes. By
  148. example these are the english languages in DuckDuckGo:</p>
  149. <ul class="simple">
  150. <li><p>en_US</p></li>
  151. <li><p>en_AU</p></li>
  152. <li><p>en_CA</p></li>
  153. <li><p>en_GB</p></li>
  154. </ul>
  155. <p>The function <a class="reference internal" href="#searx.engines.duckduckgo.get_ddg_lang" title="searx.engines.duckduckgo.get_ddg_lang"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_ddg_lang</span></code></a> evaluates DuckDuckGo’s language from
  156. SearXNG’s locale.</p>
  157. </dd></dl>
  158. <section id="duckduckgo-extra-images-videos-news">
  159. <span id="module-searx.engines.duckduckgo_extra"></span><h2><a class="toc-backref" href="#id3" role="doc-backlink">DuckDuckGo Extra (images, videos, news)</a><a class="headerlink" href="#duckduckgo-extra-images-videos-news" title="Link to this heading">¶</a></h2>
  160. </section>
  161. <dl class="py data">
  162. <dt class="sig sig-object py" id="searx.engines.duckduckgo_extra.ddg_category">
  163. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo_extra.</span></span><span class="sig-name descname"><span class="pre">ddg_category</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'images'</span></em><a class="headerlink" href="#searx.engines.duckduckgo_extra.ddg_category" title="Link to this definition">¶</a></dt>
  164. <dd><p>The category must be any of <code class="docutils literal notranslate"><span class="pre">images</span></code>, <code class="docutils literal notranslate"><span class="pre">videos</span></code> and <code class="docutils literal notranslate"><span class="pre">news</span></code></p>
  165. </dd></dl>
  166. <section id="duckduckgo-instant-answer-api">
  167. <span id="module-searx.engines.duckduckgo_definitions"></span><h2><a class="toc-backref" href="#id4" role="doc-backlink">DuckDuckGo Instant Answer API</a><a class="headerlink" href="#duckduckgo-instant-answer-api" title="Link to this heading">¶</a></h2>
  168. <p>The <a class="reference external" href="https://duckduckgo.com/api">DDG-API</a> is no longer documented but from
  169. reverse engineering we can see that some services (e.g. instant answers) still
  170. in use from the DDG search engine.</p>
  171. <p>As far we can say the <em>instant answers</em> API does not support languages, or at
  172. least we could not find out how language support should work. It seems that
  173. most of the features are based on English terms.</p>
  174. </section>
  175. <dl class="py function">
  176. <dt class="sig sig-object py" id="searx.engines.duckduckgo_definitions.is_broken_text">
  177. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo_definitions.</span></span><span class="sig-name descname"><span class="pre">is_broken_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/duckduckgo_definitions.html#is_broken_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.duckduckgo_definitions.is_broken_text" title="Link to this definition">¶</a></dt>
  178. <dd><p>duckduckgo may return something like <code class="docutils literal notranslate"><span class="pre">&lt;a</span> <span class="pre">href=&quot;xxxx&quot;&gt;http://somewhere</span> <span class="pre">Related</span> <span class="pre">website&lt;a/&gt;</span></code></p>
  179. <p>The href URL is broken, the “Related website” may contains some HTML.</p>
  180. <p>The best solution seems to ignore these results.</p>
  181. </dd></dl>
  182. <dl class="py function">
  183. <dt class="sig sig-object py" id="searx.engines.duckduckgo_definitions.area_to_str">
  184. <span class="sig-prename descclassname"><span class="pre">searx.engines.duckduckgo_definitions.</span></span><span class="sig-name descname"><span class="pre">area_to_str</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">area</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/duckduckgo_definitions.html#area_to_str"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.duckduckgo_definitions.area_to_str" title="Link to this definition">¶</a></dt>
  185. <dd><p>parse <code class="docutils literal notranslate"><span class="pre">{'unit':</span> <span class="pre">'https://www.wikidata.org/entity/Q712226',</span> <span class="pre">'amount':</span> <span class="pre">'+20.99'}</span></code></p>
  186. </dd></dl>
  187. <section id="duckduckgo-weather">
  188. <span id="module-searx.engines.duckduckgo_weather"></span><h2><a class="toc-backref" href="#id5" role="doc-backlink">DuckDuckGo Weather</a><a class="headerlink" href="#duckduckgo-weather" title="Link to this heading">¶</a></h2>
  189. </section>
  190. </section>
  191. <div class="clearer"></div>
  192. </div>
  193. </div>
  194. </div>
  195. <span id="sidebar-top"></span>
  196. <div class="sphinxsidebar" role="navigation" aria-label="Main">
  197. <div class="sphinxsidebarwrapper">
  198. <p class="logo"><a href="../../../index.html">
  199. <img class="logo" src="../../../_static/searxng-wordmark.svg" alt="Logo of SearXNG"/>
  200. </a></p>
  201. <h3><a href="../../../index.html">Table of Contents</a></h3>
  202. <ul class="current">
  203. <li class="toctree-l1"><a class="reference internal" href="../../../user/index.html">User information</a></li>
  204. <li class="toctree-l1"><a class="reference internal" href="../../../own-instance.html">Why use a private instance?</a></li>
  205. <li class="toctree-l1"><a class="reference internal" href="../../../admin/index.html">Administrator documentation</a></li>
  206. <li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Developer documentation</a><ul class="current">
  207. <li class="toctree-l2"><a class="reference internal" href="../../quickstart.html">Development Quickstart</a></li>
  208. <li class="toctree-l2"><a class="reference internal" href="../../rtm_asdf.html">Runtime Management</a></li>
  209. <li class="toctree-l2"><a class="reference internal" href="../../contribution_guide.html">How to contribute</a></li>
  210. <li class="toctree-l2"><a class="reference internal" href="../../extended_types.html">Extended Types</a></li>
  211. <li class="toctree-l2 current"><a class="reference internal" href="../index.html">Engine Implementations</a><ul class="current">
  212. <li class="toctree-l3"><a class="reference internal" href="../enginelib.html">Engine Library</a></li>
  213. <li class="toctree-l3"><a class="reference internal" href="../engines.html">SearXNG’s engines loader</a></li>
  214. <li class="toctree-l3"><a class="reference internal" href="../engine_overview.html">Engine Overview</a></li>
  215. <li class="toctree-l3"><a class="reference internal" href="../index.html#resultlist-and-engines">ResultList and engines</a></li>
  216. <li class="toctree-l3 current"><a class="reference internal" href="../index.html#engine-types">Engine Types</a><ul class="current">
  217. <li class="toctree-l4 current"><a class="reference internal" href="../index.html#online-engines">Online Engines</a><ul class="current">
  218. <li class="toctree-l5"><a class="reference internal" href="../demo/demo_online.html">Demo Online Engine</a></li>
  219. <li class="toctree-l5"><a class="reference internal" href="../xpath.html">XPath Engine</a></li>
  220. <li class="toctree-l5"><a class="reference internal" href="../mediawiki.html">MediaWiki Engine</a></li>
  221. <li class="toctree-l5"><a class="reference internal" href="../json_engine.html">JSON Engine</a></li>
  222. <li class="toctree-l5"><a class="reference internal" href="adobe_stock.html">Adobe Stock</a></li>
  223. <li class="toctree-l5"><a class="reference internal" href="alpinelinux.html">Alpine Linux Packages</a></li>
  224. <li class="toctree-l5"><a class="reference internal" href="annas_archive.html">Anna’s Archive</a></li>
  225. <li class="toctree-l5"><a class="reference internal" href="archlinux.html">Arch Linux</a></li>
  226. <li class="toctree-l5"><a class="reference internal" href="bing.html">Bing Engines</a></li>
  227. <li class="toctree-l5"><a class="reference internal" href="bpb.html">Bpb</a></li>
  228. <li class="toctree-l5"><a class="reference internal" href="brave.html">Brave Engines</a></li>
  229. <li class="toctree-l5"><a class="reference internal" href="bt4g.html">BT4G</a></li>
  230. <li class="toctree-l5"><a class="reference internal" href="chinaso.html">ChinaSo</a></li>
  231. <li class="toctree-l5"><a class="reference internal" href="core.html">CORE</a></li>
  232. <li class="toctree-l5"><a class="reference internal" href="dailymotion.html">Dailymotion</a></li>
  233. <li class="toctree-l5"><a class="reference internal" href="discourse.html">Discourse Forums</a></li>
  234. <li class="toctree-l5 current"><a class="current reference internal" href="#">DuckDuckGo Engines</a></li>
  235. <li class="toctree-l5"><a class="reference internal" href="geizhals.html">Geizhals</a></li>
  236. <li class="toctree-l5"><a class="reference internal" href="gitea.html">Gitea</a></li>
  237. <li class="toctree-l5"><a class="reference internal" href="gitlab.html">GitLab</a></li>
  238. <li class="toctree-l5"><a class="reference internal" href="google.html">Google Engines</a></li>
  239. <li class="toctree-l5"><a class="reference internal" href="huggingface.html">Hugging Face</a></li>
  240. <li class="toctree-l5"><a class="reference internal" href="lemmy.html">Lemmy</a></li>
  241. <li class="toctree-l5"><a class="reference internal" href="loc.html">Library of Congress</a></li>
  242. <li class="toctree-l5"><a class="reference internal" href="mastodon.html">Mastodon</a></li>
  243. <li class="toctree-l5"><a class="reference internal" href="moviepilot.html">Moviepilot</a></li>
  244. <li class="toctree-l5"><a class="reference internal" href="mrs.html">Matrix Rooms Search (MRS)</a></li>
  245. <li class="toctree-l5"><a class="reference internal" href="mullvad_leta.html">Mullvad-Leta</a></li>
  246. <li class="toctree-l5"><a class="reference internal" href="mwmbl.html">Mwmbl Engine</a></li>
  247. <li class="toctree-l5"><a class="reference internal" href="odysee.html">Odysee</a></li>
  248. <li class="toctree-l5"><a class="reference internal" href="peertube.html">Peertube Engines</a></li>
  249. <li class="toctree-l5"><a class="reference internal" href="piped.html">Piped</a></li>
  250. <li class="toctree-l5"><a class="reference internal" href="presearch.html">Presearch Engine</a></li>
  251. <li class="toctree-l5"><a class="reference internal" href="qwant.html">Qwant</a></li>
  252. <li class="toctree-l5"><a class="reference internal" href="radio_browser.html">RadioBrowser</a></li>
  253. <li class="toctree-l5"><a class="reference internal" href="recoll.html">Recoll Engine</a></li>
  254. <li class="toctree-l5"><a class="reference internal" href="reuters.html">Reuters</a></li>
  255. <li class="toctree-l5"><a class="reference internal" href="seekr.html">Seekr Engines</a></li>
  256. <li class="toctree-l5"><a class="reference internal" href="soundcloud.html">Soundcloud</a></li>
  257. <li class="toctree-l5"><a class="reference internal" href="startpage.html">Startpage Engines</a></li>
  258. <li class="toctree-l5"><a class="reference internal" href="tagesschau.html">Tagesschau API</a></li>
  259. <li class="toctree-l5"><a class="reference internal" href="torznab.html">Torznab WebAPI</a></li>
  260. <li class="toctree-l5"><a class="reference internal" href="void.html">Void Linux binary packages</a></li>
  261. <li class="toctree-l5"><a class="reference internal" href="wallhaven.html">Wallhaven</a></li>
  262. <li class="toctree-l5"><a class="reference internal" href="wikipedia.html">Wikimedia</a></li>
  263. <li class="toctree-l5"><a class="reference internal" href="yacy.html">Yacy</a></li>
  264. <li class="toctree-l5"><a class="reference internal" href="yahoo.html">Yahoo Engine</a></li>
  265. <li class="toctree-l5"><a class="reference internal" href="zlibrary.html">Z-Library</a></li>
  266. </ul>
  267. </li>
  268. <li class="toctree-l4"><a class="reference internal" href="../index.html#offline-engines">Offline Engines</a></li>
  269. <li class="toctree-l4"><a class="reference internal" href="../index.html#online-url-search">Online URL Search</a></li>
  270. <li class="toctree-l4"><a class="reference internal" href="../index.html#online-currency">Online Currency</a></li>
  271. <li class="toctree-l4"><a class="reference internal" href="../index.html#online-dictionary">Online Dictionary</a></li>
  272. </ul>
  273. </li>
  274. </ul>
  275. </li>
  276. <li class="toctree-l2"><a class="reference internal" href="../../result_types/index.html">Result Types</a></li>
  277. <li class="toctree-l2"><a class="reference internal" href="../../templates.html">Simple Theme Templates</a></li>
  278. <li class="toctree-l2"><a class="reference internal" href="../../search_api.html">Search API</a></li>
  279. <li class="toctree-l2"><a class="reference internal" href="../../plugins/index.html">Plugins</a></li>
  280. <li class="toctree-l2"><a class="reference internal" href="../../answerers/index.html">Answerers</a></li>
  281. <li class="toctree-l2"><a class="reference internal" href="../../translation.html">Translation</a></li>
  282. <li class="toctree-l2"><a class="reference internal" href="../../lxcdev.html">Developing in Linux Containers</a></li>
  283. <li class="toctree-l2"><a class="reference internal" href="../../makefile.html">Makefile &amp; <code class="docutils literal notranslate"><span class="pre">./manage</span></code></a></li>
  284. <li class="toctree-l2"><a class="reference internal" href="../../reST.html">reST primer</a></li>
  285. <li class="toctree-l2"><a class="reference internal" href="../../searxng_extra/index.html">Tooling box <code class="docutils literal notranslate"><span class="pre">searxng_extra</span></code></a></li>
  286. </ul>
  287. </li>
  288. <li class="toctree-l1"><a class="reference internal" href="../../../utils/index.html">DevOps tooling box</a></li>
  289. <li class="toctree-l1"><a class="reference internal" href="../../../src/index.html">Source-Code</a></li>
  290. </ul>
  291. <h3>Project Links</h3>
  292. <ul>
  293. <li><a href="https://github.com/searxng/searxng/tree/master">Source</a>
  294. <li><a href="https://github.com/searxng/searxng/wiki">Wiki</a>
  295. <li><a href="https://searx.space">Public instances</a>
  296. <li><a href="https://github.com/searxng/searxng/issues">Issue Tracker</a>
  297. </ul><h3>Navigation</h3>
  298. <ul>
  299. <li><a href="../../../index.html">Overview</a>
  300. <ul>
  301. <li><a href="../../index.html">Developer documentation</a>
  302. <ul>
  303. <li><a href="../index.html">Engine Implementations</a>
  304. <ul>
  305. <li>Previous: <a href="discourse.html" title="previous chapter">Discourse Forums</a>
  306. <li>Next: <a href="geizhals.html" title="next chapter">Geizhals</a></ul>
  307. </li></ul>
  308. </li>
  309. </ul>
  310. </li>
  311. </ul>
  312. <search id="searchbox" style="display: none" role="search">
  313. <h3 id="searchlabel">Quick search</h3>
  314. <div class="searchformwrapper">
  315. <form class="search" action="../../../search.html" method="get">
  316. <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
  317. <input type="submit" value="Go" />
  318. </form>
  319. </div>
  320. </search>
  321. <script>document.getElementById('searchbox').style.display = "block"</script>
  322. <div role="note" aria-label="source link">
  323. <h3>This Page</h3>
  324. <ul class="this-page-menu">
  325. <li><a href="../../../_sources/dev/engines/online/duckduckgo.rst.txt"
  326. rel="nofollow">Show Source</a></li>
  327. </ul>
  328. </div>
  329. </div>
  330. </div>
  331. <div class="clearer"></div>
  332. </div>
  333. <div class="footer" role="contentinfo">
  334. &#169; Copyright SearXNG team.
  335. </div>
  336. </body>
  337. </html>