{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Rank Tracker API: Daily Keyword Positions",
    "description": "Track your Google rankings for a keyword list: position, ranking URL, top 10/30/100, any country or city, desktop or mobile. Shows AI Overview, Local Pack, People Also Ask and shopping features, top 3 competitors, and changes since the last run.",
    "version": "0.1",
    "x-build-id": "v9YObEduf9oOgla3e"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steady-scrape~google-rank-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steady-scrape-google-rank-tracker",
        "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/steady-scrape~google-rank-tracker/runs": {
      "post": {
        "operationId": "runs-sync-steady-scrape-google-rank-tracker",
        "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/steady-scrape~google-rank-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-steady-scrape-google-rank-tracker",
        "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": [
          "target",
          "keywords"
        ],
        "properties": {
          "target": {
            "title": "Your domain or page URL",
            "type": "string",
            "description": "The site to track, e.g. example.com (any page of the domain counts) or https://example.com/pricing (only that exact page counts)."
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "One keyword per line (up to 2,000 per run). Duplicates are removed. Search operators such as site: are not supported.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Country (US, GB, Germany...), a city or region in DataForSEO/Google format (e.g. 'Chicago,Illinois,United States'), a location code (2840), or GPS 'latitude,longitude' with an optional radius like '41.88,-87.63,5km' for local rankings.",
            "default": "United States"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Search language: a name (English, Spanish, German...) or code (en, es, de, pt-BR).",
            "default": "English"
          },
          "device": {
            "title": "Device",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string",
            "description": "Desktop and mobile Google results often differ.",
            "default": "desktop"
          },
          "depth": {
            "title": "How deep to check",
            "enum": [
              "10",
              "30",
              "100"
            ],
            "type": "string",
            "description": "How many organic results to scan for your site. Deeper checks cost more because Google now serves 10 results per page.",
            "default": "10"
          },
          "queueMode": {
            "title": "Speed",
            "enum": [
              "standard",
              "priority",
              "live"
            ],
            "type": "string",
            "description": "Standard is the best choice for scheduled tracking. Priority and Live cost extra per 10 results checked.",
            "default": "standard"
          },
          "competitors": {
            "title": "Competitor domains (optional)",
            "type": "array",
            "description": "Up to 10 domains whose position you also want for every keyword, with changes since the last run. The top 3 competitors on each SERP are always included.",
            "items": {
              "type": "string"
            }
          },
          "trackerId": {
            "title": "Tracker ID",
            "type": "string",
            "description": "Name for this tracking project, e.g. 'acme-us-desktop'. Runs with the same Tracker ID are compared, so each row shows the change since the last run. Leave empty to use domain + location + language + device."
          },
          "includeSubdomains": {
            "title": "Count subdomains",
            "type": "boolean",
            "description": "When tracking a domain, also count blog.example.com, shop.example.com etc. as your site.",
            "default": true
          },
          "loadAiOverview": {
            "title": "Check AI Overview citations",
            "type": "boolean",
            "description": "Loads Google AI Overviews that appear asynchronously, to see whether your site is cited in them. Charged as an extra event only for keywords where such an AI Overview is loaded. AI Overview presence is always reported for free.",
            "default": false
          },
          "maxWaitMinutes": {
            "title": "Max wait for the standard queue (minutes)",
            "minimum": 2,
            "maximum": 300,
            "type": "integer",
            "description": "How long the run waits for queued checks. Checks still queued after this time are reported as 'timeout' and not charged.",
            "default": 60
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}