{
  "openapi": "3.0.1",
  "info": {
    "title": "Keyword Search Volume: Planner + Amazon, Bing & AI",
    "description": "Bulk keyword search volume for Google, Amazon, Bing and AI. Google volumes come from Google Ads Keyword Planner data, no Ads account needed. CPC, competition, 12-month trend, difficulty and intent for up to 50,000 keywords per run, Google from $0.003 per keyword. Optional USPTO trademark flag.",
    "version": "1.0",
    "x-build-id": "QDQZxzlm3VtNmgaf8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vncntlabs~keyword-search-volume/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vncntlabs-keyword-search-volume",
        "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/vncntlabs~keyword-search-volume/runs": {
      "post": {
        "operationId": "runs-sync-vncntlabs-keyword-search-volume",
        "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/vncntlabs~keyword-search-volume/run-sync": {
      "post": {
        "operationId": "run-sync-vncntlabs-keyword-search-volume",
        "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",
            "type": "array",
            "description": "Keywords to look up, one per item (up to 50,000 per run). Case and extra spaces are ignored and duplicates are looked up once. Max 80 characters and 10 words each; characters Google rejects (, ! ? % * : ; \" etc.) and emoji are reported as skipped and never charged.",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Data sources",
            "type": "array",
            "description": "Where to get search volume. Leave empty for Google + Amazon (backward compatible). Add bing and/or ai explicitly. Amazon: US, UK, CA, AU, DE, FR, IT, ES, NL, AT, IN, MX, SG, AE, SA, EG. Bing: US, UK, CA, AU, DE, FR with en/fr/de. AI volume is a DataForSEO estimate from Google People-also-ask style data, not ChatGPT prompt counts.",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "amazon",
                "bing",
                "ai"
              ],
              "enumTitles": [
                "Google search volume (+ CPC, competition, trend)",
                "Amazon search volume",
                "Bing search volume (+ CPC, competition)",
                "AI search volume (PAA-based estimate, not ChatGPT counts)"
              ]
            }
          },
          "location": {
            "title": "Country",
            "type": "string",
            "description": "Country name, 2-letter code or DataForSEO location code, e.g. 'United States', 'GB', 'DE', 2840.",
            "default": "United States"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language code or name (e.g. 'en', 'de'). Leave empty for English where available, otherwise the market's main language."
          },
          "trademarkCheck": {
            "title": "Trademark-risk flag (USPTO)",
            "type": "boolean",
            "description": "Screen every keyword against live US federal trademarks in print-on-demand product classes, using the same engine as our POD & KDP Trademark Checker. Adds high/medium/low risk, matched marks, owners and TSDR links. Automated screening, not legal advice.",
            "default": true
          },
          "trademarkClasses": {
            "title": "Trademark classes (Nice / IC)",
            "type": "array",
            "description": "USPTO classes to screen. Empty = POD default (025 clothing, 021 mugs, 016 paper/stickers/books, 009 phone cases, 014 jewelry, 018 bags, 020 decor, 024 textiles, 028 toys). The product word in the keyword (shirt, mug, sticker...) narrows the classes automatically.",
            "items": {
              "type": "string"
            }
          },
          "maxTotalChargeUsd": {
            "title": "Maximum charge for this run (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Optional hard cap. The run looks up only as many keywords as fit, and stops cleanly. Apify's own 'Max cost per run' setting is also respected."
          },
          "trendMonths": {
            "title": "Months of history",
            "minimum": 0,
            "maximum": 48,
            "type": "integer",
            "description": "How many months of Google monthly search volume to include per keyword (newest first).",
            "default": 12
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}