{
  "openapi": "3.0.1",
  "info": {
    "title": "Autocomplete Keyword Scraper - Google, YouTube, Bing",
    "description": "Scrape keyword suggestions from Google, YouTube and Bing autocomplete for SEO research. Enter seed keywords, get deduplicated rows with engine, rank, intent and question flags. A-Z/0-9 expansion, 29 languages. No search volume. No login or browser. Not affiliated with Google, YouTube or Microsoft.",
    "version": "1.0",
    "x-build-id": "wEzEYjx1ZecJTvDWV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mmdincer~autocomplete-keyword-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mmdincer-autocomplete-keyword-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/mmdincer~autocomplete-keyword-scraper/runs": {
      "post": {
        "operationId": "runs-sync-mmdincer-autocomplete-keyword-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/mmdincer~autocomplete-keyword-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-mmdincer-autocomplete-keyword-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": "Keywords",
            "minItems": 1,
            "maxItems": 500,
            "type": "array",
            "description": "Seed keywords, one per line, for example <code>coffee grinder</code>. Short phrases of two to four words work best. Each seed is expanded and sent to every selected engine. Up to 500 keywords per run, 100 characters each.",
            "items": {
              "type": "string"
            }
          },
          "engines": {
            "title": "Engines",
            "type": "array",
            "description": "Which search boxes to query: Google, YouTube and/or Bing. In merged output mode each keyword appears once, with the list of engines that suggested it.",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "youtube",
                "bing"
              ],
              "enumTitles": [
                "Google",
                "YouTube",
                "Bing"
              ]
            },
            "default": [
              "google",
              "youtube",
              "bing"
            ]
          },
          "country": {
            "title": "Country",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "nz",
              "ie",
              "de",
              "at",
              "ch",
              "fr",
              "be",
              "nl",
              "es",
              "mx",
              "ar",
              "cl",
              "co",
              "pt",
              "br",
              "it",
              "se",
              "no",
              "dk",
              "fi",
              "pl",
              "cz",
              "gr",
              "ro",
              "hu",
              "tr",
              "ua",
              "ru",
              "il",
              "ae",
              "sa",
              "eg",
              "za",
              "in",
              "id",
              "th",
              "vn",
              "ph",
              "my",
              "sg",
              "hk",
              "tw",
              "jp",
              "kr"
            ],
            "type": "string",
            "description": "Country of the searcher (Google <code>gl</code>, Bing market). Suggestions differ by country.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "de",
              "fr",
              "es",
              "it",
              "pt",
              "nl",
              "sv",
              "no",
              "da",
              "fi",
              "pl",
              "cs",
              "el",
              "ro",
              "hu",
              "tr",
              "uk",
              "ru",
              "he",
              "ar",
              "hi",
              "id",
              "th",
              "vi",
              "ja",
              "ko",
              "zh-CN",
              "zh-TW"
            ],
            "type": "string",
            "description": "Interface language of the searcher (Google <code>hl</code>). It also selects the question words and intent word lists used for expansion and labelling.",
            "default": "en"
          },
          "expandAlphabet": {
            "title": "Expand with a-z",
            "type": "boolean",
            "description": "Also query <code>keyword a</code>, <code>keyword b</code> ... <code>keyword z</code>. This is what turns about 10 suggestions into hundreds. Adds 26 requests per keyword and engine.",
            "default": true
          },
          "expandDigits": {
            "title": "Expand with 0-9",
            "type": "boolean",
            "description": "Also query <code>keyword 0</code> ... <code>keyword 9</code>. Useful for years, versions and quantities. Adds 10 requests per keyword and engine.",
            "default": false
          },
          "expandQuestions": {
            "title": "Expand with question words",
            "type": "boolean",
            "description": "Also query <code>how keyword</code>, <code>why keyword</code>, <code>can keyword</code> and similar, in the selected language (English, German, Spanish, French, Italian, Portuguese, Dutch, Turkish; other languages use English question words). Adds about 12 requests per keyword and engine.",
            "default": false
          },
          "expandModifiers": {
            "title": "Expand with prepositions and comparisons",
            "type": "boolean",
            "description": "Also query <code>keyword for</code>, <code>keyword with</code>, <code>keyword vs</code>, <code>keyword near</code>, <code>keyword alternative</code> and similar, in the selected language. Adds about 14 requests per keyword and engine.",
            "default": false
          },
          "maxSuggestionsPerEngine": {
            "title": "Max suggestions per engine",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Upper limit of unique suggestions kept from each engine for each keyword. Lower it to get a quick sample.",
            "default": 100
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Upper limit of result rows for the whole run, across all keywords. The run stops when it is reached. You pay per result row, so this is also your cost cap. Keep it low (for example 100) for a first run or when an AI agent starts the Actor.",
            "default": 200
          },
          "onlyNew": {
            "title": "Skip suggestions already delivered",
            "type": "boolean",
            "description": "When on, suggestions this Actor already wrote for the same country, language and engines are left out of the dataset and are not charged. The suggestion lists are still read, so a repeat run spends the requests but you only pay for phrases that are new, up to Max results. Off by default, so a run without it returns the same list as before.",
            "default": false
          },
          "outputMode": {
            "title": "Output mode",
            "enum": [
              "merged",
              "perEngine"
            ],
            "type": "string",
            "description": "<b>Merged</b>: one row per unique keyword, with the list of engines that suggested it. <b>Per engine</b>: one row per keyword and engine (more rows, so a higher cost for the same keywords).",
            "default": "merged"
          },
          "requestsPerSecond": {
            "title": "Requests per second (per host)",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum request rate to each suggestion host. The Actor slows down by itself when it receives HTTP 429. Lower this value if an engine keeps rejecting requests.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Requests go out directly by default. Turn on Apify Proxy only if an engine blocks the Actor (HTTP 429 or 403). Each request is tiny, so proxy traffic stays small."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}