{
  "data": {
    "id": "pdUktx8PmbvFPEYYD",
    "actId": "XT8wyKa1C9SYFQYTh",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-10-22T16:27:05.762Z",
    "finishedAt": "2026-10-22T16:27:22.434Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 16493,
      "runTimeSecs": 16.493,
      "computeUnits": 0.018325555555555557,
      "imageSizeBytes": 373667328
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Google Scholar Scraper Input\",\n  \"description\": \"Search Google Scholar papers, list citing papers, or export public author profiles. No account, API key, or proxy setup is needed.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch: paper search, citing papers, or public author profiles.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"citations\",\n        \"authorProfile\"\n      ],\n      \"enumTitles\": [\n        \"Search papers\",\n        \"List citing papers\",\n        \"Export author profile\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"queries\": {\n      \"title\": \"Search Queries\",\n      \"type\": \"array\",\n      \"description\": \"Keywords or paper titles to search on Google Scholar (mode=search). Each query runs separately.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"prefill\": [\n        \"attention is all you need\"\n      ]\n    },\n    \"clusterIds\": {\n      \"title\": \"Cluster IDs or Citing URLs\",\n      \"type\": \"array\",\n      \"description\": \"Paper cluster IDs or Google Scholar 'cites=' URLs to list citing papers for (mode=citations).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"authorIds\": {\n      \"title\": \"Author IDs or Profile URLs\",\n      \"type\": \"array\",\n      \"description\": \"Google Scholar author IDs or profile URLs to export (mode=authorProfile).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum Results\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum papers per query or cluster, or papers per author. Google Scholar serves about 10 search results per page.\",\n      \"default\": 100,\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"prefill\": 3\n    },\n    \"sortBy\": {\n      \"title\": \"Sort By\",\n      \"type\": \"string\",\n      \"description\": \"Sort search results by relevance or date (mode=search).\",\n      \"default\": \"relevance\",\n      \"enum\": [\n        \"relevance\",\n        \"date\"\n      ],\n      \"enumTitles\": [\n        \"Relevance\",\n        \"Newest first\"\n      ],\n      \"editor\": \"select\",\n      \"prefill\": \"relevance\"\n    },\n    \"filter\": {\n      \"title\": \"Document Format\",\n      \"type\": \"string\",\n      \"description\": \"Keep only PDF or HTML results; applied to returned rows (mode=search).\",\n      \"default\": \"all\",\n      \"enum\": [\n        \"all\",\n        \"pdfOnly\",\n        \"htmlOnly\"\n      ],\n      \"enumTitles\": [\n        \"All formats\",\n        \"PDF only\",\n        \"HTML only\"\n      ],\n      \"editor\": \"select\",\n      \"prefill\": \"all\"\n    },\n    \"articleType\": {\n      \"title\": \"Article Type\",\n      \"type\": \"string\",\n      \"description\": \"Return all articles or review articles only (mode=search).\",\n      \"default\": \"any\",\n      \"enum\": [\n        \"any\",\n        \"review\"\n      ],\n      \"enumTitles\": [\n        \"All articles\",\n        \"Review articles only\"\n      ],\n      \"editor\": \"select\",\n      \"prefill\": \"any\"\n    },\n    \"newerThan\": {\n      \"title\": \"Published After (Year)\",\n      \"type\": \"integer\",\n      \"description\": \"Only include papers published in this year or later (mode=search).\",\n      \"minimum\": 1900,\n      \"maximum\": 2030\n    },\n    \"olderThan\": {\n      \"title\": \"Published Before (Year)\",\n      \"type\": \"integer\",\n      \"description\": \"Only include papers published in this year or earlier (mode=search).\",\n      \"minimum\": 1900,\n      \"maximum\": 2030\n    },\n    \"author\": {\n      \"title\": \"Authored By\",\n      \"type\": \"string\",\n      \"description\": \"Return papers written by this author, e.g. 'Geoffrey Hinton' (mode=search).\",\n      \"editor\": \"textfield\"\n    },\n    \"publication\": {\n      \"title\": \"Published In\",\n      \"type\": \"string\",\n      \"description\": \"Return papers from this journal or venue, e.g. 'Nature' (mode=search).\",\n      \"editor\": \"textfield\"\n    },\n    \"titleOnly\": {\n      \"title\": \"Search Titles Only\",\n      \"type\": \"boolean\",\n      \"description\": \"Match the query against paper titles instead of the full text (mode=search).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeCitationFormats\": {\n      \"title\": \"Include Citation Formats\",\n      \"type\": \"boolean\",\n      \"description\": \"Also return MLA, APA, Chicago, Harvard, and Vancouver citations for returned rows, within a bounded budget (mode=search or citations).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includePaperDetails\": {\n      \"title\": \"Include Paper Details\",\n      \"type\": \"boolean\",\n      \"description\": \"Fetch journal, volume, pages, publisher, and abstract for each author publication (mode=authorProfile).\",\n      \"default\": false,\n      \"prefill\": false\n    }\n  }\n}",
    "readme": "# Google Scholar Paper & Citation Search Scraper\n\nSearch **Google Scholar** for papers, follow their citations, and export public researcher profiles as clean structured data. One actor covers keyword search with year and review filters, citing-paper lists, author metrics such as h-index and i10-index, PDF links, citation styles, and cluster identifiers for follow-up queries. No Google account, API key, or proxy setup is needed.\n\n## What this actor does\n\n- **Three modes:** `search` finds papers by keyword, `citations` lists papers that cite a known article, and `authorProfile` exports a public researcher profile with its publication list.\n- **Paper search filters:** year range, newest-first sorting, review articles only, and client-side PDF/HTML filtering. Optional advanced filters narrow results by author, venue, or title-only matching.\n- **Citing papers:** pass a Scholar cluster ID or a `cites=` URL and receive the citing works with the same paper fields.\n- **Author profiles:** name, affiliation, verified email domain, homepage, research interests, citations, h-index, i10-index (all-time and recent), plus the paginated publication table.\n- **Citation styles:** optionally add MLA, APA, Chicago, Harvard, and Vancouver text for returned results, with a bounded time budget so search rows are still saved if formats are slow.\n- **Honest data:** PDF links point at the file Scholar lists, book and citation-only rows are typed correctly, duplicate rows within each query or citation list are removed, and empty fields are omitted.\n\n## Output per record\n\nEvery record has a `recordType`: `paper`, `citation`, or `author`.\n\n### Paper and citation records\n\n- `title` — paper or article title\n- `link` — publisher or landing-page URL\n- `documentLink` — direct PDF or HTML file URL, when Scholar lists one\n- `documentType` — `PDF`, `HTML`, `PS`, or omitted\n- `authors` — author names as shown by Scholar\n- `publication` — journal, conference, or venue text from Scholar (some rows include the publisher or source domain)\n- `year` — publication year\n- `source` — hosting domain, such as `arxiv.org`, when Scholar separates it from the venue\n- `fullAttribution` — the complete attribution line from Scholar\n- `searchMatch` — snippet showing where the query matched\n- `citations` — cited-by count (`0` when Scholar shows none)\n- `citationsLink` — link to the citing-paper list\n- `relatedArticlesLink` — link to related articles\n- `versions` / `versionsLink` — version count and link, when Scholar shows them\n- `type` — `ARTICLE`, `BOOK`, or `CITATION`\n- `resultIndex` — position in the result list (0-based)\n- `clusterId` — Scholar cluster ID, useful for citation lookups\n- `resultId` — Scholar's internal result ID\n- `scholarUrl` — Scholar page for the article cluster\n- `authorIds` / `authorProfileUrls` — linked author profiles\n- `doi` — clean DOI parsed from the result URL when present; Scholar does not expose a DOI field directly\n- `citationFormats` — `mla`, `apa`, `chicago`, `harvard`, `vancouver` when requested\n- `searchQuery` — the query that found the paper (search mode)\n- `citedByOf` — the cluster ID being cited (citations mode)\n- `scrapeTimestamp` — ISO 8601 scrape time\n\n### Author records\n\n- `authorId`, `profileUrl`, `name`, `affiliation`\n- `verifiedEmailDomain`, `homepageUrl`, `interests`, `thumbnailUrl`\n- `citations`, `citationsSince`, `hIndex`, `hIndexSince`, `i10Index`, `i10IndexSince`, `metricsSinceYear`\n- `publications` — title, authors, venue, year, citations, Scholar URL, citation ID, and optional journal/volume/issue/pages/publisher/abstract/publication date/total citations\n- `publicationCount`\n- `scrapeTimestamp`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `search` | `search`, `citations`, or `authorProfile` |\n| `queries` | array | `[\"attention is all you need\"]` | Search terms for `mode=search` |\n| `clusterIds` | array | – | Cluster IDs or `cites=` URLs for `mode=citations` |\n| `authorIds` | array | – | Author IDs or profile URLs for `mode=authorProfile` |\n| `maxItems` | integer | `100` | Maximum papers per query/cluster, or papers per author (1–1000) |\n| `sortBy` | string | `relevance` | `relevance` or `date` |\n| `filter` | string | `all` | `all`, `pdfOnly`, or `htmlOnly` |\n| `articleType` | string | `any` | `any` or `review` |\n| `newerThan` | integer | – | Earliest publication year |\n| `olderThan` | integer | – | Latest publication year |\n| `author` | string | – | Return papers by this author |\n| `publication` | string | – | Return papers from this venue |\n| `titleOnly` | boolean | `false` | Match the query against titles |\n| `includeCitationFormats` | boolean | `false` | Add five citation styles for returned rows within a bounded budget; a slow format lookup never drops the search rows |\n| `includePaperDetails` | boolean | `false` | Add journal, volume, issue, pages, publisher, publication date, abstract, and total citations to author publications |\n\n## Examples\n\n### Search recent review papers on a medical topic\n\n```json\n{\n    \"mode\": \"search\",\n    \"queries\": [\"cancer immunotherapy\"],\n    \"maxItems\": 30,\n    \"articleType\": \"review\",\n    \"newerThan\": 2022\n}\n```\n\n### Find papers by a specific author in a specific venue\n\n```json\n{\n    \"mode\": \"search\",\n    \"queries\": [\"quantum computing\"],\n    \"author\": \"Andrew Steane\",\n    \"publication\": \"Physical Review\",\n    \"maxItems\": 20\n}\n```\n\n### List papers that cite a known article\n\n```json\n{\n    \"mode\": \"citations\",\n    \"clusterIds\": [\"184251978817409129\"],\n    \"maxItems\": 50,\n    \"includeCitationFormats\": true\n}\n```\n\n### Export an author profile with paper details\n\n```json\n{\n    \"mode\": \"authorProfile\",\n    \"authorIds\": [\"https://scholar.google.com/citations?user=-AXbSiwAAAAJ&hl=en\"],\n    \"maxItems\": 100,\n    \"includePaperDetails\": true\n}\n```\n\n## Use cases\n\n- **Literature reviews** — collect a structured reading list and follow citation chains without copying rows from Scholar.\n- **Bibliometrics** — track citation counts, h-index, and i10-index for researchers or fields.\n- **Research monitoring** — rerun saved queries to catch new papers in a topic.\n- **Citation analysis** — export citing papers for one or more key articles.\n- **Academic recruiting and grants** — compare public publication records and recent citation metrics.\n- **Data pipelines** — feed clean JSON into a database, spreadsheet, or research assistant.\n\n## FAQ\n\n### Do I need a Google Scholar account, API key, or proxy?\n\nNo. The actor reads public Scholar pages and selects a working connection automatically. Just provide the input and run it.\n\n### Why do I get fewer results than `maxItems`?\n\nGoogle Scholar serves about 10 search results per page and may return an empty or partial page for deep pagination. The actor retries on a fresh connection and stops with an honest status instead of inventing rows. For broad topics, split the query by year, venue, or author to reach more results.\n\n### What is a cluster ID and where do I find it?\n\nA cluster ID identifies one article and all of its known versions on Scholar. It is the number in a `cites=` or `cluster=` URL, and it is also returned as `clusterId` on every search result. Use it as input to `mode=citations` to list citing papers.\n\n### Why is a DOI missing from some records?\n\nGoogle Scholar does not show a DOI field on search results. The actor adds a DOI only when the result's URL contains one, so many records correctly omit it. It never guesses a DOI. Query strings, fragments, and common suffix paths such as `/meta` or `.html` are removed.\n\n### Which citation styles are supported?\n\nMLA, APA, Chicago, Harvard, and Vancouver are returned as text when `includeCitationFormats` is enabled. The actor looks up each returned result ID, including deeper pages, within a bounded time budget. If Google Scholar is slow or blocks some format lookups, the already-collected paper rows are still saved and the run status reports how many rows received formats. The option adds one request per row, so it is slower than a plain search.\n\n### Why are some PDF links missing?\n\nScholar only shows a file link when it has indexed a PDF or HTML copy. The actor returns the real file URL and omits `documentLink` when no file is available. `link` still points to the publisher or landing page.\n\n### Why do author profiles not include coauthors?\n\nCoauthor cards are not part of the public profile view; Scholar only exposes them through a signed-in editing dialog. The actor returns the public fields it can verify: affiliation, interests, metrics, and the publication list.\n\n### Can I search for an author by name and get their profile automatically?\n\nAuthor-name profile search requires a Google sign-in, so the actor does not offer it. If you know the profile URL or user ID, paste it into `authorIds`; author names linked from search results are also returned in `authorIds` and `authorProfileUrls`.\n\n### How are year filters handled with newest-first sorting?\n\nWhen a year range is set, the actor sends Scholar's server-side `as_ylo`/`as_yhi` bounds (even with `sortBy: \"date\"`) and verifies the years on the returned rows. Newest-first order is then applied within each page, because Scholar ignores a global date sort when a year range is active. A 2020–2022 range therefore returns matching papers instead of a false empty result.\n\n### Is this affiliated with Google or Google Scholar?\n\nNo. This is an independent third-party actor that reads publicly available Google Scholar pages. It is not operated by or endorsed by Google.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "google-scholar-paper-and-citation-search-scraper",
      "title": "Google Scholar Paper & Citation Search Scraper",
      "description": "Search Google Scholar papers, list citing papers, and export public author profiles. Get authors, venue, year, citation counts, PDF links, cluster IDs, and h-index metrics.",
      "version": "1.0",
      "buildTag": "latest",
      "meta": {
        "templateId": "python-start"
      },
      "input": {
        "title": "Google Scholar Scraper Input",
        "description": "Search Google Scholar papers, list citing papers, or export public author profiles. No account, API key, or proxy setup is needed.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to fetch: paper search, citing papers, or public author profiles.",
            "editor": "select",
            "enum": [
              "search",
              "citations",
              "authorProfile"
            ],
            "enumTitles": [
              "Search papers",
              "List citing papers",
              "Export author profile"
            ],
            "default": "search",
            "prefill": "search"
          },
          "queries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Keywords or paper titles to search on Google Scholar (mode=search). Each query runs separately.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "prefill": [
              "attention is all you need"
            ]
          },
          "clusterIds": {
            "title": "Cluster IDs or Citing URLs",
            "type": "array",
            "description": "Paper cluster IDs or Google Scholar 'cites=' URLs to list citing papers for (mode=citations).",
            "editor": "stringList",
            "items": {
              "type": "string"
            }
          },
          "authorIds": {
            "title": "Author IDs or Profile URLs",
            "type": "array",
            "description": "Google Scholar author IDs or profile URLs to export (mode=authorProfile).",
            "editor": "stringList",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum Results",
            "type": "integer",
            "description": "Maximum papers per query or cluster, or papers per author. Google Scholar serves about 10 search results per page.",
            "default": 100,
            "minimum": 1,
            "maximum": 1000,
            "prefill": 3
          },
          "sortBy": {
            "title": "Sort By",
            "type": "string",
            "description": "Sort search results by relevance or date (mode=search).",
            "default": "relevance",
            "enum": [
              "relevance",
              "date"
            ],
            "enumTitles": [
              "Relevance",
              "Newest first"
            ],
            "editor": "select",
            "prefill": "relevance"
          },
          "filter": {
            "title": "Document Format",
            "type": "string",
            "description": "Keep only PDF or HTML results; applied to returned rows (mode=search).",
            "default": "all",
            "enum": [
              "all",
              "pdfOnly",
              "htmlOnly"
            ],
            "enumTitles": [
              "All formats",
              "PDF only",
              "HTML only"
            ],
            "editor": "select",
            "prefill": "all"
          },
          "articleType": {
            "title": "Article Type",
            "type": "string",
            "description": "Return all articles or review articles only (mode=search).",
            "default": "any",
            "enum": [
              "any",
              "review"
            ],
            "enumTitles": [
              "All articles",
              "Review articles only"
            ],
            "editor": "select",
            "prefill": "any"
          },
          "newerThan": {
            "title": "Published After (Year)",
            "type": "integer",
            "description": "Only include papers published in this year or later (mode=search).",
            "minimum": 1900,
            "maximum": 2030
          },
          "olderThan": {
            "title": "Published Before (Year)",
            "type": "integer",
            "description": "Only include papers published in this year or earlier (mode=search).",
            "minimum": 1900,
            "maximum": 2030
          },
          "author": {
            "title": "Authored By",
            "type": "string",
            "description": "Return papers written by this author, e.g. 'Geoffrey Hinton' (mode=search).",
            "editor": "textfield"
          },
          "publication": {
            "title": "Published In",
            "type": "string",
            "description": "Return papers from this journal or venue, e.g. 'Nature' (mode=search).",
            "editor": "textfield"
          },
          "titleOnly": {
            "title": "Search Titles Only",
            "type": "boolean",
            "description": "Match the query against paper titles instead of the full text (mode=search).",
            "default": false,
            "prefill": false
          },
          "includeCitationFormats": {
            "title": "Include Citation Formats",
            "type": "boolean",
            "description": "Also return MLA, APA, Chicago, Harvard, and Vancouver citations for returned rows, within a bounded budget (mode=search or citations).",
            "default": false,
            "prefill": false
          },
          "includePaperDetails": {
            "title": "Include Paper Details",
            "type": "boolean",
            "description": "Fetch journal, volume, pages, publisher, and abstract for each author publication (mode=authorProfile).",
            "default": false,
            "prefill": false
          }
        }
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Google Scholar Paper & Citation Search Scraper Output",
        "type": "object",
        "description": "Papers, citing papers, and public author profiles from Google Scholar, with authors, venue, year, citation counts, PDF links, cluster IDs, and researcher metrics.",
        "properties": {
          "results": {
            "type": "string",
            "title": "Scholar Results",
            "description": "Dataset containing scraped papers, citing papers, or author profiles.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "Scholar Results",
          "views": {
            "overview": {
              "title": "Results",
              "transformation": {
                "fields": [
                  "recordType",
                  "title",
                  "name",
                  "authors",
                  "year",
                  "publication",
                  "citations",
                  "documentType",
                  "documentLink",
                  "link",
                  "clusterId",
                  "scholarUrl",
                  "searchQuery"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "authors": {
                    "label": "Authors",
                    "format": "text"
                  },
                  "year": {
                    "label": "Year",
                    "format": "number"
                  },
                  "publication": {
                    "label": "Publication",
                    "format": "text"
                  },
                  "citations": {
                    "label": "Citations",
                    "format": "number"
                  },
                  "documentType": {
                    "label": "Type",
                    "format": "text"
                  },
                  "link": {
                    "label": "Link",
                    "format": "link"
                  },
                  "searchQuery": {
                    "label": "Query",
                    "format": "text"
                  },
                  "recordType": {
                    "label": "Record",
                    "format": "text"
                  },
                  "name": {
                    "label": "Author",
                    "format": "text"
                  },
                  "documentLink": {
                    "label": "PDF/HTML",
                    "format": "link"
                  },
                  "clusterId": {
                    "label": "Cluster",
                    "format": "text"
                  },
                  "scholarUrl": {
                    "label": "Scholar URL",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      },
      "readme": "# Google Scholar Paper & Citation Search Scraper\n\nSearch **Google Scholar** for papers, follow their citations, and export public researcher profiles as clean structured data. One actor covers keyword search with year and review filters, citing-paper lists, author metrics such as h-index and i10-index, PDF links, citation styles, and cluster identifiers for follow-up queries. No Google account, API key, or proxy setup is needed.\n\n## What this actor does\n\n- **Three modes:** `search` finds papers by keyword, `citations` lists papers that cite a known article, and `authorProfile` exports a public researcher profile with its publication list.\n- **Paper search filters:** year range, newest-first sorting, review articles only, and client-side PDF/HTML filtering. Optional advanced filters narrow results by author, venue, or title-only matching.\n- **Citing papers:** pass a Scholar cluster ID or a `cites=` URL and receive the citing works with the same paper fields.\n- **Author profiles:** name, affiliation, verified email domain, homepage, research interests, citations, h-index, i10-index (all-time and recent), plus the paginated publication table.\n- **Citation styles:** optionally add MLA, APA, Chicago, Harvard, and Vancouver text for returned results, with a bounded time budget so search rows are still saved if formats are slow.\n- **Honest data:** PDF links point at the file Scholar lists, book and citation-only rows are typed correctly, duplicate rows within each query or citation list are removed, and empty fields are omitted.\n\n## Output per record\n\nEvery record has a `recordType`: `paper`, `citation`, or `author`.\n\n### Paper and citation records\n\n- `title` — paper or article title\n- `link` — publisher or landing-page URL\n- `documentLink` — direct PDF or HTML file URL, when Scholar lists one\n- `documentType` — `PDF`, `HTML`, `PS`, or omitted\n- `authors` — author names as shown by Scholar\n- `publication` — journal, conference, or venue text from Scholar (some rows include the publisher or source domain)\n- `year` — publication year\n- `source` — hosting domain, such as `arxiv.org`, when Scholar separates it from the venue\n- `fullAttribution` — the complete attribution line from Scholar\n- `searchMatch` — snippet showing where the query matched\n- `citations` — cited-by count (`0` when Scholar shows none)\n- `citationsLink` — link to the citing-paper list\n- `relatedArticlesLink` — link to related articles\n- `versions` / `versionsLink` — version count and link, when Scholar shows them\n- `type` — `ARTICLE`, `BOOK`, or `CITATION`\n- `resultIndex` — position in the result list (0-based)\n- `clusterId` — Scholar cluster ID, useful for citation lookups\n- `resultId` — Scholar's internal result ID\n- `scholarUrl` — Scholar page for the article cluster\n- `authorIds` / `authorProfileUrls` — linked author profiles\n- `doi` — clean DOI parsed from the result URL when present; Scholar does not expose a DOI field directly\n- `citationFormats` — `mla`, `apa`, `chicago`, `harvard`, `vancouver` when requested\n- `searchQuery` — the query that found the paper (search mode)\n- `citedByOf` — the cluster ID being cited (citations mode)\n- `scrapeTimestamp` — ISO 8601 scrape time\n\n### Author records\n\n- `authorId`, `profileUrl`, `name`, `affiliation`\n- `verifiedEmailDomain`, `homepageUrl`, `interests`, `thumbnailUrl`\n- `citations`, `citationsSince`, `hIndex`, `hIndexSince`, `i10Index`, `i10IndexSince`, `metricsSinceYear`\n- `publications` — title, authors, venue, year, citations, Scholar URL, citation ID, and optional journal/volume/issue/pages/publisher/abstract/publication date/total citations\n- `publicationCount`\n- `scrapeTimestamp`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `search` | `search`, `citations`, or `authorProfile` |\n| `queries` | array | `[\"attention is all you need\"]` | Search terms for `mode=search` |\n| `clusterIds` | array | – | Cluster IDs or `cites=` URLs for `mode=citations` |\n| `authorIds` | array | – | Author IDs or profile URLs for `mode=authorProfile` |\n| `maxItems` | integer | `100` | Maximum papers per query/cluster, or papers per author (1–1000) |\n| `sortBy` | string | `relevance` | `relevance` or `date` |\n| `filter` | string | `all` | `all`, `pdfOnly`, or `htmlOnly` |\n| `articleType` | string | `any` | `any` or `review` |\n| `newerThan` | integer | – | Earliest publication year |\n| `olderThan` | integer | – | Latest publication year |\n| `author` | string | – | Return papers by this author |\n| `publication` | string | – | Return papers from this venue |\n| `titleOnly` | boolean | `false` | Match the query against titles |\n| `includeCitationFormats` | boolean | `false` | Add five citation styles for returned rows within a bounded budget; a slow format lookup never drops the search rows |\n| `includePaperDetails` | boolean | `false` | Add journal, volume, issue, pages, publisher, publication date, abstract, and total citations to author publications |\n\n## Examples\n\n### Search recent review papers on a medical topic\n\n```json\n{\n    \"mode\": \"search\",\n    \"queries\": [\"cancer immunotherapy\"],\n    \"maxItems\": 30,\n    \"articleType\": \"review\",\n    \"newerThan\": 2022\n}\n```\n\n### Find papers by a specific author in a specific venue\n\n```json\n{\n    \"mode\": \"search\",\n    \"queries\": [\"quantum computing\"],\n    \"author\": \"Andrew Steane\",\n    \"publication\": \"Physical Review\",\n    \"maxItems\": 20\n}\n```\n\n### List papers that cite a known article\n\n```json\n{\n    \"mode\": \"citations\",\n    \"clusterIds\": [\"184251978817409129\"],\n    \"maxItems\": 50,\n    \"includeCitationFormats\": true\n}\n```\n\n### Export an author profile with paper details\n\n```json\n{\n    \"mode\": \"authorProfile\",\n    \"authorIds\": [\"https://scholar.google.com/citations?user=-AXbSiwAAAAJ&hl=en\"],\n    \"maxItems\": 100,\n    \"includePaperDetails\": true\n}\n```\n\n## Use cases\n\n- **Literature reviews** — collect a structured reading list and follow citation chains without copying rows from Scholar.\n- **Bibliometrics** — track citation counts, h-index, and i10-index for researchers or fields.\n- **Research monitoring** — rerun saved queries to catch new papers in a topic.\n- **Citation analysis** — export citing papers for one or more key articles.\n- **Academic recruiting and grants** — compare public publication records and recent citation metrics.\n- **Data pipelines** — feed clean JSON into a database, spreadsheet, or research assistant.\n\n## FAQ\n\n### Do I need a Google Scholar account, API key, or proxy?\n\nNo. The actor reads public Scholar pages and selects a working connection automatically. Just provide the input and run it.\n\n### Why do I get fewer results than `maxItems`?\n\nGoogle Scholar serves about 10 search results per page and may return an empty or partial page for deep pagination. The actor retries on a fresh connection and stops with an honest status instead of inventing rows. For broad topics, split the query by year, venue, or author to reach more results.\n\n### What is a cluster ID and where do I find it?\n\nA cluster ID identifies one article and all of its known versions on Scholar. It is the number in a `cites=` or `cluster=` URL, and it is also returned as `clusterId` on every search result. Use it as input to `mode=citations` to list citing papers.\n\n### Why is a DOI missing from some records?\n\nGoogle Scholar does not show a DOI field on search results. The actor adds a DOI only when the result's URL contains one, so many records correctly omit it. It never guesses a DOI. Query strings, fragments, and common suffix paths such as `/meta` or `.html` are removed.\n\n### Which citation styles are supported?\n\nMLA, APA, Chicago, Harvard, and Vancouver are returned as text when `includeCitationFormats` is enabled. The actor looks up each returned result ID, including deeper pages, within a bounded time budget. If Google Scholar is slow or blocks some format lookups, the already-collected paper rows are still saved and the run status reports how many rows received formats. The option adds one request per row, so it is slower than a plain search.\n\n### Why are some PDF links missing?\n\nScholar only shows a file link when it has indexed a PDF or HTML copy. The actor returns the real file URL and omits `documentLink` when no file is available. `link` still points to the publisher or landing page.\n\n### Why do author profiles not include coauthors?\n\nCoauthor cards are not part of the public profile view; Scholar only exposes them through a signed-in editing dialog. The actor returns the public fields it can verify: affiliation, interests, metrics, and the publication list.\n\n### Can I search for an author by name and get their profile automatically?\n\nAuthor-name profile search requires a Google sign-in, so the actor does not offer it. If you know the profile URL or user ID, paste it into `authorIds`; author names linked from search results are also returned in `authorIds` and `authorProfileUrls`.\n\n### How are year filters handled with newest-first sorting?\n\nWhen a year range is set, the actor sends Scholar's server-side `as_ylo`/`as_yhi` bounds (even with `sortBy: \"date\"`) and verifies the years on the returned rows. Newest-first order is then applied within each page, because Scholar ignores a global date sort when a year range is active. A 2020–2022 range therefore returns matching papers instead of a false empty result.\n\n### Is this affiliated with Google or Google Scholar?\n\nNo. This is an independent third-party actor that reads publicly available Google Scholar pages. It is not operated by or endorsed by Google.\n"
    },
    "buildNumber": "1.0.2",
    "imageDigest": "817dfc5f2808cd8b1ece392e94f6d16567c131dec0320dd7aa28c3f319b94d07",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.018325555555555557
    }
  }
}