{
  "openapi": "3.0.1",
  "info": {
    "title": "Keyword Research Tool: Keyword Ideas, Volume & Difficulty",
    "description": "Turn seed keywords into up to 1,000 keyword ideas each: long-tail suggestions, Google related searches or same-topic ideas, with search volume, CPC, keyword difficulty, intent and 12-month trend. 94 countries. Pay per idea returned plus a small fee per seed.",
    "version": "0.1",
    "x-build-id": "6AtLTXhCXY1KgjOm1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/plainrows~keyword-ideas-generator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-plainrows-keyword-ideas-generator",
        "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/plainrows~keyword-ideas-generator/runs": {
      "post": {
        "operationId": "runs-sync-plainrows-keyword-ideas-generator",
        "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/plainrows~keyword-ideas-generator/run-sync": {
      "post": {
        "operationId": "run-sync-plainrows-keyword-ideas-generator",
        "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": [
          "seedKeywords"
        ],
        "properties": {
          "seedKeywords": {
            "title": "Seed keywords",
            "minItems": 1,
            "maxItems": 200,
            "type": "array",
            "description": "One topic per line, e.g. \"coffee maker\" or \"crm for small business\". Each seed is expanded into its own list of ideas. Up to 100 seeds per run, max 80 characters and 10 words each.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Idea source",
            "enum": [
              "suggestions",
              "related",
              "ideas"
            ],
            "type": "string",
            "description": "Suggestions = phrases that contain your seed (\"best coffee maker with grinder\"). Related = Google's \"related searches\", followed a few levels deep. Ideas = keywords from the same product or topic category, even without the seed words.",
            "default": "suggestions"
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "IE",
              "IN",
              "DE",
              "AT",
              "CH",
              "FR",
              "BE",
              "ES",
              "MX",
              "IT",
              "NL",
              "PT",
              "BR",
              "PL",
              "SE",
              "JP",
              "AL",
              "DZ",
              "AO",
              "AR",
              "AM",
              "AZ",
              "BH",
              "BD",
              "BO",
              "BA",
              "BG",
              "BF",
              "KH",
              "CM",
              "CL",
              "CO",
              "CR",
              "CI",
              "HR",
              "CY",
              "CZ",
              "DK",
              "EC",
              "EG",
              "SV",
              "EE",
              "FI",
              "GH",
              "GR",
              "GT",
              "HK",
              "HU",
              "ID",
              "IL",
              "JO",
              "KZ",
              "KE",
              "LV",
              "LT",
              "MY",
              "MT",
              "MD",
              "MC",
              "MA",
              "MM",
              "NZ",
              "NI",
              "NG",
              "MK",
              "NO",
              "PK",
              "PA",
              "PY",
              "PE",
              "PH",
              "RO",
              "SA",
              "SN",
              "RS",
              "SG",
              "SK",
              "SI",
              "ZA",
              "KR",
              "LK",
              "TW",
              "TH",
              "TN",
              "TR",
              "UA",
              "AE",
              "UY",
              "VE",
              "VN"
            ],
            "type": "string",
            "description": "Country whose Google search volumes and CPC you want.",
            "default": "US"
          },
          "languageCode": {
            "title": "Language (optional)",
            "pattern": "^([a-zA-Z]{2}(-[a-zA-Z]{2})?)?$",
            "type": "string",
            "description": "Language code, e.g. \"en\", \"fr\" or \"zh-TW\". Leave empty to use the country's main language (for example German for Switzerland, French for Belgium)."
          },
          "maxIdeasPerSeed": {
            "title": "Max ideas per seed",
            "minimum": 10,
            "maximum": 1000,
            "type": "integer",
            "description": "10 to 1,000. Each idea returned is billed; see Pricing. An idea already returned for an earlier seed is not repeated.",
            "default": 100
          },
          "depth": {
            "title": "Related searches depth (Related only)",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "How many levels of Google related searches to follow: 1 = up to about 8 ideas, 2 = about 70, 3 = about 580, 4 = about 4,700. Deeper levels drift further from the seed. Used only with the Related source.",
            "default": 2
          },
          "sortBy": {
            "title": "Sort ideas by",
            "enum": [
              "volume",
              "difficulty",
              "cpc",
              "relevance"
            ],
            "type": "string",
            "description": "Also decides which ideas you get when a seed has more than your maximum.",
            "default": "volume"
          },
          "minSearchVolume": {
            "title": "Minimum search volume",
            "minimum": 0,
            "type": "integer",
            "description": "Keep ideas with at least this many monthly searches. Leave empty for no limit."
          },
          "maxSearchVolume": {
            "title": "Maximum search volume",
            "minimum": 0,
            "type": "integer",
            "description": "Keep ideas with at most this many monthly searches, e.g. to find long-tail keywords."
          },
          "maxKeywordDifficulty": {
            "title": "Maximum keyword difficulty",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "0 (easy) to 100 (hard). For example 30 to keep keywords that are easier to rank for."
          },
          "includeWords": {
            "title": "Must contain one of these words",
            "type": "array",
            "description": "Keep only ideas containing at least one of these words or phrases, e.g. \"best\", \"how to\". Matching is on parts of words: \"cheap\" also keeps \"cheapest\".",
            "items": {
              "type": "string"
            }
          },
          "excludeWords": {
            "title": "Must not contain these words",
            "type": "array",
            "description": "Drop ideas containing any of these words, e.g. competitor brands. At most 8 filters in total (each word counts as one, and each volume or difficulty limit as one).",
            "items": {
              "type": "string"
            }
          },
          "includeSimilarKeywords": {
            "title": "Include near-duplicate variants",
            "type": "boolean",
            "description": "Off (recommended): close variants of the same search, such as misspellings or reordered words, are left out so you are not billed for near-duplicates.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}