Ecosia Search API

Get Ecosia search results, news, images and videos as JSON

This API returns what www.ecosia.org shows for a query, as JSON, with no Ecosia account.

endpoints
5
credits per call
1–3

2 credits per call≈ $2/1,000 calls1,000 free credits, no card

POST/ecosia/v1/search200
  1. 10 Best Hiking Boots of 2026 - Outdoor Gear Lab
    position
    1
    domain
    outdoorgearlab.com
    provider
    google
  2. Best hiking boots 2026: The pairs that stood out in testing
    position
    2
    domain
    trailandkale.com
  3. What are the best brands of hiking boots? - Reddit
    position
    3
    domain
    reddit.com
Real result, captured Nov 6, 20263 of 10
Try it live

Run the call yourself, on the real endpoint

Change a parameter and press Try it. The response on the right is what your code will receive.

Ecosia Search API

5 of 5 endpoints, ready to run

View docs ↗

Ranked web results with title, URL, snippet, date and sitelinks, plus related searches and the knowledge panel, in any Ecosia region.

2 credits1 required · 3 optional
POST/ecosia/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

Try every endpoint in the playground

Endpoints

What Ecosia Search endpoints does ReefAPI ship?

5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

5 endpoints

search

2 cr

Ecosia web results for a query.

required
q
optional
market, language, safe_search, page

news

2 cr

Ecosia News results.

required
q
optional
market, language, safe_search, freshness, page

images

3 cr

Ecosia image results.

required
q
optional
market, language, safe_search, freshness, size, color, image_type, aspect, license, page

videos

2 cr

Ecosia video results.

required
q
optional
market, language, safe_search, freshness, length, resolution, page

autocomplete

1 cr

Ecosia search suggestions for a partial query, in the chosen region (the typeahead Ecosia's o…

required
q
optional
market

Every parameter, every allowed value →

Missing a Ecosia Search endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
How it works

How the Ecosia Search API works

Ecosia Search is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 632 engines.

02
Call
POST /ecosia/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and nothing is cached: every call reads the source live.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Recipe

Compare one keyword across Ecosia regions

The same query returns a different page per region. Send the region, read context.market to confirm what Ecosia applied, and key on url.

01search?q=zeitung&market=de-de
GET/ecosia/v1/search?q=zeitung&market=de-de

Measured: sueddeutsche.de, bild.de, spiegel.de and faz.net at the top.

02search?q=zeitung&market=en-us
GET/ecosia/v1/search?q=zeitung&market=en-us

Dictionary and translation pages (collinsdictionary.com, langenscheidt) and English pages about German papers: the US region, not a translated German one.

03news?q=bundestag&market=de-de&freshness=day
GET/ecosia/v1/news?q=bundestag&market=de-de&freshness=day

The German news edition for the past day, with each article's publisher and UTC time.

One call per region and vertical; results_provider tells you which index Ecosia answered from for each search.

request
curl -X POST https://api.reefapi.com/ecosia/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"q":"best hiking boots"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "ecosia",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}
Fields

What an Ecosia field actually contains

Fields that read differently from how they look. Every row was measured against live Ecosia pages on 2026-11-06.

FieldWhat it holds
results_provider, results[].providerThe index Ecosia answered from, as Ecosia states it on the page: google, bing, eusp (the European index Ecosia co-runs) or serper (Google results Ecosia buys through a reseller). It varies by region and query: on 57 answered searches in 18 languages, 50 came from google, 4 from eusp and 3 from serper.
results[].dateThe date Ecosia prints in front of a snippet, as UTC. Many rows have none: on Google-provided pages it was set on 1 to 9 of 10 rows depending on the query.
results[].url_is_redirecttrue when Ecosia's own result link is a Google click-redirect (https://www.google.com/goto?url=...) instead of the page address. The redirect target is encrypted, so domain is null for those rows rather than google.com. It happens on some site: queries; a page that comes back mostly redirected is read once more, which usually returns direct links. meta.redirect_rows counts what is left.
ads, meta.ad_slots_not_in_pageEcosia's Google ads are drawn in the visitor's browser by Google's own ad script, so the page carries only how many ad slots there are, not the ads. ads[] is filled when the page itself carries ads; otherwise meta.ad_slots_not_in_page says how many slots Ecosia reserved (4 on a typical Google-provided page).
local_resultsLocal businesses Ecosia shows for queries like "pizza near me": name, categories, rating, review count, coordinates, opening hours and source link. Ecosia places them by the network location of the request, not by the region, so treat them as an example of the format rather than of a city you chose.
images pageEcosia's image pages are overlapping windows, not slices: page 1 holds about 60 images (the first screen included), and on measured queries pages 2 and 3 repeated 32 to 51 images of the page before. Dedupe on id.
news with market en-wwEcosia News has no all-regions edition: "ai regulation" and "bitcoin" returned 0 news in en-ww and 10 in en-us. Pick a country market for news.
safe_searchstrict, moderate (Ecosia's default) or off, echoed back in context.safe_search. Measured on an explicit image query: strict returned no images, off returned 24 from adult sites.

Ecosia's web time filter is not offered on search: measured on three queries, the same 7 to 9 of 10 URLs came back with and without it. news, images and videos honour their recency filter (news for the past day held only articles from the last 24 hours; videos for the past week held only videos from the last 7 days).

Coverage

Ecosia coverage, measured

Every number below was read from live Ecosia pages on 2026-11-06. In the final run of 235 calls (59 web searches including site: and quoted queries, 44 news, 48 image, 44 video and 40 autocomplete calls in 31 regions) 234 answered as expected; the miss was a news search in the all-regions market, which Ecosia News does not have. A further 150 searches, nine at a time, all answered.

Regions

All 61 Ecosia regions accepted; 31 regions in 18 languages and 5 scripts (Latin, Cyrillic, Japanese, Korean, Chinese) exercised in the test set, each echoed back in context.market.

Web results

10 organic results per page (9 on a few). Against the page's own rendered listing, URL and title matched on 168 of 168 rows and the snippet on 119 of 119 web rows (12 web, 3 news, 2 video pages).

Images

About 60 images per page from page 1, each with image URL, source page, width, height and format; size, colour, type, aspect, licence and recency filters each changed the result set measurably.

Videos

About 20 videos per query over two pages, with duration in ISO 8601 and seconds, platform and publish date.

Limits

Google-provided ads are drawn by Google in the visitor's browser and are not in the page (slot count only); Ecosia's web time filter is not offered because it did not change results; news needs a country region; image pages overlap.

Use cases

What people build with Ecosia Search

The jobs this data is most often used for.

5

endpoints

1/2/3

credits per call

01

Track where a site ranks on Ecosia, region by region, next to Google and Bing.

02

Monitor news for a brand or topic in a country's own Ecosia news edition.

03

Collect images with known size, aspect ratio, format and licence filter for a dataset.

04

Find videos of a given length and recency for a topic.

Pricing

What Ecosia Search data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 632 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire
no credit card1,000 free credits · instant API key · pay by card or crypto
Quickstart

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/ecosia/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"q":"best hiking boots"}'
python
import os
import requests

REEF_KEY = os.environ["REEF_KEY"]

r = requests.post(
    "https://api.reefapi.com/ecosia/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
        "q": "best hiking boots"
    },
    timeout=90,
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Ecosia Search.

Do I need an Ecosia account or API key?▾

No. Results are read from Ecosia's public search pages, logged out. You call reefapi.com with your ReefAPI key.

Whose results are these, Ecosia's or Google's?▾

Ecosia's results page, exactly as it shows it. Ecosia itself answers from several indexes, and results_provider tells you which one served each search (google, bing, eusp or serper).

Which regions and languages are supported?▾

All 61 of Ecosia's regions, passed as market (for example en-us, de-de, fr-fr, ja-jp, pt-br, en-ww for all regions). context.market in every answer echoes the region Ecosia applied. Our test set covered 31 regions, 18 languages and 5 scripts (Latin, Cyrillic, Japanese, Korean, Chinese).

Do site: and quoted phrases work?▾

Yes. Ecosia passes them to its index, and queries such as site:reddit.com web scraping, "to be or not to be", site:lemonde.fr climat and intitle:review iphone 17 all returned results in our 2026-11-06 runs. They can take a few seconds longer on the first call of a quiet period.

How do I page through results?▾

Use page: search 1-10, news 1-20, videos 1-5 (Ecosia lists about 20 videos per query), images 1-10. Pages are Ecosia's own, so neighbouring pages can repeat a result: we measured 1 to 2 repeats between search pages, 1 to 2 between news pages and 0 to 4 of 10 between video pages. Key on url.

What happens when there are no results?▾

You get a 404 NOT_FOUND, never an empty success. For web search the empty answer is confirmed a second time before it is returned. A temporary refusal by the site is a retryable error, never a 404.

Do the image and video filters really filter?▾

Yes, each one was measured: aspect tall returned only portrait images, square only square ones; type animatedgif returned only animated GIFs and transparent only PNGs; colour red returned red-dominant images; size small returned 54 of 60 images under 200 pixels wide where wallpaper returned 60 of 60 at 1,024 pixels or wider; video length long returned only videos longer than 20 minutes and short only videos under 5 minutes (three runs).

How fast is it?▾

A typical call takes about 2 seconds; the measured median was 1.9 to 2.1 seconds for search, news, images and videos and 0.6 seconds for autocomplete. The first call after a quiet period can take 6 to 10 seconds longer.

What is the Ecosia Search API?▾

Ecosia Search API is a ReefAPI endpoint group for ecosia search results as json: ranked web results with snippet, date and sitelinks, news, images with size and colour filters, videos with duration, and autocomplete, in ecosia's 61 regions. It returns live JSON through POST requests under /ecosia/v1.

Is the Ecosia Search API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. Ecosia Search calls use the same shared credit balance as every other ReefAPI engine.

Do I need an Ecosia Search login or account?▾

No login to Ecosia Search is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Ecosia Search data?▾

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Ecosia Search API use?▾

Ecosia Search actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Ecosia Search from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call ecosia actions with the same key, credit pool and JSON envelope used by normal REST requests.

Same key

11 Search & SEO APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Ecosia Search, you are one call away from the rest of the category — no second contract, no second integration.

Contact

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 631 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-11-06.