SimilarWeb API endpoint
Returns SimilarWeb's traffic profile for one domain: global, country and category rank, estimated monthly visits, engagement (bounce rate, pages per visit, time on site), top countries, traffic sources, top keywords and similar sites. `DataSource` shows whether the full source or the narrower public-page fallback answered; the fallback omits several fields.
/similarweb/web/{domain}Path parameters:
domain: required. Domain to fetch SimilarWeb data for.Response fields (partial list; other fields mirror SimilarWeb's own terminology):
DataSource: which source populated this response. One of: extension_api (full-coverage source), public_page (narrower source used only when the full-coverage source is unavailable). When DataSource is public_page, fields the narrower source doesn't expose — Title, TopKeywords, EstimatedMonthlyVisits, TrafficSources, LargeScreenshot, IsDataFromGa, Notification, GlobalCategoryRank, Policy, IsSmall, Countries, AiTrafficDetails, and TopCountryShares[].Country (the numeric country id) — are left at their zero value rather than omitted; treat a zero value on those fields as "not available from this source", not as SimilarWeb reporting zero.AiTrafficDetails: AI-chatbot traffic insights for this domain —
TotalVisits (visits referred from AI chatbots), ReferralTraffic
(share of the domain's traffic coming from AI referrals),
Traffic.Split[] / Traffic.Distribution.Chatbots[] (which AI
platforms send that traffic and their share),
Traffic.Distribution.Chart[] (per-platform share history over recent
months via History[]{Date,Value}), and TopPrompts.Prompts[] (top
prompts users asked AI chatbots that led them here).Billing: charged per the data source that actually populated the
response — extension_api = 5 credits, public_page = 15 credits (a
real headless-browser render is required to clear a JS challenge on the
fallback source). Only successful (2xx) responses are billed; blocked
or failed lookups cost nothing.
Notable response behavior:
402/429 body reports reason — one of
insufficient_credits, daily_credit_limit, rate_limited,
ip_rate_limited — along with your position against that limit and
reset_scope, the window that clears it: one of daily, monthly,
minute, ip_window. This contract is shared by every credit-billed
endpoint; see Billing Rejections for the full
field list and examples.| Field | Filled in, of 252 checked | Values in the sample |
|---|---|---|
| Code | 252 | |
| UrlCode | 252 | “afghanistan” and 251 other values |
| Name | 252 | “Afghanistan” and 251 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| domain (path) | string | Yes | Domain to fetch SimilarWeb data for | google.com | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/similarweb/web/google.com" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"Version": 1,
"SiteName": "openai.com",
"Description": "We believe our research will eventually lead to artificial general intelligence.",
"TopCountryShares": [
{
"Country": 840,
"CountryCode": "US",
"Value": 0.2119
}
],
"Title": "OpenAI",
"Engagments": {
"BounceRate": "0.478",
"Month": "7",
"Year": "2026",
"PagePerVisit": "2.31",
"Visits": "128455321",
"TimeOnSite": "103.5"
},
"AiTrafficDetails": {
"TotalVisits": 40471810.45,
"ReferralTraffic": 0.20555688559222743,
"TopPrompts": {
"Status": 0,
"ErrorMessage": "",
"Prompts": [
"What are the main differences between current large language model architectures?"
]
},
"Traffic": {
"Split": [
{
"Name": "chatgpt.com",
"Rank": 1,
"Icon": "/image?url=chatgpt.com"
}
],
"Distribution": {
"Boundary": "<100M",
"Chatbots": [
{
"Name": "chatgpt.com",
"Icon": "/image?url=chatgpt.com",
"Value": 84.77
}
],
"Chart": [
{
"Name": "chatgpt.com",
"Icon": "/image?url=chatgpt.com",
"History": [
{
"Date": "2026-07-01",
"Value": 84.77
}
]
}
]
}
}
},
"DataSource": "extension_api"
}
}Request schema
No body schema
Response schema
#/definitions/similarweb.webResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | similarweb.SimilarWebResp | No | ||||
| data.AiTrafficDetails | object | No | AiTrafficDetails carries SimilarWeb's AI-chatbot traffic insights (the extension's "AI Traffic" feature set): which AI platforms send traffic to this domain, how that mix changed over recent months, and the top prompts users asked those chatbots that referred visits here. Left at its zero value when DataSource is "public_page" because that source doesn't expose it. | |||
| data.AiTrafficDetails.ReferralTraffic | number | No | ||||
| data.AiTrafficDetails.TopPrompts | object | No | ||||
| data.AiTrafficDetails.TopPrompts.ErrorMessage | string | No | ||||
| data.AiTrafficDetails.TopPrompts.Prompts | array | No | ||||
| data.AiTrafficDetails.TopPrompts.Status | integer | No | ||||
| data.AiTrafficDetails.TotalVisits | number | No | ||||
| data.AiTrafficDetails.Traffic | object | No | ||||
| data.AiTrafficDetails.Traffic.Distribution | object | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Boundary | string | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chart | array | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chart[].History | array | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chart[].History[].Date | string | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chart[].History[].Value | number | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chart[].Icon | string | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chart[].Name | string | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chatbots | array | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chatbots[].Icon | string | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chatbots[].Name | string | No | ||||
| data.AiTrafficDetails.Traffic.Distribution.Chatbots[].Value | number | No | ||||
| data.AiTrafficDetails.Traffic.Split | array | No | ||||
| data.AiTrafficDetails.Traffic.Split[].Icon | string | No | ||||
| data.AiTrafficDetails.Traffic.Split[].Name | string | No | ||||
| data.AiTrafficDetails.Traffic.Split[].Rank | integer | No | ||||
| data.Category | string | No | Category SimilarWeb places the site in. | |||
| data.CategoryRank | object | No | Rank of the site within its category, with the category name. | |||
| data.CategoryRank.Category | string | No | ||||
| data.CategoryRank.Rank | string | No | ||||
| data.Competitors | object | No | Sites SimilarWeb lists as most similar to the domain. | |||
| data.Competitors.TopSimilarityCompetitors | array | No | ||||
| data.Countries | array | No | Countries SimilarWeb returns with the site's data, each with a code, URL code and name. | |||
| data.Countries[].Code | string | No | ||||
| data.Countries[].Name | string | No | ||||
| data.Countries[].UrlCode | string | No | ||||
| data.CountryRank | object | No | Rank of the site within one country, with that country's code. | |||
| data.CountryRank.Country | integer | No | ||||
| data.CountryRank.CountryCode | string | No | ||||
| data.CountryRank.Rank | integer | No | ||||
| data.DataSource | string | No | extension_api | DataSource reports which upstream this response was populated from. "extension_api" is the full-coverage source (SimilarWeb's undocumented browser-extension API); "public_page" is a narrower, credential-free fallback (see website.go) used only when the extension API is unreachable -- some fields above are left at their zero value when DataSource is "public_page" because this source doesn't expose them. See docs/similarweb-web.md for the full field-availability breakdown. | ||
| data.Description | string | No | Site description as SimilarWeb shows it. | |||
| data.Engagments | object | No | Engagement figures for the latest month: bounce rate, pages per visit, visits, time on site, month and year. | |||
| data.Engagments.BounceRate | string | No | ||||
| data.Engagments.Month | string | No | ||||
| data.Engagments.PagePerVisit | string | No | ||||
| data.Engagments.TimeOnSite | string | No | ||||
| data.Engagments.Visits | string | No | ||||
| data.Engagments.Year | string | No | ||||
| data.EstimatedMonthlyVisits | object | No | Estimated visits per month, keyed by the first day of the month (YYYY-MM-DD). | |||
| data.EstimatedMonthlyVisits.2024-09-01 | integer | No | ||||
| data.EstimatedMonthlyVisits.2024-10-01 | integer | No | ||||
| data.EstimatedMonthlyVisits.2024-11-01 | integer | No | ||||
| data.GlobalCategoryRank | unknown | No | Rank of the site within its category across all countries, when SimilarWeb provides it. | |||
| data.GlobalRank | object | No | Global traffic rank of the site, in `Rank`. | |||
| data.GlobalRank.Rank | integer | No | ||||
| data.IsDataFromGa | boolean | No | Whether SimilarWeb reports the site's data as coming from Google Analytics. | |||
| data.IsSmall | boolean | No | Whether SimilarWeb treats the site as a small site. | |||
| data.LargeScreenshot | string | No | URL of a large screenshot of the site. | |||
| data.Notification | object | No | Notice SimilarWeb attaches to the site's data, in `Content`. | |||
| data.Notification.Content | unknown | No | ||||
| data.Policy | integer | No | Numeric policy value SimilarWeb returns with the site's data. | |||
| data.SiteName | string | No | Domain name of the site. | |||
| data.SnapshotDate | string | No | Date and time of the SimilarWeb data snapshot. | |||
| data.Title | string | No | Site title as SimilarWeb shows it. | |||
| data.TopCountryShares | array | No | Countries that send the most visits, each with its country code and share of traffic. | |||
| data.TopCountryShares[].Country | integer | No | ||||
| data.TopCountryShares[].CountryCode | string | No | ||||
| data.TopCountryShares[].Value | number | No | ||||
| data.TopKeywords | array | No | Top search keywords bringing visits to the site, each with estimated value, volume and cost per click. | |||
| data.TopKeywords[].Cpc | number | No | ||||
| data.TopKeywords[].EstimatedValue | number | No | ||||
| data.TopKeywords[].Name | string | No | ||||
| data.TopKeywords[].Volume | number | No | ||||
| data.TrafficSources | object | No | Share of traffic from each source: social, paid referrals, mail, referrals, search and direct. | |||
| data.TrafficSources.Direct | number | No | ||||
| data.TrafficSources.Mail | number | No | ||||
| data.TrafficSources.Paid Referrals | number | No | ||||
| data.TrafficSources.Referrals | number | No | ||||
| data.TrafficSources.Search | number | No | ||||
| data.TrafficSources.Social | number | No | ||||
| data.Version | integer | No | Version number SimilarWeb returns with the site's data. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Invalid domain parameter | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/similarweb/web/google.com" \
-H "x-api-key: $CRAWLORA_API_KEY"