Skip to content

Targets & geo

target picks the engine; geo picks the country the results are localized to and the default locale. Both are optional and default to google_search and us.

Target page num safe
google_search (default) 1 to 5 1 to 20 off, moderate, strict
bing_search 1 only 1 to 20 off, moderate, strict
duckduckgo_search 1 only 1 to 10 not supported
yahoo_search 1 only 1 to 10 off, moderate, strict
brave_search 1 to 5 1 to 20 off, moderate, strict
yandex_search 1 to 5 1 to 10 not supported

A parameter the chosen target cannot serve answers 400 unsupported_parameter and costs nothing:

  • bing_search, duckduckgo_search, yahoo_search: page above 1.
  • duckduckgo_search, yahoo_search, yandex_search: num above 10.
  • duckduckgo_search, yandex_search: safe set to anything but off.

The limits that hold for every target (page outside 1 to 5, num outside 1 to 20, an unknown safe value) answer 400 invalid_request with the field named in issues.

Every target answers the same response shape, so switching engines is a change of one query parameter.

Defaults: page=1, num=10, safe=off.

Terminal window
# Bing, localized to the UK, two results
curl -G "https://api.serpresult.com/v1/query" \
-H "Authorization: Bearer sk_live_your_key" \
--data-urlencode "query=bing webmaster guidelines" \
--data-urlencode "target=bing_search" \
--data-urlencode "geo=gb" \
--data-urlencode "num=2"

193 countries: every search is localized to the country you asked for, so the results are the ones a user searching there sees. Each has a default locale that applies when you send no locale. The ten launch geos head the list in their original order; the rest follow by code.

Any other geo answers 400 unsupported_geo and costs nothing. The response carries the whole supported list in details, in the order below, so a client can refresh its own list from a rejection.

geo Country Default locale
us United States en-us
in India en-in
gb United Kingdom en-gb
ca Canada en-ca
au Australia en-au
de Germany de-de
fr France fr-fr
sg Singapore en-sg
ae United Arab Emirates en-ae
jp Japan ja-jp
ad Andorra ca-ad
af Afghanistan ps-af
ag Antigua and Barbuda en-ag
al Albania sq-al
am Armenia hy-am
ao Angola pt-ao
ar Argentina es-ar
at Austria de-at
aw Aruba nl-aw
az Azerbaijan az-az
ba Bosnia and Herzegovina bs-ba
bb Barbados en-bb
bd Bangladesh bn-bd
be Belgium nl-be
bf Burkina Faso fr-bf
bg Bulgaria bg-bg
bh Bahrain ar-bh
bi Burundi fr-bi
bj Benin fr-bj
bn Brunei ms-bn
bo Bolivia es-bo
br Brazil pt-br
bs Bahamas en-bs
bw Botswana en-bw
by Belarus be-by
bz Belize en-bz
cd Congo (DRC) fr-cd
cg Congo (Republic) fr-cg
ch Switzerland de-ch
ci Côte d’Ivoire fr-ci
cl Chile es-cl
cm Cameroon en-cm
cn China zh-cn
co Colombia es-co
cr Costa Rica es-cr
cu Cuba es-cu
cv Cape Verde pt-cv
cy Cyprus el-cy
cz Czech Republic cs-cz
dk Denmark da-dk
do Dominican Republic es-do
dz Algeria ar-dz
ec Ecuador es-ec
ee Estonia et-ee
eg Egypt ar-eg
es Spain es-es
et Ethiopia am-et
fi Finland fi-fi
fj Fiji en-fj
fm Micronesia en-fm
fo Faroe Islands fo-fo
ga Gabon fr-ga
gd Grenada en-gd
ge Georgia ka-ge
gf French Guiana fr-gf
gg Guernsey en-gg
gh Ghana en-gh
gm Gambia en-gm
gp Guadeloupe fr-gp
gq Equatorial Guinea es-gq
gr Greece el-gr
gt Guatemala es-gt
gu Guam en-gu
gy Guyana en-gy
hk Hong Kong en-hk
hn Honduras es-hn
hr Croatia hr-hr
ht Haiti fr-ht
hu Hungary hu-hu
id Indonesia id-id
ie Ireland en-ie
il Israel iw-il
iq Iraq ar-iq
ir Iran fa-ir
is Iceland is-is
it Italy it-it
jm Jamaica en-jm
jo Jordan ar-jo
ke Kenya en-ke
kg Kyrgyzstan ky-kg
kh Cambodia km-kh
km Comoros fr-km
kn Saint Kitts and Nevis en-kn
kr South Korea ko-kr
kw Kuwait ar-kw
ky Cayman Islands en-ky
kz Kazakhstan kk-kz
la Laos lo-la
lb Lebanon ar-lb
lc Saint Lucia en-lc
lk Sri Lanka si-lk
lr Liberia en-lr
ls Lesotho en-ls
lt Lithuania lt-lt
lu Luxembourg fr-lu
lv Latvia lv-lv
ly Libya ar-ly
ma Morocco ar-ma
md Moldova ro-md
me Montenegro sr-me
mg Madagascar fr-mg
mk North Macedonia mk-mk
ml Mali fr-ml
mm Myanmar my-mm
mn Mongolia mn-mn
mo Macau zh-mo
mp Northern Mariana Islands en-mp
mq Martinique fr-mq
mr Mauritania ar-mr
mt Malta mt-mt
mu Mauritius en-mu
mv Maldives dv-mv
mw Malawi en-mw
mx Mexico es-mx
my Malaysia ms-my
mz Mozambique pt-mz
na Namibia en-na
nc New Caledonia fr-nc
ne Niger fr-ne
ng Nigeria en-ng
ni Nicaragua es-ni
nl Netherlands nl-nl
no Norway no-no
np Nepal ne-np
nz New Zealand en-nz
om Oman ar-om
pa Panama es-pa
pe Peru es-pe
pf French Polynesia fr-pf
pg Papua New Guinea en-pg
ph Philippines tl-ph
pk Pakistan en-pk
pl Poland pl-pl
pr Puerto Rico es-pr
ps Palestine ar-ps
pt Portugal pt-pt
pw Palau en-pw
py Paraguay es-py
qa Qatar ar-qa
re Réunion fr-re
ro Romania ro-ro
rs Serbia sr-rs
ru Russia ru-ru
rw Rwanda rw-rw
sa Saudi Arabia ar-sa
sb Solomon Islands en-sb
sd Sudan ar-sd
se Sweden sv-se
si Slovenia sl-si
sk Slovakia sk-sk
sl Sierra Leone en-sl
sn Senegal fr-sn
so Somalia so-so
sr Suriname nl-sr
st São Tomé and Príncipe pt-st
sv El Salvador es-sv
sy Syria ar-sy
sz Eswatini en-sz
td Chad ar-td
tg Togo fr-tg
th Thailand th-th
tj Tajikistan tg-tj
tl Timor-Leste pt-tl
tn Tunisia ar-tn
to Tonga en-to
tr Türkiye tr-tr
tt Trinidad and Tobago en-tt
tw Taiwan zh-tw
tz Tanzania sw-tz
ua Ukraine uk-ua
ug Uganda en-ug
uy Uruguay es-uy
uz Uzbekistan uz-uz
vc Saint Vincent and the Grenadines en-vc
ve Venezuela es-ve
vg British Virgin Islands en-vg
vi U.S. Virgin Islands en-vi
vn Vietnam vi-vn
vu Vanuatu bi-vu
ye Yemen ar-ye
za South Africa af-za
zm Zambia en-zm
zw Zimbabwe en-zw

locale is a language-region tag in the form xx-yy. It is case-insensitive on input and stored lowercase, so en-GB and en-gb are the same value. When you send one it is used as given; when you send none, the default for geo is used. The resolved value is echoed back as locale in the response.