{
  "openapi": "3.0.1",
  "info": {
    "title": "Bing Organic Rank Tracker for Domains",
    "description": "Track a domain's organic Bing positions by keyword, market, and top-N depth. Returns one decision-ready rank row per keyword with ranking URL, position, and competitors.",
    "version": "0.1",
    "x-build-id": "h3iuGNqiVLvoQ4h01"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~bing-rank-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-bing-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/khadinakbar~bing-rank-tracker/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-bing-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/khadinakbar~bing-rank-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-bing-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": [
          "targetDomain",
          "keywords"
        ],
        "properties": {
          "targetDomain": {
            "title": "Target domain",
            "type": "string",
            "description": "Use this when you need the organic Bing position for one website. Enter a hostname such as \"example.com\" or a full HTTPS URL. This is normalized to a domain before matching. It is not a competitor list or a Bing search URL."
          },
          "keywords": {
            "title": "Keywords to check",
            "type": "array",
            "description": "Use this for the search terms whose Bing positions you want to measure. Provide one keyword per array item, for example [\"web scraping\", \"Bing rank tracker\"]. Defaults to the first 100 unique terms. This is not a list of URLs.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country code",
            "type": "string",
            "description": "Use this to localize the Bing market used for the check. Enter a two-letter ISO code such as \"US\", \"GB\", or \"DE\". Defaults to US. This is not a city or a Bing market string like en-US.",
            "default": "US"
          },
          "language": {
            "title": "Language code",
            "type": "string",
            "description": "Use this to request the result language for the Bing market. Enter a two-letter code such as \"en\", \"de\", or \"fr\". Defaults to en. This is not a country code or a full locale.",
            "default": "en"
          },
          "safeSearch": {
            "title": "SafeSearch level",
            "enum": [
              "off",
              "moderate",
              "strict"
            ],
            "type": "string",
            "description": "Use this to control Bing's adult-content filter during the rank check. Choose off, moderate, or strict; moderate is the default. This affects the SERP returned by Bing and is not a content-quality score.",
            "default": "moderate"
          },
          "depth": {
            "title": "SERP depth",
            "minimum": 10,
            "maximum": 100,
            "type": "integer",
            "description": "Use this to define how deep Bing should be checked for each keyword. Choose 10, 20, 50, or 100 organic positions; 20 is the default. Deeper checks use more page requests but still produce one billed rank row per keyword.",
            "default": 20
          },
          "includeSubdomains": {
            "title": "Include subdomains",
            "type": "boolean",
            "description": "Use this when subdomains should count as owned results for the target domain. Defaults to true, so blog.example.com matches example.com. Set false for an exact-host check. This does not match unrelated domains that merely contain the same text.",
            "default": true
          },
          "includeCompetitors": {
            "title": "Include top competitors",
            "type": "boolean",
            "description": "Use this when the rank row should include the highest organic results above or around the target. Defaults to true and returns up to competitorCount domains from the checked SERP. Set false for a smaller dataset row. This does not identify paid advertisers.",
            "default": true
          },
          "competitorCount": {
            "title": "Competitors per keyword",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Use this to cap the competitor context attached to each keyword row. Enter 1 to 10; the default is 3. It only affects the returned context after the SERP is checked. This is not the number of keywords or ranking positions.",
            "default": 3
          },
          "maxKeywords": {
            "title": "Maximum keywords",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Use this as a safety cap when another workflow passes a large keyword list. Enter 1 to 100; the default is 100. Extra terms are ignored after normalization. This is not the SERP depth for each keyword.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}