How to Cite Software in MLA 9, APA 7, Chicago & IEEE
Cite GitHub code, Zenodo releases, PyPI & CRAN packages in MLA 9, APA 7, Chicago & IEEE — with worked examples and how to get a Zenodo DOI.
CiteMe Editorial Team
Academic Research Team
Why software citation matters
Scientific software is infrastructure. When your paper uses pandas, scikit-learn, ggplot2, BLAST, AlphaFold, or a one-off script from a colleague's GitHub, those tools shape the result — and deserve credit the same way a dataset or paper does. Major journals (Nature, PNAS, JOSS, Bioinformatics) now require software citation; funders (NSF, Wellcome, Horizon Europe) track software products as first-class research outputs.
Citing software well solves three problems at once: (1) credits the creators, whose career depends on citation counts; (2) lets readers reproduce your work at the exact version you used; (3) tracks re-use so tool maintainers can justify continued funding.
How to cite software in APA 7th edition
APA 7 §10.10 template: Author, A. A., & Author, B. B. (Year). Title of software (Version X.X) [Computer software]. Publisher or Repository. https://doi.org/xxxxx
Last, A. B., & Other, C. D. (2024). Title of the tool (Version 2.1.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.1234567
pandas development team. (2024). pandas (Version 2.2.0) [Computer software]. https://pandas.pydata.org
- "[Computer software]" bracket label is required by APA 7
- Include the version you used — "latest" is not reproducible (best practice, not an APA 7 rule — but journal editors and peer reviewers ask for it)
- Prefer a Zenodo or Software Heritage DOI when available; fall back to the canonical project URL
- For widely-used packages (pandas, numpy, scikit-learn), you can use the project team name as author
How to cite software in MLA 9th edition
Last, Firstname, and Firstname Other. Title of the Tool. Version 2.1.0, Zenodo, 2024, doi.org/10.5281/zenodo.1234567.
MLA 9 treats software like any other source: author → title → container (repository or website) → version → publication date → DOI or URL. Titles are italicized (unlike dataset titles, which are in quotation marks).
How to cite software in Chicago 17th edition
Last, Firstname, and Firstname Other. 2024. Title of the Tool. Version 2.1.0. Zenodo. https://doi.org/10.5281/zenodo.1234567.
Chicago style recognizes software as a distinct source type in §14.256. Italicize the software name. The notes-bibliography form uses the same structure in the bibliography; footnotes flatten author-year-title into a single line.
How to cite software in IEEE
[7] A. Last and B. Other, "Title of the tool," version 2.1.0, Zenodo, 2024, doi: 10.5281/zenodo.1234567.
IEEE numbered format for software follows the same pattern as datasets. Common in CS/EE papers that cite libraries, benchmarks, and research prototypes.
How to cite software in Vancouver
Last A, Other B. Title of the tool (Version 2.1.0) [Computer software]. Zenodo; 2024 [cited 2024 Mar 15]. Available from: https://doi.org/10.5281/zenodo.1234567
Vancouver-style biomedical papers increasingly cite bioinformatics tools (BLAST, Samtools, DESeq2). Include the version — results often depend on specific algorithm revisions.
Getting a citable DOI for your own code (Zenodo + GitHub)
If you're authoring software that others will cite, give them something durable to cite. The zero-cost path is Zenodo + GitHub integration: link your GitHub repo to Zenodo via the Zenodo settings page, and each GitHub release auto-triggers a Zenodo snapshot with its own DOI. Software Heritage provides a complementary SWHID for source-level permanence.
- Add a CITATION.cff file to your GitHub repo — GitHub shows a "Cite this repository" button and lets users copy BibTeX or APA format
- Zenodo releases get both a version DOI and a concept DOI — pin the version DOI in your README
- For R packages, CRAN auto-generates a citation; see citation("pkgname") in R
- For Python packages, PyPI does NOT issue DOIs — use Zenodo via GitHub for the citable archive
Common mistakes when citing software
- Citing a paper about the software instead of the software itself — cite both if you used both, but never use the paper as a substitute for the version-specific software citation
- Treating a GitHub URL as a persistent identifier — GitHub repos can be deleted, renamed, or force-pushed. Always prefer a Zenodo DOI or Software Heritage ID
- Missing the "[Computer software]" label in APA
- Forgetting the version number — "numpy" and "numpy 2.1.0" are not the same reference
- Citing only the lead maintainer when a project has co-maintainers — check the Zenodo / CITATION.cff author list, not the GitHub username of the repo owner
Ready to cite your sources?
Generate accurate citations from real academic databases. No AI hallucinations.
Related Articles
How to Avoid Plagiarism: 7 Essential Tips
Practical strategies to ensure your academic work is original and properly cited. Learn paraphrasing techniques, citation best practices, and common mistakes to avoid.
How to Cite AI-Generated Content (ChatGPT, Claude, etc.)
Guidelines for citing AI tools like ChatGPT and Claude in your academic papers. Covers APA, MLA, Chicago formatting rules with real citation examples.
How to Paraphrase: Techniques to Avoid Plagiarism
Master the art of paraphrasing with practical techniques. Learn when to paraphrase vs quote and how to cite paraphrased content correctly.