{"name":"academic-paper-search","id":"sfoln/academic-paper-search","title":"Academic Paper Search – arXiv, PubMed, DOI","description":"Search research papers across Crossref, arXiv, PubMed and Europe PMC in one call, or look up DOIs, arXiv ids and PMIDs. One merged, de-duplicated row per paper: title, authors, year, venue, DOI, abstract, citation count, open-access PDF link. $1 per 1,000 papers.","version":"0.1","status":"ready","family":{"id":"ai-agent-web-toolkit","name":"Web toolkit for agents","description":"Web search for retrieval, pages and sites converted to Markdown, AI extraction to JSON, URL metadata and safety checks, sitemaps, feeds, change monitoring and academic paper search.","actors":11},"categories":["AI","DEVELOPER_TOOLS","AUTOMATION"],"availability":"on_request","seoTitle":"Academic Paper Search API – arXiv, PubMed, Crossref","seoDescription":"Search research papers in arXiv, PubMed, Crossref and Europe PMC or look up DOIs: title, authors, abstract, citations, open-access PDF. $1 per 1,000 papers.","summary":"Search research papers across Crossref, arXiv, PubMed and Europe PMC in one call and get one clean, de-duplicated row per paper: title, authors, year, publication date, journal or venue, DOI, arXiv id, PMID, abstract, citation count, open-access flag with the best free PDF link, and subjects. Or paste DOIs, arXiv ids, PMIDs or PMCIDs and get the same record for each. Built for literature reviews, research assistants and AI agents that need reliable paper metadata without scraping Google Scholar. $1 per 1,000 papers.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":10,"events":[{"name":"paper","title":"Research paper","description":"One paper delivered: a search result row (merged from Crossref, arXiv, PubMed and Europe PMC) or the record of a DOI, arXiv id, PMID or PMCID you looked up.","priceUsd":0.001}]},"input":{"description":"Search research papers across Crossref, arXiv, PubMed and Europe PMC, or look up papers by DOI, arXiv id, PMID or PMCID. Each paper is one dataset row; each query also gets one summary record.","required":[],"fields":[{"name":"queries","title":"Search queries","type":"array","required":false,"description":"Topics or keywords to search, one query per line (e.g. \"crispr gene editing\"). Words must all appear; put a phrase in double quotes. A line that is a DOI, an arXiv id or URL, or \"PMID: …\" is looked up instead. Accounts on the Apify free plan can process up to 10 items per run (queries and identifiers together) and 20 papers per query.","prefill":["crispr gene editing"],"editor":"stringList"},{"name":"ids","title":"DOIs, arXiv ids, PMIDs or PMCIDs","type":"array","required":false,"description":"Papers to look up, one per line: DOIs (10.1038/s41586-021-03819-2 or a doi.org link), arXiv ids or links (1706.03762, arXiv:hep-th/9901001), PubMed ids (34968414) or PubMed Central ids (PMC8371605). Each returns one record.","editor":"stringList"},{"name":"maxResultsPerQuery","title":"Max papers per query","type":"integer","required":false,"description":"How many papers each search query returns at most (merged across the sources, best first).","default":25,"prefill":5,"minimum":1,"maximum":1000},{"name":"sources","title":"Sources","type":"array","required":false,"description":"Where to search: crossref (all disciplines, citation counts), arxiv (physics, maths, computer science preprints), pubmed (biomedical literature, MeSH terms), europepmc (life sciences incl. preprints, open-access full text), openalex (only when available on this Actor). Leave empty for all of them.","editor":"select"},{"name":"yearFrom","title":"Published from (year)","type":"integer","required":false,"description":"Only papers published in or after this year.","minimum":1000,"maximum":2999},{"name":"yearTo","title":"Published until (year)","type":"integer","required":false,"description":"Only papers published in or before this year.","minimum":1000,"maximum":2999},{"name":"type","title":"Publication type","type":"string","required":false,"description":"Only this kind of publication. Sources without such records are skipped (arXiv only has preprints).","default":"any","enum":["any","journal-article","preprint","review","conference-paper","book"],"editor":"select"},{"name":"openAccessOnly","title":"Open access only","type":"boolean","required":false,"description":"Only papers that are free to read (open-access licence, arXiv, PubMed Central, Europe PMC full text).","default":false},{"name":"sort","title":"Sort by","type":"string","required":false,"description":"relevance: papers several sources rank high come first; date: newest first; citations: most cited first.","default":"relevance","enum":["relevance","date","citations"],"editor":"select"},{"name":"enrich","title":"Add citation counts by DOI","type":"boolean","required":false,"description":"For papers with a DOI that Crossref did not return in the search, fetch the Crossref record (citation count, licence, publisher). No extra charge.","default":true},{"name":"deduplicate","title":"Skip papers already delivered in this run","type":"boolean","required":false,"description":"A paper found by several queries is delivered (and charged) once, for the first query.","default":true},{"name":"maxItems","title":"Max items","type":"integer","required":false,"description":"Safety cap on how many queries and identifiers are processed in this run; the rest are reported as ignored.","default":100,"minimum":1,"maximum":10000},{"name":"concurrency","title":"Concurrency","type":"integer","required":false,"description":"Queries and lookups processed in parallel. arXiv and Crossref limits are shared by the whole run, so more rarely helps.","default":3,"minimum":1,"maximum":6},{"name":"includeRaw","title":"Include raw source records","type":"boolean","required":false,"description":"Attach each source's unmodified record to every paper (larger output; with queries of 500+ papers give the run 1 GB of memory).","default":false}]},"exampleInput":{"queries":["crispr gene editing"],"maxResultsPerQuery":5},"outputFields":[{"name":"input","type":"string | object","title":"Input","description":"The search query or identifier this record belongs to."},{"name":"recordType","type":"string","title":"Record type","description":"paper (one paper; charged) or summary (one per search query: counts, sources, warnings; never charged)."},{"name":"position","type":"integer","title":"Position","description":"Rank of the paper in its query's results (1 = first)."},{"name":"status","type":"string","title":"Status","description":"ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan | skipped_unmetered","example":"ok"},{"name":"charged","type":"boolean","title":"Charged","description":"Whether this record incurred a pay-per-event charge."},{"name":"chargedEvent","type":"string","title":"Charged event","description":"Pay-per-event event charged for this record (present only when charged)."},{"name":"chargedCount","type":"integer","title":"Events charged","description":"Events actually charged when the charge came back short of the requested count (present only then; a warning explains it)."},{"name":"source","type":"string","title":"Source","description":"Paper rows: the sources searched (crossref+arxiv+pubmed+europepmc); lookups: the source that answered (crossref, arxiv, pubmed, europepmc, doi)."},{"name":"fetchedAt","type":"string","title":"Fetched at","description":"ISO timestamp."},{"name":"title","type":"string | null","title":"Title","description":"Paper title."},{"name":"authors","type":"array","title":"Authors","description":"Author names as published, in order."},{"name":"year","type":"integer | null","title":"Year","description":"Publication year."},{"name":"publishedDate","type":"string | null","title":"Published","description":"Publication date: YYYY-MM-DD, YYYY-MM or YYYY (earliest of online and print)."},{"name":"venue","type":"string | null","title":"Venue","description":"Journal, proceedings, book or preprint server (arXiv: the journal reference when published, else arXiv)."},{"name":"publisher","type":"string | null","title":"Publisher","description":"Publisher (from Crossref or OpenAlex)."},{"name":"type","type":"string | null","title":"Type","description":"journal-article, preprint, review, conference-paper, book, book-chapter, dataset, dissertation, report or other."},{"name":"doi","type":"string | null","title":"DOI","description":"DOI in lower case, without https://doi.org/."},{"name":"arxivId","type":"string | null","title":"arXiv id","description":"arXiv identifier without version (e.g. 1706.03762)."},{"name":"pmid","type":"string | null","title":"PMID","description":"PubMed id."},{"name":"pmcid","type":"string | null","title":"PMCID","description":"PubMed Central id (free full text)."},{"name":"openAlexId","type":"string | null","title":"OpenAlex id","description":"OpenAlex work id (W…), when OpenAlex was used."},{"name":"abstract","type":"string | null","title":"Abstract","description":"Abstract as plain text, when a source provides it."},{"name":"citationCount","type":"integer | null","title":"Citations","description":"Times cited: Crossref is-referenced-by-count, else OpenAlex or Europe PMC."},{"name":"openAccess","type":"boolean | null","title":"Open access","description":"Free to read: open-access licence, arXiv, PubMed Central or Europe PMC full text. null = unknown."},{"name":"pdfUrl","type":"string | null","title":"PDF","description":"Best free PDF link (arXiv, Europe PMC, publisher under an open licence)."},{"name":"url","type":"string | null","title":"URL","description":"Landing page: where the paper can be read when it is open access, else the publisher's page."},{"name":"subjects","type":"array","title":"Subjects","description":"MeSH headings and keywords (PubMed, Europe PMC), arXiv categories, OpenAlex topics."},{"name":"language","type":"string | null","title":"Language","description":"Language code, when a source states it."},{"name":"sources","type":"array","title":"Found in","description":"Sources that returned this paper (crossref, pubmed, europepmc, arxiv, openalex, doi)."},{"name":"idType","type":"string","title":"Identifier type","description":"Lookups: doi, arxiv, pmid or pmcid."},{"name":"lookupId","type":"string","title":"Identifier","description":"Lookups: the identifier in canonical form."},{"name":"query","type":"string","title":"Query","description":"Summary records: the search query."},{"name":"resultsDelivered","type":"integer","title":"Papers delivered","description":"Summary records: papers delivered (and charged) for the query."},{"name":"stopReason","type":"string","title":"Stop reason","description":"Summary records: limit, free_plan, end, budget, aborted, deadline or error."},{"name":"sourcesSearched","type":"array","title":"Sources searched","description":"Summary records: the sources asked."},{"name":"sourceTotals","type":"object","title":"Hits per source","description":"Summary records: total matches each source reported (null when unknown or failed)."},{"name":"duplicatesSkipped","type":"integer","title":"Duplicates skipped","description":"Summary records: papers skipped because an earlier query of the run delivered them (not charged)."},{"name":"error","type":"object","title":"Error","description":"{ code, message, provider?, status? } when status is not ok. Codes set by the runtime: budget_exhausted, free_plan_limit, unmetered, aborted, charge_failed, record_too_large, invalid_record, dataset_push_failed; upstream codes: http_error (with the source's HTTP status), timeout, network, tls_error, invalid_json, too_large, rate_limit, server, client, invalid_response, not_found; invalid_input for an identifier that is not a DOI, arXiv id, PMID or PMCID."},{"name":"warnings","type":"array","title":"Warnings","description":"Notes about this record: sources that failed or were skipped, free-plan or budget limits, skipped duplicates."},{"name":"raw","type":"object","title":"Raw","description":"Each source's unmodified record, keyed by source (only with includeRaw)."}],"outputExample":{"input":"crispr gene editing","recordType":"paper","position":2,"title":"CRISPR-Cas9 system: A new-fangled dawn in gene editing","authors":["Darshana Gupta","Oindrila Bhattacharjee","Drishti Mandal"],"year":2019,"publishedDate":"2019-09","venue":"Life Sciences","publisher":"Elsevier BV","type":"review","doi":"10.1016/j.lfs.2019.116636","arxivId":null,"pmid":"31295471","pmcid":null,"openAlexId":null,"abstract":"Till date, only three techniques namely Zinc Finger Nuclease (ZFN), Transcription-Activator Like Effector Nucleases (TALEN) …","citationCount":299,"openAccess":null,"pdfUrl":null,"url":"https://linkinghub.elsevier.com/retrieve/pii/S0024320519305624","subjects":["Animals","CRISPR-Cas Systems","Gene Editing","Genome editing"],"language":"en","sources":["crossref","pubmed"],"status":"ok","charged":true,"chargedEvent":"paper","source":"crossref+pubmed+europepmc+arxiv","fetchedAt":"2026-10-14T10:00:00.000Z"},"faq":[{"question":"Which sources are searched?","answer":"Crossref (all disciplines, 170M+ DOI records), arXiv (preprints in physics, maths and computer science), PubMed (biomedical literature) and Europe PMC (life sciences, preprints and open-access full text). Results are merged: a paper found by several sources is one row, with the best fields from each (abstract from PubMed or arXiv, citation count from Crossref, open-access PDF from arXiv or Europe PMC). The `sources` field says where each paper was found."},{"question":"Can I look up papers I already know?","answer":"Yes: put DOIs, arXiv ids, PMIDs or PMCIDs in `ids` (or links to them). Each returns one record and costs one `paper` event; identifiers that are not found are free. DOIs outside Crossref (DataCite, e.g. Zenodo or arXiv DOIs) are resolved through doi.org."},{"question":"Do I get the full text?","answer":"No, the Actor returns metadata and abstracts. For open-access papers it gives the free PDF or full-text link (`pdfUrl`, `url`); pass those to a PDF or URL-to-markdown Actor for the text."}],"mcpExamplePrompt":"Find the 5 most relevant papers on \"crispr gene editing\" published since 2022 and list their titles, authors, journals, DOIs and citation counts.","related":["google-scholar-search","url-to-markdown-summary","pdf-ocr-markdown","google-search-results","google-news-search"],"urls":{"site":"https://www.sfoln.com/actors/academic-paper-search/","siteJson":"https://www.sfoln.com/actors/academic-paper-search.json","siteMarkdown":"https://www.sfoln.com/actors/academic-paper-search.md","runSync":"https://api.apify.com/v2/actors/sfoln~academic-paper-search/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~academic-paper-search/runs","mcp":"https://mcp.apify.com?tools=sfoln/academic-paper-search","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20Academic%20Paper%20Search%20%E2%80%93%20arXiv%2C%20PubMed%2C%20DOI%20(sfoln%2Facademic-paper-search)&body=Please%20publish%20academic-paper-search.%20What%20we%20plan%20to%20use%20it%20for%3A"},"publisher":{"name":"SFOLN LLC","apifyUsername":"sfoln","url":"https://www.sfoln.com","apifyProfile":"https://apify.com/sfoln","email":"contact@sfoln.com"},"generatedAt":"2026-10-22T04:28:58.477Z"}