Ecosia Search Scraper avatar

Ecosia Search Scraper

Deprecated

Pricing

from $1.99 / 1,000 search results

Go to Apify Store
Ecosia Search Scraper

Ecosia Search Scraper

Deprecated

Scrapes normalized organic search results from Ecosia.

Pricing

from $1.99 / 1,000 search results

Rating

0.0

(0)

Developer

Search API

Search API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Security

Limited permissions

Share

Collect source-backed organic web results from the public Ecosia Search page.

Input

FieldTypeDefaultDescription
querystring—Web-search keywords.
maxItemsinteger20Global result limit (1–500).
maxPagesinteger1Maximum pages to inspect (1–50).
proxyConfigurationobject—Optional Apify proxy settings when direct access is limited.

The full input contract is in .actor/input_schema.json.

Output

Each record includes a stable query-specific ID, organic result type, title and snippet aliases, source URL and domain fields, global and page positions, query and market context, retrieval provenance, nested search metadata, and scrapedAt. Empty optional fields are omitted. CAPTCHA and access boundaries fail the run without creating placeholder rows.

The default dataset has an Overview view and a Full details view. The exact output fields and types are in .actor/dataset_schema.json.

Retrieval

Ecosia server-renders its organic results and ships the same structured payload its own frontend uses inside <script id="vike_pageContext" type="application/json"> (data.results.mainline[], relatedQueries, totalNumberResults, pagination). The Actor reads that payload first over a plain HTTPS request to the same public /search URL (retrievalMethod: ecosia_serp_json) and falls back to the Chrome Playwright DOM path (retrievalMethod: live_chrome_dom) when the request is refused or the payload is absent. A configured proxy is never bypassed: proxied runs always use the browser transport.

On the browser path the payload is read from the server-rendered document response (captured in a pre-navigation hook, src/document-capture.js) rather than from page.content(), because hydration consumes the payload and the script node is not guaranteed to still be in the live DOM. The DOM still supplies the rows; the payload supplies the search-wide totalResults and the engine's own per-result fields (engineData), joined back by result URL. A 4xx document is a challenge/refusal page and is never read as a SERP.

Ecosia publishes no public JSON search API — api.ecosia.org answers /v1/notifications and /v2/favicons/* but returns 404 for every /v1|v2/search, /web, /serp, /results, /query and /v2/staan-proxy route — so there is no endpoint to switch to. /search is also Disallowed for User-agent: * in https://www.ecosia.org/robots.txt and is served behind Ecosia's interactive firewall challenge, which the Actor never attempts to solve.

How to use

Enter a web query and limits in the Apify Input tab, start the Actor, and inspect organic result records in the Output dataset.