{
  "openapi": "3.0.1",
  "info": {
    "title": "DataForSEO - Keyword Ideas, Search Volume & Backlinks",
    "description": "Use DataForSEO without an account or $50 top-up: keyword ideas, search volume, CPC, difficulty, search intent, AI search volume, Google Trends, ranked keywords, competitors and backlinks. One row per keyword, domain or backlink, every field. Any other DataForSEO endpoint runs too. Billed per call.",
    "version": "0.0",
    "x-build-id": "poO2CnBqZAoiVaKrS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clearpath~dataforseo/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clearpath-dataforseo",
        "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/clearpath~dataforseo/runs": {
      "post": {
        "operationId": "runs-sync-clearpath-dataforseo",
        "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/clearpath~dataforseo/run-sync": {
      "post": {
        "operationId": "run-sync-clearpath-dataforseo",
        "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": {
          "path": {
            "title": "Keyword job or DataForSEO endpoint",
            "type": "string",
            "description": "Pick a keyword job, or type any other DataForSEO endpoint path as written in DataForSEO's documentation (a leading <code>/v3/</code> or the full documentation URL also works). <code>task_post</code> paths of SERP, Merchant, Business Data and App Data are waited for, so their results arrive in this run; for other families use the <code>live</code> path. Leave empty when you use the request list below."
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keywords for the job above. Jobs that take a keyword list (keyword ideas, volume, overview, difficulty, intent, AI search volume, Trends) send them in batches of up to 200 to 1,000 per call (5 for Trends); other jobs run once per keyword. Domain jobs also accept domains here.",
            "items": {
              "type": "string"
            }
          },
          "targets": {
            "title": "Domains or URLs",
            "type": "array",
            "description": "Optional. Domains or URLs; runs the job once per domain (keywords a domain ranks for, competitors, backlinks). Use either keywords or domains, not both.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Pick a country or type any location: a country, region or city name (narrow it with commas, for example <code>London, United Kingdom</code>), a two-letter country code, or a DataForSEO location code. A name that fits several places stops the run with the exact names to use. Jobs whose data is per country use the country of a city you enter."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Optional. A language name or code. Empty: the location's main language, the one with the most keyword data there."
          },
          "limit": {
            "title": "Results per request",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Optional. How many results each call returns on jobs that have a result count (keyword ideas, suggestions, related keywords, domain keywords, competitors, backlinks), up to 1,000. Empty: DataForSEO's default (700 for keyword ideas, 100 for the others). Credits follow the rows returned."
          },
          "payload": {
            "title": "More parameters (JSON)",
            "type": "object",
            "description": "Optional. Any further parameters as one JSON object, exactly as DataForSEO documents them for the job, for example <code>{\"include_serp_info\": true}</code>. Values here win over location, language and results per request."
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Stops the run once this many rows are saved. Empty: every result is saved. With a limit set, calls run one at a time and no new call starts once the limit is reached. Each call that ran is billed in full; to pay less per call, lower the endpoint's own <code>depth</code> or <code>limit</code> in the parameters."
          },
          "requests": {
            "title": "Request list",
            "type": "array",
            "description": "Optional. Several requests in one run, each an object with <code>path</code> and <code>payload</code>, and optionally <code>keywords</code>, <code>targets</code> or <code>method</code>, for example <code>[{\"path\": \"serp/google/maps/live/advanced\", \"payload\": {\"keyword\": \"pizza new york\", \"location_code\": 2840}}, {\"path\": \"backlinks/summary/live\", \"payload\": {\"target\": \"hubspot.com\"}}]</code>. A <code>payload</code> here may also be a list of parameter objects, one call each. Requests run in parallel and run together with the endpoint above. Up to 10,000 calls per run."
          },
          "method": {
            "title": "Method",
            "enum": [
              "POST",
              "GET"
            ],
            "type": "string",
            "description": "Optional. Chosen for you: POST when there are parameters, GET for lists without parameters such as locations and languages."
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "items",
              "tasks"
            ],
            "type": "string",
            "description": "Rows per result (default): one row per result item, such as each search result, keyword or backlink, with DataForSEO's own field names plus the request it came from. Ready for spreadsheets and filtering. Rows per call: one row per call with DataForSEO's <code>result</code> exactly as it returns it. A call too large for one row is saved as rows per result instead, so nothing is lost.",
            "default": "items"
          },
          "feedback": {
            "title": "Feedback to the maintainers",
            "type": "string",
            "description": "For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}