{
  "openapi": "3.0.1",
  "info": {
    "title": "Keyword Research API — Ahrefs / SEMRush / Moz Alternative",
    "description": "Discover keyword ideas or Google Ads search-volume metrics from bounded seed keywords. Returns normalized, source-provenanced rows with explicit cost and terminal outcomes.",
    "version": "1.0",
    "x-build-id": "PP6ZKnxQ7Ag0dUVzk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~dataforseo-keyword-research/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-dataforseo-keyword-research",
        "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/khadinakbar~dataforseo-keyword-research/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-dataforseo-keyword-research",
        "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/khadinakbar~dataforseo-keyword-research/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-dataforseo-keyword-research",
        "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": {
          "mode": {
            "title": "Research mode",
            "enum": [
              "keyword_ideas",
              "search_volume"
            ],
            "type": "string",
            "description": "Choose the DataForSEO keyword job. keyword_ideas discovers related phrases; search_volume measures the supplied phrases. Use keyword_ideas for research expansion and search_volume for a known shortlist. This is not a rank-tracking or domain-keyword tool.",
            "default": "keyword_ideas"
          },
          "seedKeywords": {
            "title": "Seed keywords",
            "minItems": 1,
            "maxItems": 10,
            "type": "array",
            "description": "Provide 1-10 seed phrases, for example [\"keyword research\"]. Keyword ideas uses them to discover related terms; search volume measures those exact phrases. Blank and duplicate entries are removed. This is not a target domain or Google search operator field.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            }
          },
          "locationCode": {
            "title": "Google location code",
            "minimum": 1,
            "type": "integer",
            "description": "DataForSEO Google location code, such as 2840 for the United States. It scopes the returned keyword database metrics. Defaults to 2840 and must be a positive integer. This is not an ISO country string.",
            "default": 2840
          },
          "languageCode": {
            "title": "Google language code",
            "pattern": "^[a-zA-Z]{2,5}$",
            "type": "string",
            "description": "DataForSEO language code for the selected location, such as en. It scopes the language of keyword metrics and ideas. Defaults to en. This is not a natural-language name such as English.",
            "default": "en"
          },
          "maxResults": {
            "title": "Maximum keyword rows",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum normalized keyword rows to persist. The Actor caps this at 50 to keep DataForSEO and Apify costs predictable. Defaults to 25. This is not an unbounded provider pagination setting.",
            "default": 25
          },
          "minSearchVolume": {
            "title": "Minimum search volume",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Keep only rows whose provider-reported search volume meets this minimum. Defaults to zero, so rows with a valid zero estimate remain visible. Use it to reduce a keyword-ideas export. This is not a claim of traffic or conversion potential.",
            "default": 0
          },
          "includeSerpInfo": {
            "title": "Include SERP features",
            "type": "boolean",
            "description": "Request available SERP feature information for keyword-ideas rows. It defaults to false to keep provider work bounded. It has no effect on search_volume mode. This is not a live rank-check request.",
            "default": false
          },
          "dataforSeoLogin": {
            "title": "DataForSEO login",
            "type": "string",
            "description": "Optional DataForSEO API login used only when the owner secret is unavailable. It is sent only in the HTTP authorization header. Keep it private and never use it in tasks. This is not an Apify token."
          },
          "dataforSeoPassword": {
            "title": "DataForSEO API password",
            "type": "string",
            "description": "Optional DataForSEO API password used only when the owner secret is unavailable. It is sent only in the HTTP authorization header. Keep it private and never use it in tasks. This is not your DataForSEO dashboard password."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}