{
  "openapi": "3.0.1",
  "info": {
    "title": "Similarweb Scraper API — Website Traffic & Competitor Analysis",
    "description": "Website traffic checker and analytics for any domain, powered by Similarweb data: monthly visits, global & country rank, traffic sources, keywords, AI traffic from ChatGPT, Gemini & Claude, audience age & gender, referrers, tech stack and competitor analysis. Bulk domains, no login.",
    "version": "0.1",
    "x-build-id": "zaj9cz8qYNbXfkGrU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trakk~similarweb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trakk-similarweb-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/trakk~similarweb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-trakk-similarweb-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/trakk~similarweb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-trakk-similarweb-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": {
          "mode": {
            "title": "Workflow",
            "enum": [
              "base_data",
              "similar_sites",
              "aitdk",
              "all",
              "compare",
              "market_map"
            ],
            "type": "string",
            "description": "Traffic & audience is the fastest. Everything we can get merges all of the sources below into one row per website."
          },
          "domains": {
            "title": "Websites",
            "type": "array",
            "description": "For Compare, the first one is the main website. For Map a market, these are the starting points. Similarweb website-profile URLs are accepted and resolve to the analysed domain. API aliases websites, datasetMode and searchType are supported; conflicting workflow selections are rejected.",
            "items": {
              "type": "string"
            }
          },
          "marketMapMaxCompetitors": {
            "title": "Map a market · how many competitors to add",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Competitors found and enriched on top of the websites you entered.",
            "default": 10
          },
          "includeInDepth": {
            "title": "Everything we can get · add audience data",
            "type": "boolean",
            "description": "Extra layer from Similarweb's public website page: age and gender split, referring domains, ad publishers and rank history. Off by default because it adds time to the run. If a profile is unavailable the website is still returned with every other field and an indepthStatus note; traffic, competitors, company contacts and tech stack do not depend on it. Other workflows ignore this option.",
            "default": false
          },
          "minMonthlyVisits": {
            "title": "Keep websites with at least",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum monthly visits. Websites below this are not saved and not charged. Leave empty for any size."
          },
          "maxMonthlyVisits": {
            "title": "…and at most",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum monthly visits, for finding smaller sites rather than giants."
          },
          "maxGlobalRank": {
            "title": "Global rank no worse than",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only websites inside this Similarweb global rank, for example 100000."
          },
          "maxCountryRank": {
            "title": "Country rank no worse than",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only websites inside this rank in their main country, for example 500."
          },
          "maxCategoryRank": {
            "title": "Category rank no worse than",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only websites inside this rank in their Similarweb category, for example 100."
          },
          "minTrafficChangePercent": {
            "title": "Month-over-month growth of at least",
            "minimum": -100,
            "maximum": 10000,
            "type": "integer",
            "description": "Keep only websites growing by this much, for example 10. Use a negative number to keep shrinking sites too."
          },
          "maxTrafficChangePercent": {
            "title": "…and at most",
            "minimum": -100,
            "type": "integer",
            "description": "Upper limit for month-over-month change. Set a negative value, for example -10, to find websites that are losing traffic."
          },
          "maxBounceRatePercent": {
            "title": "Bounce rate no higher than",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only websites whose visitors stay, for example 60."
          },
          "minPagesPerVisit": {
            "title": "Pages per visit at least",
            "minimum": 0,
            "type": "number",
            "description": "Keep only websites whose visitors open at least this many pages, for example 2.5."
          },
          "minTimeOnSiteSeconds": {
            "title": "Time on site at least",
            "minimum": 0,
            "type": "integer",
            "description": "Average visit length, for example 120 for two minutes."
          },
          "includeCategories": {
            "title": "Categories to keep",
            "type": "array",
            "description": "Keep only websites whose Similarweb category matches one of these words, for example finance. Leave empty for any category.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeCategories": {
            "title": "Categories to skip",
            "type": "array",
            "description": "Drop websites whose category matches one of these words, for example adult or gambling.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "topCountries": {
            "title": "Top visitor country is one of",
            "type": "array",
            "description": "Two-letter country codes, for example US, DE. Keeps websites whose largest audience sits in one of them.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minCountrySharePercent": {
            "title": "…bringing at least this share of visits",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Needs the countries above. Instead of checking only the largest country, keeps websites whose listed countries together bring at least this share of visits, for example 30 with DE, AT, CH."
          },
          "topTrafficChannels": {
            "title": "Main traffic channel is one of",
            "type": "array",
            "description": "Keeps websites whose largest traffic source is one of these.",
            "items": {
              "type": "string",
              "enum": [
                "direct",
                "organic_search",
                "paid_search",
                "organic_social",
                "paid_social",
                "referrals",
                "email",
                "display_ads",
                "affiliate",
                "ai"
              ],
              "enumTitles": [
                "Direct",
                "Organic search",
                "Paid search",
                "Organic social",
                "Paid social",
                "Referrals",
                "Email",
                "Display ads",
                "Affiliate",
                "AI assistants"
              ]
            },
            "default": []
          },
          "minOrganicSearchPercent": {
            "title": "Organic search at least",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Share of visits from unpaid search, for example 40 for SEO-driven websites."
          },
          "minPaidSearchPercent": {
            "title": "Paid search at least",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Share of visits from search ads, for example 5 for websites that buy ads."
          },
          "minAiTrafficPercent": {
            "title": "AI assistants at least",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Share of visits referred by ChatGPT, Gemini, Perplexity and other AI assistants, for example 1."
          },
          "minDomainAgeYears": {
            "title": "Domain at least this old",
            "minimum": 0,
            "type": "number",
            "description": "Years since the domain was registered, from WHOIS. Use it to skip brand-new sites."
          },
          "maxDomainAgeYears": {
            "title": "…and at most this old",
            "minimum": 0,
            "type": "number",
            "description": "For example 1 to find websites registered within the last year."
          },
          "requireContactEmail": {
            "title": "Only websites with a public email",
            "type": "boolean",
            "description": "Keeps websites whose homepage lists an email address. Useful for building outreach lists.",
            "default": false
          },
          "requireContactPhone": {
            "title": "Only websites with a public phone",
            "type": "boolean",
            "description": "Keeps websites whose homepage lists a phone number.",
            "default": false
          },
          "includeTechnologies": {
            "title": "Uses one of these technologies",
            "type": "array",
            "description": "Matched against the detected tech stack, for example Shopify, WordPress, HubSpot.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeTechnologies": {
            "title": "Skip websites using",
            "type": "array",
            "description": "Drops websites whose detected tech stack contains one of these, for example Wix.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeTlds": {
            "title": "Domain ends with",
            "type": "array",
            "description": "Keep only these domain endings, for example .de, .co.uk. Works in every workflow.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeTlds": {
            "title": "Skip domain endings",
            "type": "array",
            "description": "Drop these domain endings, for example .ru, .xyz. Works in every workflow.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxDomains": {
            "title": "Stop if the list is longer than",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Guards against a huge pasted list. It never adds results.",
            "default": 10000
          },
          "maxConcurrency": {
            "title": "Websites at a time",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Lower it only if you use your own rate-limited proxy.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Automatic Apify routing uses datacenter first, then Residential if a source refuses it. Custom proxy URLs and disabled proxy settings are respected.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}