Similarweb APIsimilarweb.com ↗
Get traffic stats, rankings, demographics, competitors, and search sources for any domain via the Similarweb Website Analytics API.
What is the Similarweb API?
The Similarweb Website Analytics API exposes over 20 structured data fields for any domain through a single get_website_info endpoint. Pass a domain name and receive global and country rankings, engagement metrics (bounce rate, pages per visit, average session duration), geographic traffic distribution, competitor domains, audience demographics, and organic vs. paid search keyword data — all in one response.
curl -X GET 'https://api.parse.bot/scraper/9e9926d7-8602-4fa3-8302-616d58668d39/get_website_info?domain=google.com' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace similarweb-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.similarweb_website_analytics_api import Similarweb
client = Similarweb()
# Fetch analytics for a domain
site = client.websites.get(domain="nike.com")
# Company info
print(site.company.name, site.company.headquarters_country)
# Rankings
print(site.rankings.global_rank, site.rankings.country_rank)
# Engagement metrics
print(site.engagement.total_visits, site.engagement.bounce_rate, site.engagement.pages_per_visit)
# Traffic history
for entry in site.traffic_history:
print(entry.date, entry.percentage_change, entry.percentage_value)
# Traffic sources
for source in site.traffic_sources:
print(source.source, source.rank, source.percentage)
# Competitors
for comp in site.competitors:
print(comp.domain)
# Demographics (may be None for low-traffic sites)
if site.demographics:
print(site.demographics.gender.male, site.demographics.gender.female)
for age_group in site.demographics.age_distribution:
print(age_group.min_age, age_group.max_age, age_group.value)
# Geography
if site.geography:
print(site.geography.total_countries)
for country in site.geography.top_countries:
print(country.country_alpha2_code, country.visits_share)
# Search sources
if site.search_sources:
print(site.search_sources.organic_share, site.search_sources.total_keywords)
for kw in site.search_sources.top_keywords:
print(kw.name, kw.cpc)
Get comprehensive website analytics data for any domain, including company info, rankings, traffic engagement metrics, competitors, demographics, geography, and search sources. Data is extracted from Similarweb's public website analysis pages. Returns data for the most recent month available. Some sections (demographics, geography, search_sources) may be null for low-traffic or newly-registered domains.
| Param | Type | Description |
|---|---|---|
| domainrequired | string | The website domain to analyze (e.g., 'nike.com', 'google.com'). Do not include protocol prefix. |
{
"type": "object",
"fields": {
"domain": "string - the analyzed domain",
"company": "object containing name, year_founded, headquarters_country, headquarters_city, employees_min, employees_max, revenue_min, revenue_max, category_id, parent_domain",
"rankings": "object containing global_rank, global_rank_change, country_rank, country_rank_change, country_code, category_rank, category_rank_change",
"geography": "object containing total_countries and top_countries array, or null for low-traffic domains",
"engagement": "object containing total_visits, visits_change, bounce_rate, pages_per_visit, avg_visit_duration, visits_grade",
"competitors": "array of objects with domain field",
"description": "string or null - site description",
"demographics": "object containing gender {male, female} and age_distribution array, or null",
"search_sources": "object containing organic_share, paid_share, total_keywords, top_keywords array, or null",
"traffic_history": "array of traffic history entries with date, percentage_change, percentage_value",
"traffic_sources": "array of objects with source, rank, percentage, is_higher fields"
},
"sample": {
"data": {
"domain": "google.com",
"company": {
"name": "Google",
"category_id": "computers_electronics_and_technology/search_engines",
"revenue_max": null,
"revenue_min": 1000000000,
"year_founded": 1998,
"employees_max": null,
"employees_min": 10001,
"parent_domain": "google.com",
"headquarters_city": "Mountain View",
"headquarters_country": "US"
},
"rankings": {
"global_rank": 1,
"country_code": "US",
"country_rank": 1,
"category_rank": 1,
"global_rank_change": 0,
"country_rank_change": 0,
"category_rank_change": 0
},
"geography": {
"top_countries": [
{
"visitsShare": 0.238,
"countryUrlCode": "united-states",
"countryAlpha2Code": "US",
"visitsShareChange": 0.0002,
"countryAlpha2CodeRaw": "US"
}
],
"total_countries": 120
},
"engagement": {
"bounce_rate": 0.283,
"total_visits": 87502305979,
"visits_grade": null,
"visits_change": null,
"pages_per_visit": 8.65,
"avg_visit_duration": "00:10:03"
},
"competitors": [
{
"domain": "bing.com"
},
{
"domain": "yandex.ru"
}
],
"description": "Learn about the Certified Publisher Program.",
"demographics": {
"gender": {
"male": 0.572,
"female": 0.428
},
"age_distribution": [
{
"value": 0.268,
"maxAge": 34,
"minAge": 25
}
]
},
"search_sources": {
"paid_share": 0.05,
"top_keywords": [
{
"cpc": 0.26,
"name": "gemini",
"volume": null,
"estimatedValue": null
}
],
"organic_share": 0.95,
"total_keywords": 29569986
},
"traffic_history": [
{
"date": "2026-03-01T00:00:00",
"percentageValue": 24.18,
"percentageChange": 6.73
}
],
"traffic_sources": [
{
"rank": 1,
"source": "direct",
"isHigher": null,
"percentage": 0.925
}
]
},
"status": "success"
}
}About the Similarweb API
What the API Returns
The get_website_info endpoint accepts a single domain parameter (e.g., nike.com) and returns a structured object covering eight distinct data categories. The rankings object includes global_rank, global_rank_change, country_rank, country_rank_change, country_code, and category_rank — giving you a snapshot of where a site stands relative to its peers. The engagement object covers total_visits, visits_change, bounce_rate, pages_per_visit, avg_visit_duration, and visits_grade.
Traffic, Geography, and Demographics
The geography object returns the total number of countries sending traffic and an array of top countries with fields like countryAlpha2Code and visitsShare, letting you see where a site's audience is concentrated. The demographics object, when available, provides a gender split (male, female) and an age_distribution array with minAge, maxAge, and value fields. The company object adds firmographic context: year_founded, headquarters_country, headquarters_city, employees_min/employees_max, and revenue_min/revenue_max.
Search and Competitive Intelligence
The search_sources object returns organic_share, paid_share, total_keywords, and a top_keywords array where each entry includes name, estimatedValue, volume, and cpc. This makes it straightforward to estimate a domain's SEO vs. SEM mix. The competitors array lists related domains, and traffic_history provides a time-series view of traffic trends, though availability varies by domain.
The Similarweb API is a managed, monitored endpoint for similarweb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when similarweb.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official similarweb.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Benchmark a competitor's global and category rankings using
global_rankandcategory_rankfields. - Identify which countries drive the most traffic to a target domain using
geography.top_countries. - Estimate a site's paid vs. organic search strategy using
search_sources.organic_shareandpaid_share. - Build audience segmentation reports using
demographics.genderanddemographics.age_distribution. - Discover adjacent competitors for market mapping using the
competitorsarray. - Track engagement health across sites using
bounce_rate,pages_per_visit, andavg_visit_duration. - Enrich a B2B lead database with firmographic data using
company.employees_min,employees_max, andrevenue_min.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Similarweb offer an official developer API?+
What does the `search_sources` object include, and is it always present?+
search_sources returns organic_share, paid_share, total_keywords, and a top_keywords array with name, volume, cpc, and estimatedValue per keyword. This field may be null for domains with low traffic volume or limited public search data on Similarweb.Is `traffic_history` available for every domain?+
traffic_history array is returned as part of the response but may be empty for domains where Similarweb does not publish historical trend data publicly. High-traffic domains generally have richer history. Low-traffic or newly indexed domains often return an empty array.Does the API support bulk domain lookups or batch requests?+
domain parameter in get_website_info. Batch processing is not built into the endpoint. You can fork this API on Parse and revise it to add a batch endpoint that accepts multiple domains and aggregates results.