{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Scholar Scraper: Native Citations & Versions",
    "description": "Scrape Google Scholar results with native citation counts, paper versions, authors, journals, and publication details. Find related versions and citation data for academic research, literature reviews, competitor analysis, and scholarly discovery.",
    "version": "0.1",
    "x-build-id": "HxJxxGUGaxjwHknuO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~google-scholar-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-google-scholar-scraper",
        "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/api-empire~google-scholar-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-google-scholar-scraper",
        "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/api-empire~google-scholar-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-google-scholar-scraper",
        "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": {
          "scholarTopics": {
            "title": "🎓 Scholar Topics / URLs",
            "type": "array",
            "description": "Bulk list of research topics (e.g. \"Tomato Shelf Life Prediction\") OR full Google Scholar URLs. One per line.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "🔎 Search Queries (legacy alias)",
            "type": "array",
            "description": "Legacy alias for Scholar Topics / URLs — kept for backward compatibility with existing integrations. Merged with Scholar Topics if both are set.",
            "items": {
              "type": "string"
            }
          },
          "resultsPerTopic": {
            "title": "📈 Results per Topic",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of papers to fetch per topic (real enforced cap: 5000)."
          },
          "maxItems": {
            "title": "📊 Max items per query (legacy)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Legacy alias for Results per Topic.",
            "default": 10
          },
          "availability": {
            "title": "📚 Availability Filter",
            "enum": [
              "all",
              "has_pdf",
              "open_access",
              "recent_5_years"
            ],
            "type": "string",
            "description": "Restrict results by availability or recency."
          },
          "filter": {
            "title": "🧰 Result filter (legacy alias)",
            "enum": [
              "all",
              "has_pdf",
              "open_access",
              "recent_5_years"
            ],
            "type": "string",
            "description": "Legacy alias for Availability Filter.",
            "default": "all"
          },
          "publishedFromYear": {
            "title": "🕐 Published From (year)",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep only results published in this year or later."
          },
          "newerThan": {
            "title": "🕐 Newer than (year, legacy alias)",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Legacy alias for Published From (year)."
          },
          "publishedToYear": {
            "title": "🕒 Published Until (year)",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep only results published in this year or earlier."
          },
          "olderThan": {
            "title": "🕒 Older than (year, legacy alias)",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Legacy alias for Published Until (year)."
          },
          "orderResultsBy": {
            "title": "🔃 Order Results By",
            "enum": [
              "relevance",
              "cited_by_count"
            ],
            "type": "string",
            "description": "How to order the final results. \"Most cited first\" fetches a larger pool before ranking so highly-cited papers outside the first page are not missed."
          },
          "sortBy": {
            "title": "🔃 Sort results by (legacy alias)",
            "enum": [
              "relevance",
              "cited_by_count"
            ],
            "type": "string",
            "description": "Legacy alias for Order Results By.",
            "default": "relevance"
          },
          "publicationType": {
            "title": "📑 Publication Type",
            "enum": [
              "any",
              "journal",
              "conference",
              "book",
              "preprint"
            ],
            "type": "string",
            "description": "Restrict to a specific publication type."
          },
          "articleType": {
            "title": "📑 Article type (legacy alias)",
            "enum": [
              "any",
              "journal",
              "conference",
              "book",
              "preprint"
            ],
            "type": "string",
            "description": "Legacy alias for Publication Type.",
            "default": "any"
          },
          "enableLiveScholarSearch": {
            "title": "🎓 Fetch Native Scholar Data",
            "type": "boolean",
            "description": "When enabled, adds extra result rows sourced directly from a live Google Scholar search, carrying genuine clusterId/version/related-article data. Best-effort — some topics may return zero extra rows if the fetch is challenged.",
            "default": false
          },
          "liveSearchYearFrom": {
            "title": "📅 Live Search Year From",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Native Scholar year-range start applied only to the Direct Live Scholar Search fetch (independent of \"Published From\" above, which applies to OpenAlex/Semantic Scholar results)."
          },
          "liveSearchYearTo": {
            "title": "📅 Live Search Year To",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Native Scholar year-range end applied only to the Direct Live Scholar Search fetch."
          },
          "includePatents": {
            "title": "⚖️ Include Patents in Live Search",
            "type": "boolean",
            "description": "Whether the Direct Live Scholar Search should include patent filings among its results (matches Google Scholar's own \"include patents\" search option).",
            "default": true
          },
          "includeCitationEntries": {
            "title": "📎 Include Citation-Only Entries in Live Search",
            "type": "boolean",
            "description": "Whether the Direct Live Scholar Search should include citation-only stub entries (papers Scholar knows about only because other work cites them, with no full record) among its results.",
            "default": true
          },
          "enableDebugDumps": {
            "title": "🐞 Enable debug dumps",
            "type": "boolean",
            "description": "Store a dump of every API response (OpenAlex + Semantic Scholar) into the default key-value store so you can inspect what was fetched. Useful for troubleshooting.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy Configuration",
            "type": "object",
            "description": "By default the actor connects directly for the OpenAlex/Semantic Scholar engine. If a request is blocked or rate-limited, it auto-escalates through proxy tiers (with retries). Once escalated, that stays sticky for the rest of the run.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}