To get started, sign up for free. Once you have your API key, you're ready to make your first API call.
All API requests require authentication using your API key. Pass it in the Authorization header:
New keys include a yep_ prefix. The prefix is optional when authenticating, so existing unprefixed keys continue to work.
You can manage your API keys in the API keys section.
To ensure optimal performance for all users, the API enforces the following rate limits:
If you exceed any of these limits, you'll receive a 429 Too Many Requests response.
All API responses include rate limit headers:
|
Header
|
Description
|
|---|---|
X-RateLimit-Limit
|
Maximum requests allowed per minute |
X-RateLimit-Remaining
|
Requests remaining in the current window |
X-RateLimit-Reset
|
Seconds until the rate limit window resets |
Org admins can tighten these per-key via the management keys API.
The API uses standard HTTP status codes and returns error details in the response body:
|
Status code
|
Description
|
|---|---|
|
200
|
Success |
|
400
|
Bad request — missing or invalid parameters |
|
401
|
Unauthorized — invalid API credentials |
|
402
|
Payment required — insufficient account balance |
|
404
|
Not found — unknown endpoint, or key hash not found |
|
422
|
Unprocessable entity — validation failed, including per-key limits above the platform default |
|
429
|
Too many requests — rate limit exceeded |
|
500
|
Internal server error |
POST
/api/search
Search for content across the platform. Returns a list of matching items by proxying to our advanced search service.
Base cost: $0.004/request for up to 20 results. Each additional result adds $0.001. Only returned results are charged. Highlights are included at no extra cost.
|
Parameter
|
Type
|
Required
|
Description
|
|---|---|---|---|
query
|
string | Yes | Search query string (1–1,000 characters) |
type
|
string | No | Type of search: "basic" (default) or "highlights". The basic search includes URL, meta titles, and meta descriptions. The highlights search additionally includes relevant text highlights from the page content. |
limit
|
integer | No | Maximum number of results to return (default: 10, max: 100) |
language
|
array | No | Filter results by language using ISO 639-1 codes. Pass as an array (e.g., ["en"], ["fr", "en"]). See supported languages. |
location
|
string | No | Prefer results for one country, using a single ISO 3166-1 alpha-2 code (e.g., "DE"). This steers ranking towards that country's sites and sources rather than excluding pages from elsewhere, so how much the result set changes depends on the query. See supported locations. |
content_type
|
string | No | Filter by content type. Selecting a type includes all its subtypes. See content types. |
safe_search
|
boolean | No | Exclude pages classified under the Adult category (default: false). |
include_domains
|
string | No |
Comma-separated root domains only, without protocol, path, or subdomain (e.g., example.com,github.com). For docs.github.com/lalala, use github.com.
|
exclude_domains
|
string | No |
Comma-separated root domains only, without protocol, path, or subdomain (e.g., example.com,github.com). For docs.github.com/lalala, use github.com.
|
start_published_date
|
string | No |
Filter by page published date (start). ISO 8601 format: 2024-01-15 or 2024-01-15T12:30:00Z.
|
end_published_date
|
string | No | Filter by page published date (end). ISO 8601 format. |
start_crawl_date
|
string | No | Filter by when the page was last crawled (start). ISO 8601 format. |
end_crawl_date
|
string | No | Filter by when the page was last crawled (end). ISO 8601 format. |
Example Request
curl -X POST "https://platform.yep.com/api/search" \
-H "Authorization: Bearer $YEP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "saratoga spring water", "type": "basic", "limit": 10, "language": ["en"], "location": "US"}'
const YEP_API_KEY = process.env.YEP_API_KEY;
fetch('https://platform.yep.com/api/search', {
method: 'POST',
headers: {
'Authorization': `Bearer ${YEP_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
"query": "saratoga spring water",
"type": "basic",
"limit": 10,
"language": [
"en"
],
"location": "US"
})
})
.then(response => response.json())
.then(data => console.log(data));
import os
import requests
response = requests.post(
'https://platform.yep.com/api/search',
headers={'Authorization': f'Bearer {os.environ["YEP_API_KEY"]}'},
json={
'query': 'saratoga spring water',
'type': 'basic',
'limit': 10,
'language': ['en'],
'location': 'US'
}
)
print(response.json())
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://platform.yep.com/api/search');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . getenv('YEP_API_KEY'),
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"query": "saratoga spring water", "type": "basic", "limit": 10, "language": ["en"], "location": "US"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
The following content types can be used with the content_type parameter. Selecting a type automatically includes all its subtypes (111 total subtypes across all types).
|
Type
|
Example subtypes
|
|---|---|
Article
|
How_to, Tutorial_or_Guide, Listicle, Comparisons, Roundup, Product_or_Brand_Review, Opinion_Piece, News_Update, Recipe, FAQ, Wiki |
Video
|
How_to, Tutorial_or_Guide, Listicle, Comparisons, Product_or_Brand_Review, News_Update, Interview, Webinar, Vlog |
Image
|
Infographic, Photography, Vector_Illustration, Meme, Diagram, Flowchart |
Audio
|
Podcast, Webinar, Interview, Music, Audiobook |
Document
|
Case_Study, Ebook, White_Paper, Research_Paper, Template, Report, Manual |
Listing
|
Product, Property, Job, Service, Event, Location, Business |
Listing_Collection
|
Product, Property, Job, Service, Event, Location, Business |
Landing_Page
|
Service_Page, Location_Page, Product_Page, Pricing_Page |
Interactive_Tools
|
Calculator, SaaS_Software, Map, Quiz, Generator |
User_Generated_Content
|
Forum_Thread, Discussions, Social_Media_Post, Reviews, Q_A |
Core_Page
|
Homepage, About_Page, Contact_Page, FAQ_Page, Blog_Index, Careers_Page |
The following ISO 639-1 language codes can be used with the language parameter. You can also retrieve this list programmatically via GET /api/languages (no authentication required).
|
Code
|
Language
|
|---|---|
aa
|
Afar |
ab
|
Abkhazian |
ae
|
Avestan |
af
|
Afrikaans |
ak
|
Akan |
am
|
Amharic |
an
|
Aragonese |
ar
|
Arabic |
as
|
Assamese |
av
|
Avaric |
ay
|
Aymara |
az
|
Azerbaijani |
ba
|
Bashkir |
be
|
Belarusian |
bg
|
Bulgarian |
bi
|
Bislama |
bm
|
Bambara |
bn
|
Bengali |
bo
|
Tibetan |
br
|
Breton |
bs
|
Bosnian |
ca
|
Catalan |
ce
|
Chechen |
ch
|
Chamorro |
co
|
Corsican |
cr
|
Cree |
cs
|
Czech |
cu
|
Church Slavonic |
cv
|
Chuvash |
cy
|
Welsh |
da
|
Danish |
de
|
German |
dv
|
Divehi |
dz
|
Dzongkha |
ee
|
Ewe |
el
|
Greek |
en
|
English |
eo
|
Esperanto |
es
|
Spanish |
et
|
Estonian |
eu
|
Basque |
fa
|
Persian |
ff
|
Fulah |
fi
|
Finnish |
fj
|
Fijian |
fo
|
Faroese |
fr
|
French |
fy
|
Western Frisian |
ga
|
Irish |
gd
|
Gaelic |
gl
|
Galician |
gn
|
Guarani |
gu
|
Gujarati |
gv
|
Manx |
ha
|
Hausa |
he
|
Hebrew |
hi
|
Hindi |
ho
|
Hiri Motu |
hr
|
Croatian |
ht
|
Haitian |
hu
|
Hungarian |
hy
|
Armenian |
hz
|
Herero |
ia
|
Interlingua |
id
|
Indonesian |
ie
|
Interlingue |
ig
|
Igbo |
ii
|
Sichuan Yi |
ik
|
Inupiaq |
io
|
Ido |
is
|
Icelandic |
it
|
Italian |
iu
|
Inuktitut |
ja
|
Japanese |
jv
|
Javanese |
ka
|
Georgian |
kg
|
Kongo |
ki
|
Kikuyu |
kj
|
Kuanyama |
kk
|
Kazakh |
kl
|
Kalaallisut |
km
|
Central Khmer |
kn
|
Kannada |
ko
|
Korean |
kr
|
Kanuri |
ks
|
Kashmiri |
ku
|
Kurdish |
kv
|
Komi |
kw
|
Cornish |
ky
|
Kyrgyz |
la
|
Latin |
lb
|
Luxembourgish |
lg
|
Ganda |
li
|
Limburgan |
ln
|
Lingala |
lo
|
Lao |
lt
|
Lithuanian |
lu
|
Luba-Katanga |
lv
|
Latvian |
mg
|
Malagasy |
mh
|
Marshallese |
mi
|
Maori |
mk
|
Macedonian |
ml
|
Malayalam |
mn
|
Mongolian |
mr
|
Marathi |
ms
|
Malay |
mt
|
Maltese |
my
|
Burmese |
na
|
Nauru |
nb
|
Norwegian Bokmål |
nd
|
North Ndebele |
ne
|
Nepali |
ng
|
Ndonga |
nl
|
Dutch |
nn
|
Norwegian Nynorsk |
no
|
Norwegian |
nr
|
South Ndebele |
nv
|
Navajo |
ny
|
Chichewa |
oc
|
Occitan |
oj
|
Ojibwa |
om
|
Oromo |
or
|
Oriya |
os
|
Ossetian |
pa
|
Punjabi |
pi
|
Pali |
pl
|
Polish |
ps
|
Pashto |
pt
|
Portuguese |
qu
|
Quechua |
rm
|
Romansh |
rn
|
Rundi |
ro
|
Romanian |
ru
|
Russian |
rw
|
Kinyarwanda |
sa
|
Sanskrit |
sc
|
Sardinian |
sd
|
Sindhi |
se
|
Northern Sami |
sg
|
Sango |
si
|
Sinhala |
sk
|
Slovak |
sl
|
Slovenian |
sm
|
Samoan |
sn
|
Shona |
so
|
Somali |
sq
|
Albanian |
sr
|
Serbian |
ss
|
Swati |
st
|
Southern Sotho |
su
|
Sundanese |
sv
|
Swedish |
sw
|
Swahili |
ta
|
Tamil |
te
|
Telugu |
tg
|
Tajik |
th
|
Thai |
ti
|
Tigrinya |
tk
|
Turkmen |
tl
|
Tagalog |
tn
|
Tswana |
to
|
Tonga |
tr
|
Turkish |
ts
|
Tsonga |
tt
|
Tatar |
tw
|
Twi |
ty
|
Tahitian |
ug
|
Uighur |
uk
|
Ukrainian |
ur
|
Urdu |
uz
|
Uzbek |
ve
|
Venda |
vi
|
Vietnamese |
vo
|
Volapük |
wa
|
Walloon |
wo
|
Wolof |
xh
|
Xhosa |
yi
|
Yiddish |
yo
|
Yoruba |
za
|
Zhuang |
zh
|
Chinese |
zu
|
Zulu |
The following ISO 3166-1 alpha-2 country codes can be used with the location parameter. Codes are case-insensitive, and UK is accepted as an alias for GB. You can also retrieve this list programmatically via GET /api/locations (no authentication required).
|
Code
|
Location
|
|---|---|
AD
|
Andorra |
AE
|
United Arab Emirates |
AF
|
Afghanistan |
AG
|
Antigua and Barbuda |
AI
|
Anguilla |
AL
|
Albania |
AM
|
Armenia |
AO
|
Angola |
AQ
|
Antarctica |
AR
|
Argentina |
AS
|
American Samoa |
AT
|
Austria |
AU
|
Australia |
AW
|
Aruba |
AX
|
Åland Islands |
AZ
|
Azerbaijan |
BA
|
Bosnia and Herzegovina |
BB
|
Barbados |
BD
|
Bangladesh |
BE
|
Belgium |
BF
|
Burkina Faso |
BG
|
Bulgaria |
BH
|
Bahrain |
BI
|
Burundi |
BJ
|
Benin |
BL
|
Saint Barthélemy |
BM
|
Bermuda |
BN
|
Brunei Darussalam |
BO
|
Bolivia |
BQ
|
Bonaire, Sint Eustatius and Saba |
BR
|
Brazil |
BS
|
Bahamas |
BT
|
Bhutan |
BV
|
Bouvet Island |
BW
|
Botswana |
BY
|
Belarus |
BZ
|
Belize |
CA
|
Canada |
CC
|
Cocos (Keeling) Islands |
CD
|
Congo, The Democratic Republic of the |
CF
|
Central African Republic |
CG
|
Congo |
CH
|
Switzerland |
CI
|
Côte d'Ivoire |
CK
|
Cook Islands |
CL
|
Chile |
CM
|
Cameroon |
CN
|
China |
CO
|
Colombia |
CR
|
Costa Rica |
CU
|
Cuba |
CV
|
Cabo Verde |
CW
|
Curaçao |
CX
|
Christmas Island |
CY
|
Cyprus |
CZ
|
Czechia |
DE
|
Germany |
DJ
|
Djibouti |
DK
|
Denmark |
DM
|
Dominica |
DO
|
Dominican Republic |
DZ
|
Algeria |
EC
|
Ecuador |
EE
|
Estonia |
EG
|
Egypt |
EH
|
Western Sahara |
ER
|
Eritrea |
ES
|
Spain |
ET
|
Ethiopia |
FI
|
Finland |
FJ
|
Fiji |
FK
|
Falkland Islands (Malvinas) |
FM
|
Micronesia, Federated States of |
FO
|
Faroe Islands |
FR
|
France |
GA
|
Gabon |
GB
|
United Kingdom |
GD
|
Grenada |
GE
|
Georgia |
GF
|
French Guiana |
GG
|
Guernsey |
GH
|
Ghana |
GI
|
Gibraltar |
GL
|
Greenland |
GM
|
Gambia |
GN
|
Guinea |
GP
|
Guadeloupe |
GQ
|
Equatorial Guinea |
GR
|
Greece |
GS
|
South Georgia and the South Sandwich Islands |
GT
|
Guatemala |
GU
|
Guam |
GW
|
Guinea-Bissau |
GY
|
Guyana |
HK
|
Hong Kong |
HM
|
Heard Island and McDonald Islands |
HN
|
Honduras |
HR
|
Croatia |
HT
|
Haiti |
HU
|
Hungary |
ID
|
Indonesia |
IE
|
Ireland |
IL
|
Israel |
IM
|
Isle of Man |
IN
|
India |
IO
|
British Indian Ocean Territory |
IQ
|
Iraq |
IR
|
Iran |
IS
|
Iceland |
IT
|
Italy |
JE
|
Jersey |
JM
|
Jamaica |
JO
|
Jordan |
JP
|
Japan |
KE
|
Kenya |
KG
|
Kyrgyzstan |
KH
|
Cambodia |
KI
|
Kiribati |
KM
|
Comoros |
KN
|
Saint Kitts and Nevis |
KP
|
North Korea |
KR
|
South Korea |
KW
|
Kuwait |
KY
|
Cayman Islands |
KZ
|
Kazakhstan |
LA
|
Laos |
LB
|
Lebanon |
LC
|
Saint Lucia |
LI
|
Liechtenstein |
LK
|
Sri Lanka |
LR
|
Liberia |
LS
|
Lesotho |
LT
|
Lithuania |
LU
|
Luxembourg |
LV
|
Latvia |
LY
|
Libya |
MA
|
Morocco |
MC
|
Monaco |
MD
|
Moldova |
ME
|
Montenegro |
MF
|
Saint Martin (French part) |
MG
|
Madagascar |
MH
|
Marshall Islands |
MK
|
North Macedonia |
ML
|
Mali |
MM
|
Myanmar |
MN
|
Mongolia |
MO
|
Macao |
MP
|
Northern Mariana Islands |
MQ
|
Martinique |
MR
|
Mauritania |
MS
|
Montserrat |
MT
|
Malta |
MU
|
Mauritius |
MV
|
Maldives |
MW
|
Malawi |
MX
|
Mexico |
MY
|
Malaysia |
MZ
|
Mozambique |
NA
|
Namibia |
NC
|
New Caledonia |
NE
|
Niger |
NF
|
Norfolk Island |
NG
|
Nigeria |
NI
|
Nicaragua |
NL
|
Netherlands |
NO
|
Norway |
NP
|
Nepal |
NR
|
Nauru |
NU
|
Niue |
NZ
|
New Zealand |
OM
|
Oman |
PA
|
Panama |
PE
|
Peru |
PF
|
French Polynesia |
PG
|
Papua New Guinea |
PH
|
Philippines |
PK
|
Pakistan |
PL
|
Poland |
PM
|
Saint Pierre and Miquelon |
PN
|
Pitcairn |
PR
|
Puerto Rico |
PS
|
Palestine, State of |
PT
|
Portugal |
PW
|
Palau |
PY
|
Paraguay |
QA
|
Qatar |
RE
|
Réunion |
RO
|
Romania |
RS
|
Serbia |
RU
|
Russian Federation |
RW
|
Rwanda |
SA
|
Saudi Arabia |
SB
|
Solomon Islands |
SC
|
Seychelles |
SD
|
Sudan |
SE
|
Sweden |
SG
|
Singapore |
SH
|
Saint Helena, Ascension and Tristan da Cunha |
SI
|
Slovenia |
SJ
|
Svalbard and Jan Mayen |
SK
|
Slovakia |
SL
|
Sierra Leone |
SM
|
San Marino |
SN
|
Senegal |
SO
|
Somalia |
SR
|
Suriname |
SS
|
South Sudan |
ST
|
Sao Tome and Principe |
SV
|
El Salvador |
SX
|
Sint Maarten (Dutch part) |
SY
|
Syria |
SZ
|
Eswatini |
TC
|
Turks and Caicos Islands |
TD
|
Chad |
TF
|
French Southern Territories |
TG
|
Togo |
TH
|
Thailand |
TJ
|
Tajikistan |
TK
|
Tokelau |
TL
|
Timor-Leste |
TM
|
Turkmenistan |
TN
|
Tunisia |
TO
|
Tonga |
TR
|
Türkiye |
TT
|
Trinidad and Tobago |
TV
|
Tuvalu |
TW
|
Taiwan |
TZ
|
Tanzania |
UA
|
Ukraine |
UG
|
Uganda |
UM
|
United States Minor Outlying Islands |
US
|
United States |
UY
|
Uruguay |
UZ
|
Uzbekistan |
VA
|
Holy See (Vatican City State) |
VC
|
Saint Vincent and the Grenadines |
VE
|
Venezuela |
VG
|
Virgin Islands, British |
VI
|
Virgin Islands, U.S. |
VN
|
Vietnam |
VU
|
Vanuatu |
WF
|
Wallis and Futuna |
WS
|
Samoa |
YE
|
Yemen |
YT
|
Mayotte |
ZA
|
South Africa |
ZM
|
Zambia |
ZW
|
Zimbabwe |
Programmatically provision API keys for your organization. Authenticates with a management key, distinct from the search API keys above. Org admins mint management keys at Management keys.
A management key is bound to one organization and one member; every call operates inside that scope. Keys are identified by their SHA-256 hash in all URLs.
Each API key has three optional overrides: limit_per_minute, limit_per_hour, limit_per_day. When null, the platform defaults apply (60 / 3,600 / 86,400). Overrides must be at most the platform default for their window — higher values are rejected with 422.
limit_per_* is the stored override; null means the platform default applies.effective_limit_per_* is what's enforced right now.
GET
/api/management/keys
List every API key in the organization. Results are ordered newest first.
Request parameters (query string)
|
Parameter
|
Type
|
Required
|
Description
|
|---|---|---|---|
offset
|
integer | No | Pagination offset (default 0). |
limit
|
integer | No | Page size (default 100, max 100). |
POST
/api/management/keys
Create a new API key under this organization, owned by the member bound to your management key. The plaintext token is returned once; only its hash is stored.
Request parameters (JSON body)
|
Parameter
|
Type
|
Required
|
Description
|
|---|---|---|---|
name
|
string | Yes | Human-readable label (max 100 characters). |
limit_per_minute
|
integer | No | Per-minute request cap for this key. Must be ≤ 60. Omit for the platform default. |
limit_per_hour
|
integer | No | Per-hour request cap for this key. Must be ≤ 3,600. Omit for the platform default. |
limit_per_day
|
integer | No | Per-day request cap for this key. Must be ≤ 86,400. Omit for the platform default. |
GET
/api/management/keys/{hash}
Fetch a single key by its SHA-256 hash. Returns 404 when the hash is unknown or belongs to another organization.
Request parameters (path)
|
Parameter
|
Type
|
Required
|
Description
|
|---|---|---|---|
hash
|
string | Yes | 64-character SHA-256 hash of the target API key. |
PATCH
/api/management/keys/{hash}
Partially update a key. Any limit_per_* field may be set to null to clear the override and revert to the platform default.
Request parameters (JSON body — all optional)
|
Parameter
|
Type
|
Required
|
Description
|
|---|---|---|---|
name
|
string | No | New label (max 100 characters). |
disabled
|
boolean | No |
true blocks all /api/search calls using this key.
|
limit_per_minute
|
integer | null | No |
New per-minute override (must be ≤ 60), or null to clear.
|
limit_per_hour
|
integer | null | No |
New per-hour override (must be ≤ 3,600), or null to clear.
|
limit_per_day
|
integer | null | No |
New per-day override (must be ≤ 86,400), or null to clear.
|
DELETE
/api/management/keys/{hash}
Revoke a key (soft-delete). Subsequent calls to /api/search with the underlying token return 401.
Request parameters (path)
|
Parameter
|
Type
|
Required
|
Description
|
|---|---|---|---|
hash
|
string | Yes | 64-character SHA-256 hash of the target API key. |