Harvo Search logo: an isometric navy cube on paper white

Scroll
One request, five sources, one ranked response. Recorded against the live API.

27 sources, ten categories.

CategorySourcesReturns
generalbing, google, duckduckgo, wikipedia, wikidata, marginalia, mwmbl, wibyranked links, answers, infoboxes
imagesbing images, google images, duckduckgo images, openversefile, thumbnail, resolution, host
videosyoutube, duckduckgo videos, google videos, internet archiveembed player, duration, views
newsgoogle news, bing news, duckduckgo news, hacker newsheadline, source, timestamp
sciencearxiv, wikipedia, wikidatatitle, authors, DOI, abstract
itstack overflow, hacker newsquestion, score, answer state
mapopenstreetmapplace, coordinates, bounding box
musicmusicbrainz, internet archiverecording, artist, release, length
filesinternet archiveitem, mediatype, size, downloads
social mediareddit, hacker newsthread, score, comments, author

A source that rate-limits or blocks is named in unresponsive_engines with the reason, for example google: too many requests.

Three lines to a working integration.

requestbash
# the only credential you manage
curl "https://harvo-search.hmangesho08.workers.dev/search
  ?q=rust%20ownership
  &categories=general
  &format=json" \
  -H "X-API-Key: hvk_..."

Get an API key See a live response

The honest answers.

Is this a full web index?

No. It is a metasearch API: it queries sources at request time and merges the replies. It runs no crawler of its own and holds no corpus, so it will never be as exhaustive as an index you could crawl.

Why do some sources report failures?

Because they are named. Large engines rate-limit datacentre addresses, and pretending otherwise would make coverage look better than it is. The response tells you exactly which sources were skipped and why.

What happens to my data?

Queries serve that one response and are not retained. Accounts store an identifier, an email address and counters. No third-party analytics, fonts or scripts load on any page.

What is the free tier?

3,000 requests per calendar month on each key, with a per-minute burst limit. No card, no trial clock. Operator keys are unlimited.