Domains by Technology Analyzer avatar

Domains by Technology Analyzer

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Domains by Technology Analyzer

Domains by Technology Analyzer

This actor provides domains based on the technology they use. In addition to the list of domains, you will also get their technology profiles, the country and language they belong to, and other related data.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

wang wei

wang wei

Maintained by Community

Actor stats

0

Bookmarked

14

Total users

2

Monthly active users

3.9 days

Issues response

18 hours ago

Last modified

Share

Domains by Technology Analyzer — find sites by stack with auto-pagination

Search 5,000+ technologies (Shopify, WordPress, nginx, Google Analytics, jQuery, React…) and pull a clean list of domains that use them, with optional country filtering and automatic cursor pagination up to 1,000 results per run.

Why Use This Actor

ProblemHow This Actor Solves It
Need a prospect list of every Shopify store in the US?Search Shopify + filter country: US in one run.
Need more than 100 results?Set limit up to 1,000 — the Actor cursor-paginates upstream results automatically so you get a single, de-duplicated, ordered list.
Don't know the exact casing of a technology?Case is normalized via an 800+ alias table: wordpressWordPress, GAGoogle Analytics.
Need to resume a previous run?Use offset to skip the first N upstream items.

What You Get

For every matched domain you receive:

  • Identity: domain, title, description, metaKeywords
  • Signals: domainRank, lastVisited, countryIsoCode, languageCode, contentLanguageCode
  • Contact: phoneNumbers[], emails[], socialGraphUrls[]
  • Stack: full technologies{} object as detected upstream
  • Provenance (_* fields): the query echo, total upstream count, page count, and how many items this run collected — so you can detect partial vs. complete runs.

Quick Start

1. Run with Example Input

{
"technologies": "Shopify\nWordPress",
"country": "US",
"limit": 250
}

Returns up to 250 US domains using Shopify OR WordPress.

2. Export Your Results

  • Open the run in Apify Console.
  • Click the Dataset tab → Export → JSON / CSV / Excel.
  • Or fetch the API: GET https://api.apify.com/v2/acts/<ACTOR_ID>/runs/<RUN_ID>/dataset/items

Input Reference

Top-Level Structure

{
"technologies": "Shopify\nWordPress\nWooCommerce",
"country": "US",
"limit": 500,
"offset_token": ""
}

technologies — Technologies

RequiredTypeDefaultDescription
Yesstring (textarea)One technology per line, or comma-separated. Case-insensitive (normalized via the built-in alias table). Up to 10 per run.

Examples:

Shopify
WordPress
Google Analytics
nginx
WooCommerce, jQuery, React

country — Country Filter

RequiredTypeDefaultDescription
Nostringempty (all countries)ISO-3166-1 alpha-2 code: US, GB, DE, CN, JP, BR, etc. Leave empty to search worldwide.

limit — Result Limit

RequiredTypeDefaultMinMaxDescription
Nointeger10011000How many domains to collect. The Actor cursor-paginates upstream results automatically — setting limit: 500 will fetch 5 upstream pages if needed.

offset_token — Resume From Cursor

RequiredTypeDefaultDescription
NostringemptyOpaque base64 cursor returned by a previous run. Paste the value of _lastOffsetToken from a SUMMARY record to resume that run from where it left off. Leave empty to start fresh.

Output Reference

Domain Object — one row per matched domain

FieldTypeDescription
domainstringThe root domain, e.g. example-store.com.
titlestring|null<title> tag content.
descriptionstring|null<meta name="description"> content.
metaKeywordsstring|null<meta name="keywords"> content.
domainRanknumber|nullUpstream rank score (lower = more popular).
lastVisitedstring|nullISO timestamp of last crawl visit.
countryIsoCodestring|nullISO-3166-1 alpha-2 country of the IP.
languageCodestring|nullDetected site language.
contentLanguageCodestring|null<meta http-equiv="content-language"> value.
phoneNumbersstring[]Phone numbers scraped from the page.
emailsstring[]Email addresses scraped from the page.
socialGraphUrlsstring[]URLs to the site's social profiles.
technologiesobjectMap of detected technologies on this domain.
_queryobjectEcho of the input that produced this row (technologies, limit, offset, country).
_totalCountnumberTotal matching domains upstream (may be > _collected).
_pagesFetchednumberHow many upstream pages this run pulled.
_collectednumberItems actually pushed in this run (= limit, or fewer if upstream had less).
_lastOffsetTokenstring|nullOpaque cursor to pass into the next run's offset_token to continue paginating. null when upstream has no more pages.

Run Summary

Stored under the SUMMARY key in the default key-value store. Shape:

{
"ok": true,
"query": { "technologies": ["..."], "normalizedTechs": ["..."], "limit": 500, "offset": 0, "country": "US" },
"result": { "totalCount": 12834, "collected": 500, "pagesFetched": 5, "lastOffsetToken": "eyJ...", "hasMore": true },
"paying": false,
"freeRunsToday": 2,
"apiRequests": 5,
"completedAt": "2026-07-20T12:00:00.000Z"
}

Pagination — How It Works

Each run returns exactly 100 domains. To get the next 100, run again with offset = previous_nextOffset.

Run 1: offset=0100 items (1-100), _nextOffset: 100
Run 2: offset=100100 items (101-200), _nextOffset: 200
Run 3: offset=200100 items (201-300), _nextOffset: 300
...
Run 99: offset=9800100 items (9801-9900), _nextOffset: null (exhausted)

When _nextOffset is null, upstream has no more matches and you've finished.

Hard ceiling: 9900 items per query

The upstream API enforces offset + limit <= 10000 and rejects anything above (Invalid Field: 'limit'). With limit locked at 100, the maximum reachable offset is 9900 — that's 99 pages × 100 = 9,900 domains per (technologies, country, last_visited) query.

To go deeper:

  • Refine your query: add a country filter to scope results to a single market.
  • Split technologies: search Shopify in run 1, WooCommerce in run 2, etc.
  • Tighten last_visited: the Actor defaults to "visited this calendar year"; older results need a different filter (currently hardcoded — let us know if you need a date range input).

Empty-page handling

If a run returns 0 items (offset past the end), the Actor returns an empty dataset with _nextOffset: null and hasMore: false. No upstream call is made when offset > 9900.

Pricing & Limits

  • Free tier: 5 runs/day (capped via Actor-scoped KV store).
  • Hard cap per run: 100 domains.
  • Hard cap on technologies per run: 10.
  • Max pages per query: 99 (offset 0 → 9800, yielding 9,900 items total). Beyond that, refine your query.
  • Filter: lastVisited is restricted to the current calendar year by default (results stay fresh).

FAQ

Q: Why do I get fewer results than limit? A: Upstream simply doesn't have that many matches for your query. Check _totalCount in the output or result.totalCount in SUMMARY — that's the real upstream count.

Q: How do I get more than 100 results? A: Run the Actor again with offset set to the value of _nextOffset from the previous run's SUMMARY (or any dataset row's _nextOffset field). Example: run 1 returns 100 items with _nextOffset: 100. Run 2 uses offset: 100 to get items 101-200. Repeat until _nextOffset is null.

Q: Does case matter in technologies? A: No. Input is lowercased and looked up in the alias table (800+ entries). wordpress, WordPress, and WORDPRESS all resolve to canonical WordPress.

Q: Does the free tier reset at midnight UTC? A: Yes — the counter is keyed by YYYY-MM-DD (UTC).

Q: Why is _collected < limit even though _totalCount > limit? A: You ran out of free quota mid-pagination, OR upstream returned pages shorter than limit. Use the API (apify call) or a paid tier to avoid the free-tier block.

Support

  • Console run page: open the run for live logs + retry options.
  • Email: sam.wang0420@gmail.com (errors auto-notified via Resend).

License

MIT License — free to use and modify.