{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Autocomplete Scraper & Rank Change Monitor",
    "description": "Scrape Google autocomplete suggestions by country, language and vertical. Monitor new, lost and rank-changed phrases across Web, YouTube, Shopping and News with persistent baselines and configurable confirmation. Export typed changes and per-prefix status.",
    "version": "0.1",
    "x-build-id": "P1VQQ2TRgyZRKpvWD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automa-flow~google-autocomplete-rank-change-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automa-flow-google-autocomplete-rank-change-monitor",
        "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/automa-flow~google-autocomplete-rank-change-monitor/runs": {
      "post": {
        "operationId": "runs-sync-automa-flow-google-autocomplete-rank-change-monitor",
        "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/automa-flow~google-autocomplete-rank-change-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-automa-flow-google-autocomplete-rank-change-monitor",
        "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",
        "required": [
          "targets"
        ],
        "properties": {
          "targets": {
            "title": "Prefixes to monitor",
            "minItems": 1,
            "maxItems": 500,
            "type": "array",
            "description": "One entry per prefix. A plain string is the query; an object may also set country, language, vertical and your own externalId. A target's identity is query + country + language + vertical, so the same prefix in two countries is two targets and is charged twice, while the same scope listed twice is checked, charged and compared once."
          },
          "monitorKey": {
            "title": "Monitor key",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "minLength": 1,
            "maxLength": 80,
            "type": "string",
            "description": "Names the stored baseline this run compares against. Use one key per watchlist (for example seo-brand-watch). Changing it starts a fresh baseline.",
            "default": "default"
          },
          "mode": {
            "title": "What to return",
            "enum": [
              "changesOnly",
              "snapshotAndChanges"
            ],
            "type": "string",
            "description": "changesOnly returns the first-run baseline and later typed changes. Entries without another output row receive TARGET_STATUS, including unchanged checks, duplicates and unsuccessful inputs. snapshotAndChanges also returns the confirmed suggestion list for every verified target. Use the changes Dataset view for an alert feed without status rows.",
            "default": "changesOnly"
          },
          "baselineMode": {
            "title": "First run under a monitor key",
            "enum": [
              "emitSnapshot",
              "storeOnly"
            ],
            "type": "string",
            "description": "emitSnapshot returns every target's confirmed suggestions on the first run. storeOnly saves the baseline and returns a compact status without suggestions. Neither baseline mode emits a change alert.",
            "default": "emitSnapshot"
          },
          "confirmationChecks": {
            "title": "Confirmation checks",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Consecutive successful samples required to confirm presence or absence. The first run takes this many samples per prefix; later runs normally take one. Default 2 reduces short-lived rotation but delays alerts until the second confirming run. Set 1 for immediate differences. Confirmation samples do not add paid events.",
            "default": 2
          },
          "minRankDelta": {
            "title": "Smallest rank move to report",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "Ignore moves smaller than this many positions among suggestions confirmed in both checks. This reduces shifts caused solely by a volatile neighbour entering or leaving. Default 2; set 1 for single-position moves.",
            "default": 2
          },
          "minRelevance": {
            "title": "Minimum Google relevance to monitor",
            "minimum": 0,
            "maximum": 1500,
            "type": "integer",
            "description": "Exclude suggestions below this Google relevance score. Default 0 includes all suggestions. Higher floors can remove useful long-tail phrases. Below-floor phrases still present in Google's response are excluded without a LOST_SUGGESTION event. Relevance is an ordering score, not search volume. Missing scores under a positive floor fail the check.",
            "default": 0
          },
          "includeMetadata": {
            "title": "Include Google's suggestion metadata",
            "type": "boolean",
            "description": "Attaches Google's suggestion type (QUERY or NAVIGATION) and its undocumented subtype codes to each row. Relevance and position are always included. Turning this off does not change what is monitored.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}