Skip to main content
Academic Writing7 min read

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

CiteMe Editorial Team

Academic Research Team

(Updated )
Share

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

APA 7 — software with Zenodo DOI
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
APA 7 — widely-used package (no DOI, canonical URL)
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

MLA 9 — software
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

Chicago author-date — software
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

IEEE — software reference entry
[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

Vancouver — software
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?

Find source records, inspect their origin, and format citations in the style you need.

Related Articles