DuckDuckGo
The Pullbay DuckDuckGo API provides programmatic access to web, image, news, and video search results from DuckDuckGo. Integrate DuckDuckGo's search index into your applications, dashboards, and research pipelines without scraping or browser automation.
Base URL: https://api.pullbay.com
Overview
The DuckDuckGo service lets you:
Search the web for a term and get back ranked page results
Search for images matching a term, including full-size and thumbnail URLs
Search for news articles matching a term, optionally filtered by recency
Search for videos matching a term, with duration, publisher, and view-count metadata
All four endpoints are read-only GET requests against public DuckDuckGo search results — there's no account or API key on DuckDuckGo's side required, just your Pullbay API key.
Common Use Cases
Competitive Research — Run the same query across web, news, and image results to see how a competitor, brand, or topic is currently represented in search.
Content Monitoring — Poll the news or web endpoints on a schedule to catch new mentions of a brand, product, or keyword as they appear.
SEO / SERP Tracking — Capture web search result rankings and snippets for a set of target terms over time to track visibility trends.
Brand Monitoring Across Media Types — Combine the search, images, news, and videos endpoints to get a fuller picture of how a name or topic surfaces across different content formats.
Research and Due Diligence — Pull web and news results for a company, person, or topic as a starting point for manual research, without manually running searches in a browser.
Endpoints
GET /duckduckgo/search
Search the web via DuckDuckGo
Offset
GET /duckduckgo/images
Search images via DuckDuckGo
Offset
GET /duckduckgo/news
Search news articles via DuckDuckGo
Offset
GET /duckduckgo/videos
Search videos via DuckDuckGo
Offset
Search Web
Returns web search results for term.
Request
Parameters
term
string
Yes
—
Search term, 1–255 characters
offset
number
No
—
Result offset, 0 or greater
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged. No published flat rate.
Search Images
Returns image search results for term.
Request
Parameters
term
string
Yes
—
Search term, 1–255 characters
offset
number
No
—
Result offset, 0 or greater
Note: unlike
search,news, andvideos, this endpoint has notimeparameter.
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged. No published flat rate.
Search News
Returns news articles for term.
Request
Parameters
term
string
Yes
—
Search term, 1–255 characters
offset
number
No
—
Result offset, 0 or greater
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged. No published flat rate.
Search Videos
Returns video search results for term.
Request
Parameters
term
string
Yes
—
Search term, 1–255 characters
offset
number
No
—
Result offset, 0 or greater
Note: unlike
searchandnews, this endpoint has notimeparameter.
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged. No published flat rate.
Errors
All non-2xx responses share the same envelope:
400
Bad request — missing/invalid parameters
402
Insufficient credits
404
No results found
Object Schema
Search Result object
title
string
Page title
description
string
Snippet/summary text from the page
hostname
string
Domain the result was served from
icon
string
Favicon URL
url
string
Link to the page
Image object
title
string
Image title
image
string
Full-size image URL
thumbnail
string
Thumbnail image URL
image_token
string
Opaque token identifying the full-size image
thumbnail_token
string
Opaque token identifying the thumbnail
width / height
integer
Image dimensions in pixels
source
string
Originating image search backend (e.g. Bing)
url
string
Link to the page hosting the image
News Article object
title
string
Article headline
excerpt
string
Short snippet of the article body
url
string
Link to the full article
image
string
Associated image URL
date
integer
Publish timestamp, Unix seconds
relativeTime
string
Human-readable relative publish time (e.g. 21 hours ago)
syndicate
string
Syndication source (e.g. bing)
isOld
boolean
Whether the article is flagged as stale/older content
Video object
title
string
Video title
description
string
Video description
url
string
Link to the video
image
string
Thumbnail/preview image URL
duration
string
Video duration, formatted mm:ss (or hh:mm:ss)
publishedOn
string
Hosting platform (e.g. YouTube)
published
string (date-time)
Publish timestamp
publisher
string
Channel or publisher name
viewCount
integer
View count
Region Codes
region is a closed enum, identical across all four endpoints. It is not a plain ISO country code — it's a DuckDuckGo-specific region identifier, generally a <country>-<language> pair, with a handful of exceptions (wt-wt for worldwide/no region, ct-ca, xa-ar). The API only accepts the 63 values below; any other value is invalid.
Valid region values:
wt-wt, ar-es, au-en, at-de, be-fr, be-nl, br-pt, bg-bg, ca-en, ca-fr, ct-ca, cl-es, cn-zh, co-es, hr-hr, cz-cs, dk-da, ee-et, fi-fi, fr-fr, de-de, gr-el, hk-tzh, hu-hu, in-en, id-en, ie-en, il-en, it-it, jp-jp, kr-kr, lv-lv, lt-lt, my-en, mx-es, nl-nl, nz-en, no-no, pk-en, pe-es, ph-en, pl-pl, pt-pt, ro-ro, ru-ru, xa-ar, sg-en, sk-sk, sl-sl, za-en, es-ca, es-es, se-sv, ch-de, ch-fr, tw-tzh, th-en, tr-tr, us-en, us-es, ua-uk, uk-en, vn-en
Use wt-wt when you don't want to bias results to a specific region. There is no documented default in the spec — region is required on every request, so you must pass one of the values above explicitly.
Safe Search Levels
safeSearch is required on all four endpoints and takes one of three values:
false— safe search off. Note that this is the literal boolean-looking tokenfalse, not a synonym likeoff; in the underlying spec it is written as the unquoted valuefalsealongside the two quoted strings below.moderate— moderate filtering.strict— strict filtering.
There is no documented default — pass one of the three values explicitly on every request.
Python Example: Paging Through Web Results with Offset
This example fetches web search results a batch at a time using offset, stopping once a batch comes back empty or the requested number of batches has been pulled. There is no hasNextPage flag or cursor on this endpoint, so the loop here treats an empty data array as the end of results:
Each request is billed independently, with the charged amount reported in that response's pricing.creditsCharged — offset is a plain query parameter on this service, not part of Pullbay's page/cursor pagination envelope used elsewhere, so there's no pagination object to inspect for a "next page" flag.
FAQ
Next Steps
API Integration Guide — integrate the Pullbay API into your backend application.
n8n Integration Guide — set up automated workflows using n8n with no coding required.
Services Overview — explore all available Pullbay services.
Last updated