{
  "openapi": "3.0.1",
  "info": {
    "title": "Similarweb Monthly Traffic Changes & Channel Comparison",
    "description": "Similarweb data you already scraped, compared across two different data months: per domain and month, visits change, channel and country share shifts, new and lost referrers and keywords, ranks, competitor share, data conflicts. AI and summaries on paid plans. 3 domains × 12 months: $1.89 on BRONZE.",
    "version": "0.1",
    "x-build-id": "gvfzxQPW9Kl1VBWc4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ntriqpro~similarweb-traffic-change-insights/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ntriqpro-similarweb-traffic-change-insights",
        "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/ntriqpro~similarweb-traffic-change-insights/runs": {
      "post": {
        "operationId": "runs-sync-ntriqpro-similarweb-traffic-change-insights",
        "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/ntriqpro~similarweb-traffic-change-insights/run-sync": {
      "post": {
        "operationId": "run-sync-ntriqpro-similarweb-traffic-change-insights",
        "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": {
          "datasetIds": {
            "title": "Datasets of Similarweb scrapers",
            "type": "array",
            "description": "IDs of datasets in your Apify account with Similarweb results — runs of the same scraper in two or more different data months, or one run whose rows carry monthly visits. They are read with this run's own token; the run-start fee covers the first 1,000 rows read, each further 1,000 rows is one rows-read event on paid plans. The fields of tri_angle/similarweb-scraper, tri_angle/fast-similarweb-scraper, curious_coder/similarweb-scraper, pro100chok/similarweb-scraper (percent values too), radeance/similarweb-scraper, vortex_data/similarweb-scraper and memo23/similarweb-scraper are found by themselves: domain (name, domain, siteName, SiteName, url), month (snapshotDate, engagementMonth, the last month of the monthly visits), visits (totalVisits, visits, monthlyVisits, engagements.visits), monthly visits (estimatedMonthlyVisits, monthlyVisits, monthlyVisitsHistory), channel shares (trafficSources.*, directTraffic…, trafficDirect…), countries (topCountries, topCountryShares, countryShare), referring sites (topReferrals), keywords (topKeywords) and ranks.",
            "items": {
              "type": "string"
            }
          },
          "csvUrls": {
            "title": "CSV file addresses",
            "type": "array",
            "description": "Public http(s) addresses of CSV files with one snapshot per row and a header row — an Apify CSV export (its trafficSources/directVisitsShare and topCountries/0/visitsShare columns are folded back), or your own monthly export with domain, month, visits and channel columns. Up to 20 MB a file; addresses inside private networks are refused.",
            "items": {
              "type": "string"
            }
          },
          "jsonUrls": {
            "title": "JSON or JSONL file addresses",
            "type": "array",
            "description": "Public http(s) addresses of JSON (an array, or an object with items/data/results/snapshots) or JSONL files, one snapshot per entry, in the shape of any of the scrapers above.",
            "items": {
              "type": "string"
            }
          },
          "snapshots": {
            "title": "Snapshots",
            "type": "array",
            "description": "Snapshots pasted here as JSON objects in a scraper's shape, for example { \"name\": \"example.com\", \"snapshotDate\": \"2026-09-01\", \"totalVisits\": 96000, \"trafficSources\": { \"directVisitsShare\": 0.5, \"searchVisitsShare\": 0.3 } }. The prefill is made-up snapshots of two made-up domains."
          },
          "domains": {
            "title": "Only these domains",
            "type": "array",
            "description": "Domains to keep (https://, www. and paths are ignored). Empty: every domain in the sources.",
            "items": {
              "type": "string"
            }
          },
          "groups": {
            "title": "Competitor groups",
            "type": "array",
            "description": "Groups of competing domains, for example [{ \"name\": \"Shoe shops\", \"domains\": [\"a.com\", \"b.com\", \"c.com\"] }]. Each month row of a member gets its rank and share of the group's visits, and per channel its share of the group's visits from that channel — with the members it took share from (paid plans). Paid plans also get one summary row per group: who took share of which channel, first month to last."
          },
          "groupAllDomains": {
            "title": "All domains as one group when no group is given",
            "type": "boolean",
            "description": "When no groups are given and the sources hold 2 or more domains, they form one group, \"All domains\".",
            "default": true
          },
          "compareTo": {
            "title": "Compare each month with",
            "enum": [
              "previous",
              "year-ago"
            ],
            "type": "string",
            "description": "previous: the month just before (when it has no data, the latest earlier month that has — the row flags a period-gap conflict). year-ago: the same month a year before.",
            "default": "previous"
          },
          "minVisitsChangePct": {
            "title": "Visits change that counts (%)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "A month whose visits moved by at least this many percent against the month it is compared with is up or down; less is steady.",
            "default": 10
          },
          "minShareChange": {
            "title": "Share shift that counts (percentage points)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "A channel or country whose share of visits moved by at least this many points is listed in channelShifts / countryShifts (and counted in the free preview).",
            "default": 10
          },
          "maxPeriodsPerDomain": {
            "title": "Months per domain",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "The newest this many months of each domain become rows (an older month still serves as the comparison of the oldest row).",
            "default": 12
          },
          "maxPeriods": {
            "title": "Domain×month rows per run (paid plans)",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "At most this many domain×month rows are delivered and charged in one run, in source order. A free run compares the first 5.",
            "default": 2000
          },
          "aiExplanations": {
            "title": "AI explanation of each change (paid plans)",
            "type": "boolean",
            "description": "For every month with a comparison and visits on both sides: what moved and what moved together with it, each change citing the row's own numbers and checked by code (the facts it cites must exist and move the way it says, every number must be in the data, and it may not state a cause); an answer that fails the checks is thrown away and not charged. $0.032 each on BRONZE. When on, the row's numbers, domain names and keywords are sent to Anthropic's API (USA). Turn this and summaries off to run with the rules only.",
            "default": true
          },
          "aiMaxPeriods": {
            "title": "AI explanations per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "At most this many months get an AI explanation in one run.",
            "default": 200
          },
          "summaries": {
            "title": "Domain and group summary rows (paid plans)",
            "type": "boolean",
            "description": "One row per domain with two or more month rows (visits first to last, best and worst month, channel shares first to last, the biggest moves, countries in and out, conflicts, AI headlines) and one per competitor group (ranking by month, who took share of which channel). $0.064 each on BRONZE. With aiExplanations off and this on: rules + summaries.",
            "default": true
          },
          "maxItemsPerSource": {
            "title": "Rows read per source",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "At most this many rows are read from one dataset or file. Rows read count toward rows-read on paid plans (each 1,000 past the first 1,000 of the run), also rows that are not snapshots.",
            "default": 20000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}