{
  "openapi": "3.0.1",
  "info": {
    "title": "Startpage Search Extractor",
    "description": "Startpage search scraper that extracts organic search results for any keyword list, with rank position, title, URL, domain, and description, so SEO teams can run keyword research and track competitor rankings without personalized results skewing the data.",
    "version": "0.0",
    "x-build-id": "iWWztzpKeh3qjBeqb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kawsar~startpage-search-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kawsar-startpage-search-extractor",
        "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/kawsar~startpage-search-extractor/runs": {
      "post": {
        "operationId": "runs-sync-kawsar-startpage-search-extractor",
        "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/kawsar~startpage-search-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-kawsar-startpage-search-extractor",
        "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": "Search keywords",
            "type": "array",
            "description": "Search terms to run on Startpage, one per line. Every Startpage search operator works here, so you can use site:apify.com, \"exact phrase\", intitle:, or -excluded to narrow the results.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Total number of results to collect in one run, counted across all keywords. The actor pages through Startpage until it reaches this number. Note that Startpage returns roughly 50 to 60 organic results for a single keyword before it runs out, so use several keywords when you want more than that.",
            "default": 10
          },
          "timeoutSecs": {
            "title": "Run timeout (seconds)",
            "minimum": 60,
            "maximum": 3600,
            "type": "integer",
            "description": "Overall time budget for the run. Whatever has been collected when the budget runs out is still saved to the dataset.",
            "default": 600
          },
          "requestTimeoutSecs": {
            "title": "Page load timeout (seconds)",
            "minimum": 10,
            "maximum": 180,
            "type": "integer",
            "description": "How long to wait for a Startpage results page to render before giving up on it and retrying.",
            "default": 45
          },
          "language": {
            "title": "Search language",
            "enum": [
              "english",
              "german",
              "french",
              "spanish",
              "italian",
              "dutch",
              "portuguese",
              "polish",
              "swedish",
              "danish",
              "norwegian",
              "finnish",
              "russian",
              "turkish",
              "japanese",
              "korean"
            ],
            "type": "string",
            "description": "Language Startpage uses to interpret the query and return results.",
            "default": "english"
          },
          "region": {
            "title": "Region",
            "enum": [
              "all",
              "en_US",
              "en_GB",
              "en_CA",
              "en_AU",
              "en_IN",
              "en_IE",
              "en_NZ",
              "en_ZA",
              "de_DE",
              "de_AT",
              "de_CH",
              "fr_FR",
              "fr_CA",
              "es_ES",
              "es_MX",
              "it_IT",
              "nl_NL",
              "pt_BR",
              "pl_PL",
              "sv_SE",
              "da_DK",
              "no_NO",
              "fi_FI",
              "tr_TR",
              "ja_JP",
              "ko_KR"
            ],
            "type": "string",
            "description": "Country the results should be localized to. Pick a region when you want to see the rankings a searcher in that market would get rather than worldwide results.",
            "default": "all"
          },
          "timeRange": {
            "title": "Published within",
            "enum": [
              "any",
              "day",
              "week",
              "month",
              "year"
            ],
            "type": "string",
            "description": "Restrict results to pages Startpage has seen recently. Useful for news monitoring and for spotting freshly published competitor content.",
            "default": "any"
          },
          "safeSearch": {
            "title": "Safe search",
            "enum": [
              "none",
              "medium",
              "heavy"
            ],
            "type": "string",
            "description": "Adult content filter strength applied by Startpage.",
            "default": "medium"
          },
          "includeAds": {
            "title": "Include sponsored results",
            "type": "boolean",
            "description": "Save paid placements alongside organic results and mark them with isSponsored. Leave off for clean organic ranking data.",
            "default": false
          },
          "delayBetweenRequestsSecs": {
            "title": "Delay between requests (seconds)",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Pause added between page requests. A short wait keeps the request pattern human and cuts down on CAPTCHA pages. Raise it if a run starts getting challenged, lower it to finish faster.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to use for requests. Startpage challenges datacenter IP ranges aggressively, so Residential is preselected and is what you want for reliable results. Datacenter is cheaper but is usually served a CAPTCHA instead of search results."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}