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?

Generate accurate citations from real academic databases. No AI hallucinations.

Related Articles