Free DuckDuckGo API (2026): What's Free, What's Near-Free

By Anurag Pathak· · 18 min read

Search for “free DuckDuckGo API” and you get forum threads, GitHub libraries and vendor pages that all use the word “free” differently. Some of it stops being true the moment you ask for a real list of search results.

So here is the honest version. DuckDuckGo does give away one API. We also read the official pages of the options people use, and did the maths on what each costs past the free part.

Short answer: DuckDuckGo’s only official free API, Instant Answer, returns short summaries rather than ranked web results, and we found no official search-results API. For real results, use an unofficial Python library with no guarantees, a hosted free tier of 100 to 5,000 searches a month, or a cheap pay-as-you-go API.

What we read: on 23 October 2026 we read DuckDuckGo’s own pages, the PyPI and GitHub pages of the Python library, and each vendor’s pricing page. We did not benchmark any service, and we did not run the Python library or trial any competitor’s product. The cost figures are plain arithmetic on published prices. Serpent is the API this site sells, and it is listed here as one option among several.

The options at a glance

Two of these are free forever and come with strings. The rest are hosted APIs: a small free allowance first, then a price. Everything below was read on 23 October 2026.

OptionFree partWhere it stopsPaid entry price
DuckDuckGo Instant Answer endpointFree, no keySummaries and related topics only; no ranked web results; docs address redirects to the homepageNone
ddgs Python libraryFree, MIT licenceUnofficial; README says “educational purposes only”; open rate-limit and 403 reportsNone
Serpent10 free calls on signup (shared across services) plus one free demo run a dayFree allowance is small$0.60 per 1,000 calls, no plan ($10 minimum deposit)
Bright Data5K records a month, no cardAbove that, $1.50 per 1,000 requests$1.50 per 1,000 pay as you go
HasData1,000 credits a month (100 DuckDuckGo searches)A DuckDuckGo request costs 10 credits$49 a month for 200K credits
SearchApi100 free requestsPage does not say whether that is one-off or monthly$40 a month for 10,000 searches
SerpApi250 searches a month50 searches an hour on the free plan$25 a month for 1,000 searches
Apify community actors$5 of platform usage a monthPriced per result, not per search; each actor sets its own rateFrom $0.53 or $0.06 per 1,000 results, depending on the actor

Checked 2026-10-23. Sources are linked in each section below.

DuckDuckGo Instant Answer API: free, official, and not a search API

This is the “free DuckDuckGo API” most articles mean. It is a single endpoint at api.duckduckgo.com. You send a query, you get JSON back, and you do not need a key.

The catch is in the name. It returns an answer, such as a Wikipedia summary, a definition or a list of related topics. It does not return the ten blue links you see on a results page.

Its answer fields, such as Heading, AbstractText, AbstractSource and RelatedTopics, fill in when DuckDuckGo has an instant answer for the query. That suits entity and definition lookups. Commercial or everyday queries, such as “best running shoes”, are not what it is built for, so expect many of them to come back with empty values. If your job is rank tracking, content research or building a result list, this endpoint cannot do it.

One more thing to know before you build on it: the documentation address redirects. https://api.duckduckgo.com/api, where the docs used to live, redirects to the DuckDuckGo homepage, and we found no developer documentation to cite. Check the body of each response, not only the HTTP status code.

Here is the call in Python, using the requests package.

import requests

r = requests.get(
    "https://api.duckduckgo.com/",
    params={"q": "python programming language", "format": "json", "no_html": 1},
    timeout=20,
)
data = r.json()
print(data["Heading"], "|", data["AbstractSource"])
print(data["AbstractText"][:100])

The fields to read are the heading, the source and the start of the summary. For a query with no instant answer, expect empty strings, so check before you use them.

A yellow wind-up toy duck facing left against a plain pale background

Terms. DuckDuckGo’s Terms of Service say you must comply with its Acceptable Use Policy, that it may suspend access if you do not use the services as authorised, and that Instant Answer content comes from third parties with no promise of accuracy. The policy does not mention APIs by name. We are not lawyers: check the terms and your own counsel before building a product on any of this.

For the paid end of this market, see our DuckDuckGo API provider comparison.

DuckDuckGo API in Python: the ddgs library

If you want actual search results for free, the library most people find is ddgs. It used to be called duckduckgo-search; that package’s page now says it has been renamed. You install it with pip install -U ddgs.

The facts we could confirm from its PyPI page and the repository:

The README example is two lines:

from ddgs import DDGS

results = DDGS().text("python programming", max_results=5)
print(results)

What the issue tracker says

We read the project’s GitHub issues for rate limits and blocks. We are quoting what people reported, not testing the library ourselves.

None of that makes the library bad. It is a volunteer project doing something DuckDuckGo has no API for, and it keeps up. But “keeps up” means your job breaks first and a fix arrives second.

Close-up of an hourglass with pale sand running through its narrow neck against a white background

What free really costs you

Free is a real price for a side project. For anything a customer depends on, it hides four costs.

  1. Your time. Each break in the issue tracker above meant a failed run until someone upgraded. That is maintenance you did not plan for.
  2. Errors you cannot read. When a rate limit and a block look like the same generic failure, you cannot back off sensibly. Issue 478 is exactly that.
  3. Terms risk. The library’s README says it is for educational purposes only (the older package said it was not intended for commercial use), and DuckDuckGo’s policy lets it end access to anyone it decides is out of line. We make no legal claim; we just point at the text.
  4. No one to ask. There is no support line and no service promise for a free endpoint.

Here is a worked example. Say you run 10,000 DuckDuckGo searches a month and your time is worth $40 an hour (use your own number). A hosted API at $0.60 per 1,000 costs $6 for that volume. If keeping the free route alive costs you 15 minutes a month, that is $10 of your time, already more than the paid bill. It is an illustration, not a measurement.

Test a DuckDuckGo SERP API without spending anything

Serpent’s engine=ddg returns ranked DuckDuckGo results as JSON from one GET request. Try it with 10 free calls on signup, or run one free demo search a day with no signup.

Start Free — 10 Calls

Explore: DuckDuckGo SERP API · Pricing · Playground · Docs

Free tiers on hosted DuckDuckGo search APIs

Hosted APIs give you structured JSON, a published price and a support channel. Each one also gives away a small amount to try it. Here are the free allowances we read, in DuckDuckGo searches you can actually run.

ProviderFree allowance as printedIn DuckDuckGo searches
Bright Data“5K records per month”, no credit cardUp to 5,000 a month, if one record is one request
SerpApi250 searches a month, 50 an hour250 a month
HasData1,000 credits a month100 a month (10 credits each)
SearchApi“100 free requests”, no card100, one-off or monthly not stated
Serpent10 free calls on signup, shared across services; one free demo run a day on the site10
Apify$5 of platform usage a month, no cardDepends on the actor; see below

Checked 2026-10-23 on each vendor’s own pricing page.

We will say it plainly: on free allowance, Serpent loses. Bright Data’s 5,000 a month is the biggest on this list by a wide margin, and if your whole workload is a few thousand DuckDuckGo searches a month, take that and stop reading. Ten calls is enough to see the JSON shape and decide whether you like the field names. It is not enough for a pilot.

The near-free options, one by one

“Near-free” here means pay-as-you-go prices of a few dollars or less per 1,000 searches, or a small monthly plan. Each option gets the same checklist: price, free tier, limits, best for, watch-outs.

Serpent

Bright Data

HasData

SearchApi

SerpApi

Apify community actors

What it costs at 1K, 10K, 100K and 1M searches

Per-1,000 prices are how vendors like to be compared. Monthly bills are what you pay. This table prices one month of DuckDuckGo web searches on the cheapest published plan that covers the volume. Treat it as a worked example, not an offer.

Searches a monthSerpent Default ($0.60)Serpent Growth ($0.30)Serpent Scale ($0.10)Bright DataHasDataSearchApiSerpApi
1,000$0.60$0.30$0.10$0 (free tier)$49$40$25
10,000$6.00$3.00$1.00$15.00$49$40$150
100,000$60.00$30.00$10.00$150.00$99$250$725
1,000,000$600.00$300.00$100.00$1,305.00Not published (above top plan)$1,500$3,750

Checked 2026-10-23. Serpent Growth needs a one-time $100 deposit and Scale $500; the deposit is spendable balance. Serpent columns use Quick Search, which bills one call per search.

How each column was built: Serpent is searches multiplied by the published rate. Bright Data is pay as you go at $1.50 per 1,000, except at 1 million, where the Scale plan wins: $499 plus 620,000 extra requests at $1.30 per 1,000 is $499 + $806 = $1,305 (the 1,000 row sits inside the free 5K, and the 10,000 row ignores it, so it may be lower). HasData is 10 credits a search, so 1,000 and 10,000 searches fit the $49 plan, 100,000 searches is exactly the $99 plan’s 1M credits, and 1 million is above the largest plan on the page. SearchApi and SerpApi are the cheapest plan that fits: SerpApi’s 10,000 row needs Production ($150, 15,000 searches) because 10,000 does not fit its 5,000-search plan.

Two things stand out. First, plan-based pricing hurts at small volumes: 1,000 searches costs $25 to $49 on three of these and 60 cents on Serpent’s Default rate. Second, at 100,000 a month, HasData’s $99 plan is the nearest rival to Serpent’s $60 at the Default tier, and the gap is bigger at the Growth and Scale tiers.

Here is the price claim, stated carefully. At the Default tier, Serpent’s $0.60 is among the lowest published rates we found. After a one-time $100 deposit, $0.30 per 1,000 is below the lowest published rate of every rival checked today: HasData’s $0.69, SearchApi’s $1.00, Bright Data’s $1.30 and SerpApi’s derived $1.96. The Apify best-case rate works out near $0.60 per 1,000 searches. Credit-bucket plans only reach their printed rate at full use, which we explain in our look at credit expiry.

How to choose

Quick start: DuckDuckGo results in one request

Set engine=ddg and send your key in the X-API-Key header. This example asks for German results from the last 7 days.

curl "https://apiserpent.com/api/search?q=passwort+manager+test&engine=ddg&country=de&language=de&num=20&freshness=w" \
  -H "X-API-Key: YOUR_API_KEY"

A rank check in Python uses Quick Search with format=simple, which flattens results to a list of position, title and URL.

import requests

API = "https://apiserpent.com/api/search/quick"
KEY = "YOUR_API_KEY"

def rank_of(domain, keyword, country="us"):
    r = requests.get(
        API,
        params={"q": keyword, "engine": "ddg", "country": country,
                "num": 20, "format": "simple"},
        headers={"X-API-Key": KEY},
        timeout=60,
    )
    r.raise_for_status()
    for row in r.json().get("results", []):
        if domain in row["url"]:
            return row["position"]
    return None

print(rank_of("example.com", "encrypted email providers"))

num is a ceiling, not a promise, so check how many rows came back. The full parameter list is in the API docs, and you can run the same call in the playground first.

Moving over from ddgs

For what a DuckDuckGo result page actually carries, see our DuckDuckGo search API guide, how answer boxes and links parse separately, and DuckDuckGo versus Google SERP data. If you are weighing the do-it-yourself route, scraping DuckDuckGo for free covers its limits.

Limits and what we could not verify

FAQ

Is there a free DuckDuckGo API?

Yes, but only a small one. DuckDuckGo's Instant Answer endpoint answers without a key. It is built for entity and definition lookups, not for commercial queries such as best running shoes, and it is not a ranked web-results API. For web results, the free routes are an unofficial Python library or the free tiers of hosted APIs, which run from 100 to 5,000 searches a month.

Does DuckDuckGo have an official search results API?

We found no official API for DuckDuckGo's ranked web results. Its help pages describe partnerships, not an API, and the old Instant Answer documentation address redirects to the DuckDuckGo homepage. Third parties sell DuckDuckGo results as a service, and we found no price list from DuckDuckGo itself.

What does the DuckDuckGo Instant Answer API return?

A JSON object with fields such as Heading, AbstractText, AbstractSource, AbstractURL, Infobox, RelatedTopics and Results. It is built for answers, such as a short summary and related topics, not for a ranked list of web pages. Expect many commercial queries to come back with empty fields.

Is the duckduckgo-search (ddgs) Python library free for commercial use?

The library is MIT licensed and free to install. Its README says it is for educational purposes only, and the earlier duckduckgo-search package said it was not intended for commercial use or any purpose that violates DuckDuckGo's Terms of Service. Read DuckDuckGo's terms and ask your own counsel before using it in a product.

Why does the DuckDuckGo Python library return rate-limit errors?

DuckDuckGo publishes no rate limit for these pages, so we cannot give you a number. The library's GitHub issues include reports of 202 Ratelimit errors in March and May 2025, each fixed by a new release, and open issues from July 2026 about unclear rate-limit errors and a 403 on the DuckDuckGo backend. Expect to maintain it.

What is the cheapest DuckDuckGo SERP API?

On rates published on 2026-10-23, Serpent charges $0.60 per 1,000 calls with no plan, $0.30 after a one-time $100 deposit and $0.10 after $500. The lowest published rival rates we found were HasData at $0.69 per 1,000, only on its $208 a month plan at full use, and a community Apify actor at about $0.60 per 1,000 searches in the best case. Free tiers are bigger elsewhere, up to 5,000 a month at Bright Data.

Sources

Try a DuckDuckGo SERP API at $0.60 per 1,000 calls

Serpent returns ranked DuckDuckGo results as structured JSON on pay-as-you-go pricing. No subscription, and deposited credits do not expire. Start with 10 free calls.

Start Free — 10 Calls

Explore: DuckDuckGo SERP API · Pricing · DuckDuckGo API providers compared

Related Posts