{
  "openapi": "3.0.1",
  "info": {
    "title": "Similarweb Website Traffic Scraper",
    "description": "Scrape Similarweb traffic for any domain or Top Websites list: monthly visits, global, country and category rank, traffic sources, top countries, bounce rate. Export to JSON, CSV or Excel.",
    "version": "0.0",
    "x-build-id": "ONXepU9YtyhHyvXff"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nice_dev~similarweb-traffic-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nice_dev-similarweb-traffic-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nice_dev~similarweb-traffic-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nice_dev-similarweb-traffic-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nice_dev~similarweb-traffic-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nice_dev-similarweb-traffic-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "domains": {
            "title": "Domains",
            "maxItems": 10000,
            "uniqueItems": true,
            "type": "array",
            "description": "Websites to look up, one per line: a domain (`apify.com`) or any URL of the site (`https://www.apify.com/store` is read as `apify.com`). Similarweb measures whole websites: a sub-domain (`docs.apify.com`) is looked up as written and usually comes back without figures. Duplicates are looked up once. Up to 10 000 per run.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "URLs or a file of domains",
            "maxItems": 1000,
            "type": "array",
            "description": "Added to **Domains**. Paste website URLs, Similarweb pages (`https://www.similarweb.com/website/apify.com/` = that site; `https://www.similarweb.com/top-websites/france/` = that Top Websites list) or link a text / CSV file with one domain or URL per line (for long lists).",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "categories": {
            "title": "Top Websites lists by category",
            "maxItems": 300,
            "uniqueItems": true,
            "type": "array",
            "description": "Discover sites: each line is a Similarweb category or sub-category (`arts-and-entertainment`, `Computers Electronics and Technology > Programming and Developer Software`, `ecommerce-and-shopping/marketplace`). Each one adds the 50 most visited sites of that category worldwide, with their position in the list and its change, then the traffic data of each site. Kept apart from **Countries**: Similarweb only shows 5 sites for a country and a category together.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Top Websites lists by country",
            "maxItems": 250,
            "uniqueItems": true,
            "type": "array",
            "description": "Discover sites: each line is a country (name `France`, code `fr` or `united-states`) or `world`. Each one adds the 50 most visited sites of that country, all categories, with their position in the list and its change, then the traffic data of each site.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "allCategories": {
            "title": "All main categories",
            "type": "boolean",
            "description": "Add the Top Websites list of every main Similarweb category (about 25 lists of 50 sites) to **Categories**.",
            "default": false
          },
          "expandSimilarSites": {
            "title": "Add the similar sites as rows (market map)",
            "type": "boolean",
            "description": "For each domain of your list, also add its 20 most similar sites as rows of their own, with their full traffic data and `similarToDomain` = the domain they come from: a whole market from a few seed sites. Each added row is a result (see Pricing). Sites already in the run are not repeated.",
            "default": false
          },
          "maxItems": {
            "title": "Max sites",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of site rows to save for the whole run (after deduplication and filters). 0 = no limit.",
            "default": 1000
          },
          "maxItemsPerQuery": {
            "title": "Max sites per list",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Cap for EACH Top Websites list (up to 50 sites) and for the similar sites added from EACH seed domain (up to 20), so that one list cannot use up the whole **Max sites** budget. 0 = no cap per list.",
            "default": 0
          },
          "includeNotFound": {
            "title": "Keep sites without data",
            "type": "boolean",
            "description": "Save a row with `hasData: false` for each site Similarweb has no estimate for (too small, too new or unknown), so the output keeps one row per site you gave. These rows are free.",
            "default": true
          },
          "includeSimilarSites": {
            "title": "20 similar sites (paid add-on)",
            "type": "boolean",
            "description": "Add to each row its 20 most similar websites (`similarSites`: domain, similarity score, monthly visits, category, top country), a ready-made competitor list, plus the site's topic `tags` and its mobile apps (`relatedApps`). Charged per site that has similar sites, tags or apps (see Pricing). Only for sites Similarweb has figures for.",
            "default": false
          },
          "includeWhois": {
            "title": "WHOIS and home page keywords (paid add-on)",
            "type": "boolean",
            "description": "Add the public registration record of each domain (`whois`): creation, update and expiry dates, domain age in days, days until expiry, registrar, name servers, status; and the most frequent words and 2- to 5-word phrases of its home page (`keywordDensity`). Charged per domain for which one of them is found (see Pricing). Also done for small sites Similarweb has no figures for. Some domain extensions have no public registry: `whois` is then empty and only the keywords are given.",
            "default": false
          },
          "includeInDepth": {
            "title": "Full Similarweb page (paid add-on)",
            "type": "boolean",
            "description": "Read the public Similarweb page of each site and add: company (name, year founded, headquarters, employees, revenue range), top 10 competitors with their affinity and category rank, 3-month rank history and rank neighbours, audience age and gender, interests, number of countries, organic / paid search split, incoming and outgoing referral totals, top social networks, ads totals and recent ad creatives, technology categories. Slower (a browser opens the page). Charged per site whose page is read (see Pricing). Only for sites Similarweb has figures for.",
            "default": false
          },
          "includeWebsiteContacts": {
            "title": "Contacts from the website (paid add-on)",
            "type": "boolean",
            "description": "Open the home page of each site and up to two of its contact, about or legal pages, and add the e-mail addresses, phone numbers and social links found there, in `websiteEmails`, `websitePhones` and `socialLinks`. Charged once per site for which at least one e-mail address or phone number is found; a site that cannot be opened or gives nothing costs nothing. Also done for small sites Similarweb has no figures for.",
            "default": false
          },
          "includeMarketStats": {
            "title": "Market comparison of the run (paid add-on)",
            "type": "boolean",
            "description": "Adds one record, `MARKET_STATS`, to the run's key-value store (Output tab), worked out from the sites of this run: share of visits of each site, leader of each metric (visits, growth, engagement, AI traffic, each traffic source), totals and medians, then the same per seed domain (with **Add the similar sites as rows**) and per Top Websites list. Charged per sheet (see Pricing).",
            "default": false
          },
          "minMonthlyVisits": {
            "title": "Min monthly visits",
            "minimum": 0,
            "maximum": 100000000000,
            "type": "integer",
            "description": "Only sites with at least this many visits in the latest month. 0 = no minimum.",
            "default": 0
          },
          "maxMonthlyVisits": {
            "title": "Max monthly visits",
            "minimum": 0,
            "maximum": 100000000000,
            "type": "integer",
            "description": "Only sites with at most this many visits in the latest month (find small and mid-size sites). 0 = no maximum.",
            "default": 0
          },
          "maxGlobalRank": {
            "title": "Max global rank",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Only sites ranked at this position or better worldwide (e.g. 100000 = top 100 000). Sites without a global rank are dropped when this is set. 0 = no limit.",
            "default": 0
          },
          "minTrafficChangePercent": {
            "title": "Min visits change %",
            "minimum": -100,
            "maximum": 100000,
            "type": "integer",
            "description": "Only sites whose visits changed by at least this many percent between the last two months (`10` = growing by 10 % or more; `-20` = not falling by more than 20 %). A site without a change to compare (a single month of data) is left out. Empty = no filter."
          },
          "maxTrafficChangePercent": {
            "title": "Max visits change %",
            "minimum": -100,
            "maximum": 100000,
            "type": "integer",
            "description": "Only sites whose visits changed by at most this many percent between the last two months (`-10` = falling by 10 % or more; `20` = not growing by more than 20 %). A site without a change to compare (a single month of data) is left out. Empty = no filter."
          },
          "maxBounceRatePercent": {
            "title": "Max bounce rate %",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only sites whose bounce rate is at most this, in percent (0-100). 0 = no maximum.",
            "default": 0
          },
          "includeCategories": {
            "title": "Only these categories",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Only sites whose Similarweb category or sub-category contains one of these words (case ignored), e.g. `ecommerce`, `news`, `programming`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeCategories": {
            "title": "Exclude categories",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Drop the sites whose Similarweb category or sub-category contains one of these words, e.g. `adult`, `gambling`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "topCountries": {
            "title": "Main country",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Only sites whose first country by visits is one of these (2-letter codes `us`, `fr` or names).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Drop the sites whose domain, title or description contains one of these words (case and accents ignored), e.g. `casino`, `porn`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlyNew": {
            "title": "Only new monthly data",
            "type": "boolean",
            "description": "Skip the sites whose estimate for the same month (`snapshotDate`) a previous run with the same **Memory key** already delivered: they are not saved and not charged. First run = everything is new.",
            "default": false
          },
          "stateKey": {
            "title": "Memory key",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "maxLength": 64,
            "type": "string",
            "description": "Name of the memory used by **Only new monthly data**. Give each schedule / task its own key (e.g. `competitors-fr`) so that they do not share their memory. Letters, digits, `-` and `_`.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset the memory",
            "type": "boolean",
            "description": "Forget everything remembered under this **Memory key** before the run: this run returns (and charges) every site again. Untick it afterwards.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy or your own proxies. Keep the default: the Actor changes IP address by itself when Similarweb limits one, and that is included in the price. The residential Apify proxy is not available in this Actor.",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of requests processed in parallel.",
            "default": 10
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 10,
            "maximum": 2000,
            "type": "integer",
            "description": "Most requests in any 60 seconds, all of them counted. A budget, not an even pace: up to this many can leave at once when the minute starts (spread them with the minimum delay below). Lower it if the log shows HTTP 429 / 403.",
            "default": 600
          },
          "minRequestIntervalMs": {
            "title": "Min delay between requests",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Smallest gap between two requests, in milliseconds. Unlike the per-minute rate, this spreads the requests evenly instead of letting them go out in a burst. 0 = no gap.",
            "default": 0
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Retries per request before it is marked as failed. A request that Similarweb turns away is also retried on a new IP address up to 10 times without using up these retries.",
            "default": 5
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Include debug messages in the run log.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}