{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Autocomplete Scraper & YouTube Suggest [USD 0.05/1K]",
    "description": "Google & YouTube autocomplete keyword suggestions with relevance scores, for keyword research and long-tail ideas: a-z, questions, depth 1-3, many countries in one run with a comparison table, intent tags, new/dropped tracking. USD 0.05/1K suggestions + USD 0.02/1K queries, no start fee.",
    "version": "1.0",
    "x-build-id": "9ATjaLCxjIYQsoQR5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/usefulapi~google-autocomplete-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-usefulapi-google-autocomplete-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/usefulapi~google-autocomplete-scraper/runs": {
      "post": {
        "operationId": "runs-sync-usefulapi-google-autocomplete-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/usefulapi~google-autocomplete-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-usefulapi-google-autocomplete-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",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Seed keywords",
            "type": "array",
            "description": "One keyword per line, in any language: <code>keyword research</code>, <code>best running shoes</code>, <code>café près</code>. Each seed is sent to Google exactly as written, plus the expansions you pick below. Up to 1,000 seeds of up to 200 characters per run; duplicates are dropped.",
            "items": {
              "type": "string"
            }
          },
          "engines": {
            "title": "Search engines",
            "type": "array",
            "description": "<b>google</b> = Google web search suggestions. <b>youtube</b> = YouTube search suggestions. Pick both to get both in one dataset, each row labelled with its engine.",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "youtube"
              ],
              "enumTitles": [
                "Google web search",
                "YouTube search"
              ]
            },
            "default": [
              "google"
            ]
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Two-letter country codes (Google's <code>gl</code>): <code>us</code>, <code>gb</code>, <code>de</code>, <code>in</code>... Up to 50. With two or more countries the run also writes a <b>country comparison table</b>: every suggestion with its position in each country and which countries never show it. City-level suggestions such as \"near me\" follow the server's location, not the country, so they are not location-accurate. <code>uk</code> is read as <code>gb</code>.",
            "default": [
              "us"
            ],
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Languages",
            "type": "array",
            "description": "Google interface language codes (<code>hl</code>): <code>en</code>, <code>de</code>, <code>pt-BR</code>, <code>ja</code>..., passed to Google as written. Every country is run in every language listed (at most 50 combinations per run). <code>auto</code> = each country's main language (built in for 87 countries, e.g. us en, de de, br pt-BR, jp ja, be nl, ch de); for a country without one the run stops and asks for a code.",
            "default": [
              "en"
            ],
            "items": {
              "type": "string"
            }
          },
          "expansions": {
            "title": "Expansions",
            "type": "array",
            "description": "Extra queries made from each seed. <b>az</b>: seed + a to z (26 queries). <b>digits</b>: seed + 0 to 9 (10). <b>questions</b>: how, what, why... + seed (10 to 13). <b>prepositions</b>: seed + for, with, without, near... (9 to 13). <b>comparisons</b>: seed + vs, versus, or, alternative... (7). Question, preposition and comparison words are built in for English, Spanish, French, German, Portuguese, Italian and Dutch, and follow the language of each query; for other languages use your own prefixes and suffixes. Every query Google answers is billed as one query event. Leave empty (the API default) to send only the seeds themselves.",
            "items": {
              "type": "string",
              "enum": [
                "az",
                "digits",
                "questions",
                "prepositions",
                "comparisons"
              ],
              "enumTitles": [
                "a-z (seed a, seed b ... seed z)",
                "0-9 (seed 0 ... seed 9)",
                "Question words before the seed",
                "Prepositions after the seed",
                "Comparison words after the seed"
              ]
            },
            "default": []
          },
          "customPrefixes": {
            "title": "Your own prefixes",
            "type": "array",
            "description": "Words put before every seed, one query each: <code>cheap</code>, <code>buy</code>. Up to 50 words of up to 50 characters.",
            "items": {
              "type": "string"
            }
          },
          "customSuffixes": {
            "title": "Your own suffixes",
            "type": "array",
            "description": "Words put after every seed, one query each: <code>2026</code>, <code>for beginners</code>, <code>reddit</code>. Up to 50 words of up to 50 characters.",
            "items": {
              "type": "string"
            }
          },
          "depth": {
            "title": "Depth",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "1 = the seed and its expansions only. 2 = also ask Google about the top suggestions found (see next field). 3 = once more. Each level multiplies the number of queries, so keep Max queries in mind.",
            "default": 1
          },
          "expandTop": {
            "title": "Suggestions to dig into per answer (depth 2 and 3)",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "At depth 2 and 3, how many of the top suggestions of each answer are sent back to Google as new queries.",
            "default": 5
          },
          "maxQueries": {
            "title": "Max queries per run",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Hard cap on queries sent to Google in this run (seed, expansion and depth queries together; a retry of the same query after Google asks to slow down is not counted again). The run stops cleanly when it is reached; everything found so far is saved.",
            "default": 2000
          },
          "maxSuggestions": {
            "title": "Max suggestions per run",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard cap on suggestion rows saved (and billed) in this run.",
            "default": 20000
          },
          "keepUrlAndCalculatorSuggestions": {
            "title": "Keep website and calculator suggestions",
            "type": "boolean",
            "description": "Google sometimes suggests a website address (type NAVIGATION, e.g. https://www.facebook.com/) or a calculator answer (\"= 4\"). They are not searches, so they are left out (and not billed) unless you switch this on.",
            "default": false
          },
          "trackChanges": {
            "title": "Track changes since the last run",
            "type": "boolean",
            "description": "Remembers this run's suggestions (per seed, engine, country and language) on your Apify account. Every row gets <code>isNew</code>, and the run writes a <b>CHANGES</b> report with the suggestions that are new and the ones that <b>dropped out</b> since the last run with the same tracking name. Made for scheduled runs.",
            "default": false
          },
          "onlyNew": {
            "title": "Save only new suggestions",
            "type": "boolean",
            "description": "Needs tracking switched on. Saves (and bills) only suggestions that were not there last time; the first run saves everything. Queries are billed as usual.",
            "default": false
          },
          "trackingName": {
            "title": "Tracking name",
            "type": "string",
            "description": "Keeps separate histories apart, e.g. one per client or project. Letters, digits and hyphens, up to 40 characters.",
            "default": "default"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}