{
  "openapi": "3.0.1",
  "info": {
    "title": "Keyword Suggestions – Google, YouTube & Amazon Autocomplete",
    "description": "Keyword suggestions from Google, YouTube, Amazon, Bing and DuckDuckGo autocomplete in one run. Expand a seed with A–Z, numbers, questions, prepositions or your own modifiers, up to two levels deep, for any country and language. One row per suggestion, no start fee.",
    "version": "1.0",
    "x-build-id": "nWWHVqkXSqyx80bUa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/openharvest~keyword-suggestions/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-openharvest-keyword-suggestions",
        "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/openharvest~keyword-suggestions/runs": {
      "post": {
        "operationId": "runs-sync-openharvest-keyword-suggestions",
        "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/openharvest~keyword-suggestions/run-sync": {
      "post": {
        "operationId": "run-sync-openharvest-keyword-suggestions",
        "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": {
          "keywords": {
            "title": "Seed keywords",
            "type": "array",
            "description": "One or more seed keywords, e.g. <code>coffee maker</code>, <code>seo tools</code>. Each suggestion row records which seed it came from.",
            "default": [
              "coffee maker"
            ],
            "items": {
              "type": "string"
            }
          },
          "engines": {
            "title": "Search engines",
            "type": "array",
            "description": "Autocomplete sources to query. Amazon is available for 21 marketplaces (us, ca, mx, br, gb, de, fr, it, es, nl, se, pl, be, tr, in, ae, sa, eg, jp, au, sg).",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "youtube",
                "bing",
                "duckduckgo",
                "amazon"
              ],
              "enumTitles": [
                "Google",
                "YouTube",
                "Bing",
                "DuckDuckGo",
                "Amazon"
              ]
            },
            "default": [
              "google",
              "youtube",
              "bing",
              "duckduckgo",
              "amazon"
            ]
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "simple",
              "expand"
            ],
            "type": "string",
            "description": "<b>simple</b> – suggestions for each seed as typed (1 request per engine).<br><b>expand</b> – also query the seed with modifiers (A–Z, 0–9, questions, prepositions, your custom modifiers) to find hundreds of long-tail keywords.",
            "default": "simple"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "2-letter country code (ISO 3166-1), e.g. <code>us</code>, <code>gb</code>, <code>de</code>, <code>in</code>, <code>br</code>. Selects the Amazon marketplace, Bing market and DuckDuckGo region and is passed to Google/YouTube as <code>gl</code>.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "2-letter language code (ISO 639-1), e.g. <code>en</code>, <code>de</code>, <code>es</code>, <code>tr</code>. Passed to Google/YouTube as <code>hl</code> and used for the Bing market and DuckDuckGo region.",
            "default": "en"
          },
          "maxResultsPerKeyword": {
            "title": "Max suggestions per seed keyword",
            "minimum": 0,
            "type": "integer",
            "description": "Stop collecting for a seed after this many unique suggestions (all engines together). 0 = no limit. You pay per suggestion, so this caps your cost.",
            "default": 300
          },
          "expansions": {
            "title": "Expansions (expand mode)",
            "type": "array",
            "description": "Used in <b>expand</b> mode. <b>alphabet</b>: “seed a” … “seed z”. <b>numbers</b>: “seed 0” … “seed 9”. <b>questions</b>: “how/what/why/can/where/when/which/who/is/are/does/will seed”. <b>prepositions</b>: “seed vs/for/near/with/without/to/like/or/and/in/versus/is”. Modifier words are English.",
            "items": {
              "type": "string",
              "enum": [
                "alphabet",
                "numbers",
                "questions",
                "prepositions"
              ],
              "enumTitles": [
                "Alphabet a–z (26 queries)",
                "Numbers 0–9 (10 queries)",
                "Questions (12 queries)",
                "Prepositions & comparisons (12 queries)"
              ]
            },
            "default": [
              "alphabet",
              "questions"
            ]
          },
          "customModifiers": {
            "title": "Custom modifiers (expand mode)",
            "type": "array",
            "description": "Optional extra modifiers in your own language. Appended to the seed (<code>günstig</code> → “coffee maker günstig”) or placed with <code>{keyword}</code> (<code>best {keyword} 2026</code>).",
            "items": {
              "type": "string"
            }
          },
          "depth": {
            "title": "Depth",
            "minimum": 1,
            "maximum": 2,
            "type": "integer",
            "description": "1 = suggestions of the seed (and its modifiers). 2 = also query every unique suggestion found at depth 1 (“suggestions of suggestions”, much larger output – use with a max limit). Duplicates are always removed.",
            "default": 1
          },
          "dedupeAcrossEngines": {
            "title": "Remove duplicates across engines",
            "type": "boolean",
            "description": "By default a suggestion is kept once per engine (so you can see which engines suggest it). Turn on to keep each suggestion only once per seed, from the first engine that returned it.",
            "default": false
          },
          "requestDelayMs": {
            "title": "Delay between requests per engine (ms)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Pause between two requests to the same engine. Engines are queried in parallel; the default is polite and fast enough for thousands of keywords.",
            "default": 250
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Usually not needed. Use it if an engine starts rate-limiting large runs (status row ENGINE_BLOCKED) or to get suggestions as seen from a specific country (Apify Proxy with a country).",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}