DataForSEO Technologies API
Analyze technology usage across domains and discover domains using specific technologies.
Quick Start
# Find domains using WordPress
python scripts/domains_by_technology.py --technology "WordPress"
# Get technology stack for a domain
python scripts/domain_technologies.py --domain example.com
# Bulk technology analysis
python scripts/domain_technologies.py --bulk domains.txt
Available Scripts
| Script | Purpose |
|---|---|
domains_by_technology.py |
Search domains using specific technologies |
domain_technologies.py |
Get technology stack for domain(s) |
Domains by Technology (domains_by_technology.py)
Find domains based on their technology usage. Requires at least one technology selection parameter.
Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
--technology |
One of these | - | Technology name (repeatable, max 10) |
--group |
required | - | Technology group ID (repeatable, max 10) |
--category |
- | Technology category ID (repeatable, max 10) | |
--technology-path |
- | Technology path "$group.$category" (repeatable, max 10) | |
--keyword |
- | Keyword matching domain metadata (repeatable, max 10) | |
--mode |
No | as_is | Search mode: as_is (exact) or entry (partial) |
--filters |
No | - | JSON string or file with filter conditions |
--order-by |
No | - | Sort: field:asc or field:desc (repeatable, max 3) |
--limit |
No | 100 | Max results (max 10,000) |
--offset |
No | 0 | Pagination offset (max 9,999) |
--offset-token |
No | - | Pagination token for >100,000 results |
--tag |
No | - | Task identifier (max 255 chars) |
--output |
No | auto | Custom output path |
Examples
Find domains using WordPress:
python scripts/domains_by_technology.py --technology "WordPress"
Find domains using multiple technologies:
python scripts/domains_by_technology.py \
--technology "WordPress" \
--technology "WooCommerce"
Search by technology group:
python scripts/domains_by_technology.py --group "web_development"
Search by category:
python scripts/domains_by_technology.py --category "cms"
Search with technology path:
python scripts/domains_by_technology.py --technology-path "web_development.cms"
Combine technology with keyword:
python scripts/domains_by_technology.py \
--technology "Shopify" \
--keyword "fashion"
High-rank domains only:
python scripts/domains_by_technology.py \
--technology "React" \
--filters '[["domain_rank", ">", 5000]]' \
--order-by "domain_rank:desc" \
--limit 500
Partial matching mode:
python scripts/domains_by_technology.py \
--technology "Google" \
--mode entry
Save to a custom output path:
python scripts/domains_by_technology.py \
--technology "WordPress" \
--output output/wordpress_domains.json
Sortable Fields
| Field | Description |
|---|---|
domain_rank |
Backlink rank metric |
domain |
Domain name alphabetically |
last_visited |
Most recent crawl date |
country_iso_code |
Country code |
language_code |
Language code |
content_language_code |
Content language |
Filter Operators
| Operator | Description | Example |
|---|---|---|
= |
Equal | ["country_iso_code", "=", "US"] |
<> |
Not equal | ["country_iso_code", "<>", "CN"] |
> |
Greater than | ["domain_rank", ">", 1000] |
< |
Less than | ["domain_rank", "<", 50000] |
>= |
Greater or equal | ["domain_rank", ">=", 5000] |
<= |
Less or equal | ["domain_rank", "<=", 10000] |
in |
In list | ["country_iso_code", "in", ["US", "UK", "DE"]] |
not_in |
Not in list | ["country_iso_code", "not_in", ["CN", "RU"]] |
like |
Contains | ["domain", "like", "shop"] |
not_like |
Does not contain | ["domain", "not_like", "test"] |
Domain Technologies (domain_technologies.py)
Get the complete technology stack for specific domain(s).
Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
--domain |
One of | - | Single domain to analyze |
--bulk |
these | - | Path to file with domain list |
--tag |
No | - | Task identifier (max 255 chars) |
--output |
No | auto | Custom output path |
Bulk File Formats
Text file (one domain per line):
example.com
another-domain.com
third-site.org
JSON file:
["example.com", "another-domain.com", "third-site.org"]
Or with objects:
[
{"domain": "example.com"},
{"domain": "another-domain.com"}
]
CSV file (with header):
domain
example.com
another-domain.com
Examples
Single domain analysis:
python scripts/domain_technologies.py --domain example.com
Bulk analysis from text file:
python scripts/domain_technologies.py --bulk domains.txt
Bulk analysis from JSON:
python scripts/domain_technologies.py --bulk competitors.json
Save to a custom output path:
python scripts/domain_technologies.py \
--domain example.com \
--output output/example_tech.json
Bulk with custom output:
python scripts/domain_technologies.py \
--bulk domains.txt \
--output output/tech_audit.json
Output Structure
Domains by Technology Response
| Field | Description |
|---|---|
total_count |
Total matching domains in database |
items_count |
Number of returned items |
offset_token |
Token for pagination |
items[].domain |
Domain name |
items[].title |
Page title |
items[].description |
Meta description |
items[].meta_keywords |
Meta keywords |
items[].domain_rank |
Backlink rank metric |
items[].last_visited |
Last crawl timestamp (UTC) |
items[].country_iso_code |
Country code |
items[].language_code |
Language code |
items[].phone_numbers |
Contact phones |
items[].emails |
Contact emails |
items[].social_graph_urls |
Social media links |
items[].technologies |
Nested tech stack object |
Domain Technologies Response
| Field | Description |
|---|---|
target |
Analyzed domain |
title |
Page title |
description |
Meta description |
meta_keywords |
Meta keywords |
domain_rank |
Backlink rank metric |
last_visited |
Last crawl timestamp |
country_iso_code |
Country code |
language_code |
Language code |
phone_numbers |
Contact phones |
emails |
Contact emails |
social_graph_urls |
Social media links |
technologies |
Complete tech stack by category |
Common Technologies
CMS Platforms
WordPress, Drupal, Joomla, Shopify, Wix, Squarespace, Webflow, Ghost, Contentful
JavaScript Frameworks
React, Vue.js, Angular, Next.js, Nuxt.js, Svelte, jQuery, Backbone.js
Analytics & Tracking
Google Analytics, Adobe Analytics, Matomo, Hotjar, Mixpanel, Amplitude, Google Tag Manager
CDN & Performance
Cloudflare, Akamai, Fastly, Amazon CloudFront, KeyCDN, StackPath
E-commerce
WooCommerce, Magento, Shopify, BigCommerce, PrestaShop, OpenCart, Salesforce Commerce Cloud
Marketing & CRM
HubSpot, Marketo, Pardot, Salesforce, Intercom, Drift, Mailchimp
Web Servers
Nginx, Apache, Microsoft IIS, LiteSpeed, Caddy
Hosting & Cloud
Amazon Web Services, Google Cloud, Microsoft Azure, Heroku, Netlify, Vercel
Use Cases
Technology Market Research
Find all domains using specific technologies:
python scripts/domains_by_technology.py \
--technology "Shopify" \
--limit 5000 \
--order-by "domain_rank:desc"
Competitor Technology Analysis
Discover what technologies competitors are using:
# Create competitors.txt with competitor domains
python scripts/domain_technologies.py \
--bulk competitors.txt
Tech Stack Audit
Analyze technology adoption across a portfolio:
python scripts/domain_technologies.py \
--bulk portfolio_domains.json
Market Share Analysis
Calculate technology market share by domain rank:
# Get high-rank WordPress domains
python scripts/domains_by_technology.py \
--technology "WordPress" \
--filters '[["domain_rank", ">", 10000]]' \
--limit 10000
# Get high-rank Shopify domains
python scripts/domains_by_technology.py \
--technology "Shopify" \
--filters '[["domain_rank", ">", 10000]]' \
--limit 10000
Technology Discovery
Find domains using specific technology combinations:
python scripts/domains_by_technology.py \
--technology "React" \
--technology "Next.js" \
--keyword "ecommerce" \
--limit 1000
Migration Planning
Identify domains on legacy platforms:
python scripts/domains_by_technology.py \
--technology "Drupal 7" \
--limit 5000
API Limits
| Limit | Value |
|---|---|
| Rate limit | 2,000 calls/minute |
| Domains by Technology max limit | 10,000 results/request |
| Domain Technologies max tasks | 100 domains/request |
| Max technologies per request | 10 |
| Max groups per request | 10 |
| Max categories per request | 10 |
| Max technology paths per request | 10 |
| Max keywords per request | 10 |
| Max filters | 8 |
| Max order_by fields | 3 |
| Max tag length | 255 characters |
Environment Variables
Requires in .env:
DATAFORSEO_LOGIN=your_login
DATAFORSEO_PASSWORD=your_password
Output Files
All scripts save to:
output/by default (created automatically)- Custom path with
--output
File naming:
domains_by_technology_<timestamp>.jsondomain_technologies_<domain>.jsondomain_technologies_bulk_<timestamp>.json