Image Search
curl --request GET \
--url https://scrapebadger.com/v1/duckduckgo/images \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/duckduckgo/images"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/duckduckgo/images', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/duckduckgo/images",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/duckduckgo/images"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/duckduckgo/images")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/duckduckgo/images")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"query": "<string>",
"region": "<string>",
"results": [
{
"title": "<string>",
"image": "<string>",
"thumbnail": "<string>",
"url": "<string>",
"width": 123,
"height": 123,
"source": "<string>",
"encoding_format": "<string>",
"discovery_date": "<string>"
}
],
"result_count": 123,
"has_next": true
}Search
Image Search
Search DuckDuckGo images with size, color, type, layout and license filters.
GET
/
v1
/
duckduckgo
/
images
Image Search
curl --request GET \
--url https://scrapebadger.com/v1/duckduckgo/images \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/duckduckgo/images"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/duckduckgo/images', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/duckduckgo/images",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/duckduckgo/images"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/duckduckgo/images")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/duckduckgo/images")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"query": "<string>",
"region": "<string>",
"results": [
{
"title": "<string>",
"image": "<string>",
"thumbnail": "<string>",
"url": "<string>",
"width": 123,
"height": 123,
"source": "<string>",
"encoding_format": "<string>",
"discovery_date": "<string>"
}
],
"result_count": 123,
"has_next": true
}Search DuckDuckGo images. 100 results per page.
Credits: 5
Authorization
string
required
Your ScrapeBadger API key.
Query Parameters
string
required
Search query, e.g.
sunset.string
default:"wt-wt"
DuckDuckGo region code (
kl), e.g. us-en. wt-wt = all regions.string
default:"moderate"
One of
on, moderate, off.integer
default:"1"
Result page,
1–10. 100 results per page.string
Small, Medium, Large or Wallpaper.string
color, Monochrome, or a named color such as Red, Blue, Green.string
photo, clipart, gif, transparent or line.string
Square, Tall or Wide.string
Any, Public, Share, ShareCommercially or Modify.Response
string
Echo of the requested query.
string
The region that was applied.
ImageResult[]
integer
Results on this page.
boolean
Page on this.
Example
curl "https://scrapebadger.com/v1/duckduckgo/images?query=sunset&size=Large&layout=Wide" \
-H "X-API-Key: YOUR_API_KEY"
const res = await fetch(
"https://scrapebadger.com/v1/duckduckgo/images?" +
new URLSearchParams({
query: "sunset",
size: "Large",
layout: "Wide",
}),
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const data = await res.json();
import requests
res = requests.get(
"https://scrapebadger.com/v1/duckduckgo/images",
headers={"X-API-Key": "YOUR_API_KEY"},
params={
"query": "sunset",
"size": "Large",
"layout": "Wide",
},
)
data = res.json()
Response
{
"query": "sunset",
"region": "wt-wt",
"results": [
{
"title": "Beautiful Sunset Over the Ocean",
"image": "https://example.com/images/sunset-4k.jpg",
"thumbnail": "https://tse1.mm.bing.net/th?id=OIP.abc123",
"url": "https://example.com/gallery/sunset",
"width": 3840,
"height": 2160,
"source": "Bing",
"encoding_format": "jpeg",
"discovery_date": "2026-07-14T00:00:00.0000000"
}
],
"result_count": 100,
"has_next": true
}
⌘I

