{"id":51583025,"url":"https://github.com/jonatasgrosman/findpapers","last_synced_at":"2026-07-30T08:00:33.884Z","repository":{"id":38885399,"uuid":"285716269","full_name":"jonatasgrosman/findpapers","owner":"jonatasgrosman","description":"Findpapers: A tool for helping researchers who are looking for related works","archived":false,"fork":false,"pushed_at":"2026-06-23T16:35:21.000Z","size":10824,"stargazers_count":384,"open_issues_count":8,"forks_count":49,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-07-25T07:34:26.099Z","etag":null,"topics":["academic","arxiv","bibtex","citation","crossref","ieee","literature-review","openalex","paper","pubmed","related-work","research","scholar","science","scopus","semantic-scholar","snowballing","systematic-mapping","systematic-review","web-of-science"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonatasgrosman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":null,"support":"support.gif","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["jonatasgrosman"]}},"created_at":"2020-08-07T02:18:35.000Z","updated_at":"2026-07-21T18:16:24.000Z","dependencies_parsed_at":"2024-02-05T18:54:22.594Z","dependency_job_id":null,"html_url":"https://github.com/jonatasgrosman/findpapers","commit_stats":{"total_commits":204,"total_committers":2,"mean_commits":102.0,"dds":0.07843137254901966,"last_synced_commit":"cb327e3452fc9cbd92abd6e9131e8cd2cef50242"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/jonatasgrosman/findpapers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasgrosman%2Ffindpapers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasgrosman%2Ffindpapers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasgrosman%2Ffindpapers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasgrosman%2Ffindpapers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonatasgrosman","download_url":"https://codeload.github.com/jonatasgrosman/findpapers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasgrosman%2Ffindpapers/sbom","scorecard":{"id":530139,"data":{"date":"2025-08-11","repo":{"name":"github.com/jonatasgrosman/findpapers","commit":"cb327e3452fc9cbd92abd6e9131e8cd2cef50242"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/jonatasgrosman/findpapers/publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/jonatasgrosman/findpapers/publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/jonatasgrosman/findpapers/publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/jonatasgrosman/findpapers/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/jonatasgrosman/findpapers/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/jonatasgrosman/findpapers/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/jonatasgrosman/findpapers/test.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/publish.yml:19","Warn: pipCommand not pinned by hash: .github/workflows/publish.yml:20","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:28","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"27 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2021-421 / GHSA-h4m5-qpfp-3mpv","Warn: Project is vulnerable to: PYSEC-2022-42986 / GHSA-43fp-rhv2-5gv8","Warn: Project is vulnerable to: PYSEC-2023-135 / GHSA-xqr8-7jwr-rhp7","Warn: Project is vulnerable to: PYSEC-2024-60 / GHSA-jjg7-2v4v-x38h","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: PYSEC-2021-66 / GHSA-g3rq-g295-4j3m","Warn: Project is vulnerable to: GHSA-h5c8-rqwp-cp95","Warn: Project is vulnerable to: GHSA-h75v-3vvj-5mfj","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: GHSA-55x5-fj6c-h6m8","Warn: Project is vulnerable to: PYSEC-2021-19 / GHSA-jq4v-f5q6-mjqq","Warn: Project is vulnerable to: PYSEC-2020-62 / GHSA-pgww-xf46-h92r","Warn: Project is vulnerable to: PYSEC-2022-230 / GHSA-wrxv-2j5q-m38w","Warn: Project is vulnerable to: PYSEC-2020-92 / GHSA-hj5v-574p-mj7c","Warn: Project is vulnerable to: PYSEC-2022-42969","Warn: Project is vulnerable to: PYSEC-2021-140 / GHSA-9w8r-397f-prfh","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: PYSEC-2021-141 / GHSA-pq64-v7f5-gqh8","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: GHSA-34jh-p97f-mpxf","Warn: Project is vulnerable to: PYSEC-2023-212 / GHSA-g4mx-q9vg-27p4","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2021-108 / GHSA-q2q7-5pp4-w6pg","Warn: Project is vulnerable to: PYSEC-2023-192 / GHSA-v845-jxx5-vc9f","Warn: Project is vulnerable to: GHSA-jfmj-5v4g-7637"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T05:29:35.220Z","repository_id":38885399,"created_at":"2025-08-20T05:29:35.220Z","updated_at":"2025-08-20T05:29:35.220Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36067204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academic","arxiv","bibtex","citation","crossref","ieee","literature-review","openalex","paper","pubmed","related-work","research","scholar","science","scopus","semantic-scholar","snowballing","systematic-mapping","systematic-review","web-of-science"],"created_at":"2026-07-11T08:00:23.469Z","updated_at":"2026-07-30T08:00:33.877Z","avatar_url":"https://github.com/jonatasgrosman.png","language":"Python","funding_links":["https://github.com/sponsors/jonatasgrosman"],"categories":["Python"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/jonatasgrosman/findpapers/main/logo.png\" alt=\"Findpapers Logo\" width=\"400\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/jonatasgrosman/findpapers/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/pypi/l/findpapers\" alt=\"PyPI - License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/findpapers\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/findpapers\" alt=\"PyPI\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e **WARNING:** A new release is currently being prepared. The `main` branch may change frequently until then. If something stops working, update the tool with `pip install --upgrade git+https://github.com/jonatasgrosman/findpapers.git` and check the latest version of the [documentation](https://github.com/jonatasgrosman/findpapers/tree/main/docs). If you find a bug, please [open an issue](https://github.com/jonatasgrosman/findpapers/issues).\n\nFindpapers is a Python library that gives researchers unified access to **hundreds of millions of academic papers** from different databases - all through a single query. Instead of searching the databases one by one, each with its own interface and query language, Findpapers lets you write one boolean expression and run it everywhere at once, automatically merging and deduplicating the results. It also fetches additional metadata (abstracts, keywords, citations) during search and snowballing, and can download PDFs with automatic URL resolution for major publishers. Whether you're doing a literature review, building a citation graph, or just looking for related work, Findpapers makes it easy to find the papers you need - no matter where they're published.\n\nFindpapers searches for papers through **arXiv**, **CrossRef**, **IEEE Xplore**, **OpenAlex**, **PubMed**, **Scopus**, **Semantic Scholar**, and **Web of Science** - together covering virtually every peer-reviewed paper, preprint, and conference proceeding published across all fields of science.\n\n## Key Features\n\n- **Massive coverage** - access hundreds of millions of papers across eight databases that together span every scientific discipline\n- **Multi-database search** - query all databases in parallel with one boolean search expression - no need to learn seven different query syntaxes\n- **Smart deduplication** - automatically merges duplicate papers found across different databases\n- **Paper enrichment** - automatically fetch additional metadata (abstracts, keywords, citations) during search and snowball\n- **PDF downloading** - download PDFs with automatic URL resolution for major publishers\n- **Citation snowballing** - build citation graphs by traversing references and citations (forward and backward)\n- **Flexible export** - save results as JSON, BibTeX, or CSV\n- **Filter codes** - restrict search terms to specific fields (title, abstract, keywords, author, source, affiliation)\n- **Parallel execution** - speed up searches and downloads using multiple worker threads\n\n## Requirements\n\n- Python 3.11+\n\n## Installation\n\n```bash\npip install git+https://github.com/jonatasgrosman/findpapers.git\n```\n\n## Quick Start\n\n```python\nimport findpapers\nimport datetime\n\nengine = findpapers.Engine()\n\n# Search for papers across all databases\nresult = engine.search(\n    \"[machine learning] AND [healthcare]\",\n    since=datetime.date(2022, 1, 1),\n)\n\n# Download PDFs\nengine.download(result.papers, \"./pdfs\")\n\n# Look up a single paper by DOI or landing-page URL\npaper = engine.get(\"10.1038/nature11804\")\n\n# Build a snowball result from seed papers\nresult = engine.snowball(paper, max_depth=1, direction=\"forward\")\n\n# Save results\nfindpapers.save_to_json(result, \"results.json\")\nfindpapers.save_to_bibtex(result.papers, \"references.bib\")\nfindpapers.save_to_json(result, \"snowball_result.json\")\n```\n\n## The Paper Object\n\nEvery paper retrieved by Findpapers (via `search()`, `get()`, or `snowball()`) is a `Paper` instance. Call `paper.to_dict()` to get a plain dictionary ready for JSON serialisation. Here is what a fully-populated paper looks like:\n\n```json\n{\n  \"title\": \"Attention Is All You Need\",\n  \"abstract\": \"The dominant sequence transduction models are based on complex recurrent or convolutional neural networks that include an encoder and a decoder. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely...\",\n  \"authors\": [\n    {\"name\": \"Vaswani, A.\", \"affiliation\": \"Google Brain\"},\n    {\"name\": \"Shazeer, N.\", \"affiliation\": \"Google Brain\"},\n    {\"name\": \"Parmar, N.\", \"affiliation\": \"Google Research\"}\n  ],\n  \"source\": {\n    \"title\": \"31st Conference on Neural Information Processing Systems\",\n    \"isbn\": null,\n    \"issn\": null,\n    \"publisher\": \"Curran Associates\",\n    \"source_type\": \"conference\"\n  },\n  \"publication_date\": \"2017-12-06\",\n  \"url\": \"https://arxiv.org/abs/1706.03762\",\n  \"pdf_url\": \"https://arxiv.org/pdf/1706.03762\",\n  \"doi\": \"10.48550/arXiv.1706.03762\",\n  \"citations\": 140000,\n  \"keywords\": [\"attention mechanism\", \"neural machine translation\", \"transformer\"],\n  \"comments\": null,\n  \"page_count\": 15,\n  \"page_range\": \"5998-6008\",\n  \"found_in\": [\"arxiv\", \"semantic_scholar\"],\n  \"paper_type\": \"inproceedings\",\n  \"fields_of_study\": [\"Computer Science\"],\n  \"subjects\": [\"Computation and Language\", \"Machine Learning\"],\n  \"language\": \"en\",\n  \"is_open_access\": true,\n  \"is_retracted\": false,\n  \"funders\": [\"Google Brain\"],\n  \"references\": [\"10.1162/neco.1997.9.8.1735\", \"10.3115/v1/d14-1179\"],\n  \"cited_by\": [\"10.18653/v1/2020.acl-main.703\", \"10.48550/arXiv.1810.04805\"]\n}\n```\n\nSee the [API Reference](https://github.com/jonatasgrosman/findpapers/blob/main/docs/api-reference.md) for the full list of fields and methods available on the `Paper` object and other classes.\n\n## Supported Databases\n\nThe table below summarizes each supported database - for full details on authentication, rate limits, and per-database quirks, see the [Databases](https://github.com/jonatasgrosman/findpapers/blob/main/docs/databases.md) documentation.\n\n| Database | Size (papers) | API Key | Coverage |\n|----------|------------|---------|----------|\n| [arXiv](https://arxiv.org) | 3M+ [¹](https://arxiv.org/stats/monthly_submissions) | Not required | Open-access preprints in physics, math, CS, biology, economics, and more |\n| [CrossRef](https://www.crossref.org) | 180M+ [²](https://www.crossref.org/about) | Not required | Authoritative DOI registry for scholarly works across all disciplines |\n| [IEEE Xplore](https://ieeexplore.ieee.org) | 7M+ [³](https://innovate.ieee.org/about-the-ieee-xplore-digital-library) | Required | Journals, conferences, and standards in electrical engineering and CS |\n| [OpenAlex](https://openalex.org) | 480M+ [⁴](https://openalex.org) | Optional | The largest open catalog of scholarly works across all disciplines |\n| [PubMed](https://pubmed.ncbi.nlm.nih.gov) | 40M+ [⁵](https://pubmed.ncbi.nlm.nih.gov/about/) | Optional | Biomedical and life sciences literature (MEDLINE, PMC, and more) |\n| [Scopus](https://www.scopus.com) | 100M+ [⁶](https://www.elsevier.com/products/scopus) | Required | Peer-reviewed literature in science, technology, medicine, social sciences, and humanities |\n| [Semantic Scholar](https://www.semanticscholar.org) | 214M+ [⁷](https://www.semanticscholar.org/product/api) | Optional | AI-powered academic graph covering all fields of science |\n| [Web of Science](https://www.webofscience.com) | 240M+ [⁸](https://clarivate.libguides.com/librarianresources/coverage) | Required | Multidisciplinary curated index of peer-reviewed literature with citation data |\n\n\n\u003e **Every API key from the databases listed above can be obtained at no cost** - just create an account on each provider's website. We strongly recommend getting all of them before using Findpapers, as they unlock additional databases (IEEE, Scopus, Web of Science) and dramatically improve rate limits and reliability on the others (OpenAlex, PubMed, Semantic Scholar). See [Databases](https://github.com/jonatasgrosman/findpapers/blob/main/docs/databases.md) for more details on how to get these API keys, and [Configuration](https://github.com/jonatasgrosman/findpapers/blob/main/docs/configuration.md) for how to set them up.\n\n## Documentation\n\n| Document | Description |\n|----------|-------------|\n| [Databases](https://github.com/jonatasgrosman/findpapers/blob/main/docs/databases.md) | Supported databases, authentication, and per-database details |\n| [Query Syntax](https://github.com/jonatasgrosman/findpapers/blob/main/docs/query-syntax.md) | How to write search queries, boolean operators, wildcards, and filter codes |\n| [Configuration](https://github.com/jonatasgrosman/findpapers/blob/main/docs/configuration.md) | Environment variables, proxy, SSL, and API keys |\n| [Search](https://github.com/jonatasgrosman/findpapers/blob/main/docs/search.md) | Multi-database search with boolean queries |\n| [Download](https://github.com/jonatasgrosman/findpapers/blob/main/docs/download.md) | Download PDFs for papers |\n| [Snowball](https://github.com/jonatasgrosman/findpapers/blob/main/docs/snowball.md) | Build citation graphs via forward and backward snowballing |\n| [Get](https://github.com/jonatasgrosman/findpapers/blob/main/docs/get.md) | Look up a single paper |\n| [Save/Load](https://github.com/jonatasgrosman/findpapers/blob/main/docs/save-load.md) | JSON, BibTeX, and CSV persistence details |\n| [API Reference](https://github.com/jonatasgrosman/findpapers/blob/main/docs/api-reference.md) | Public classes, functions, enums, and exceptions |\n\n## Want to help?\n\nSee the [contribution guidelines](https://github.com/jonatasgrosman/findpapers/blob/main/CONTRIBUTING.md) if you'd like to contribute to the project.\nPlease follow our [Code of Conduct](https://github.com/jonatasgrosman/findpapers/blob/main/CODE_OF_CONDUCT.md). You don't need to know how to code to contribute, even improving documentation is a valuable contribution.\n\nIf this project has been useful for you, please share it with your friends and give us a star on GitHub to help others discover it. You can also [sponsor me](https://github.com/sponsors/jonatasgrosman) to support the development of Findpapers.\n\n![Support the project by starring and sponsoring](https://raw.githubusercontent.com/jonatasgrosman/findpapers/main/support.gif)\n\n## Citation\n\nIf you use Findpapers in your research, please cite it:\n\n```bibtex\n@misc{grosman2020findpapers,\n  title={{Findpapers: A tool for helping researchers who are looking for related works}},\n  author={Grosman, Jonatas},\n  howpublished={\\url{https://github.com/jonatasgrosman/findpapers}},\n  year={2020}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonatasgrosman%2Ffindpapers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonatasgrosman%2Ffindpapers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonatasgrosman%2Ffindpapers/lists"}