Skip to content
APAFly

Convert a DOI to an APA 7 reference

Paste a DOI and get the APA 7 reference from Crossref’s data, ready to review and copy. Free, no sign-up.

Only the DOI is sent to Crossref to look up the details; the reference is created in your browser. We do not store your lookups.

References formatted with citeproc-js and Citation Style Language styles: (c) Frank Bennett — citeproc-js implements the Citation Style Language — https://citationstyles.org/ · Credits and licenses

What it does

  • Looks up a journal article or book in Crossref from its DOI.
  • Accepts the bare DOI, a doi.org link or the publisher’s link when it contains the DOI.
  • Shows you the details it found and the adjustments it made, so you can review and correct them before copying.
  • Creates the APA 7 reference and in-text citations with the same engine as the citation generator.

How it works

  1. Paste a DOI or a link and press “Look up”. Only the DOI is sent to Crossref.
  2. Review the details: anything you change is marked “edited”.
  3. Copy the reference and the citations.

Limits

  • It only looks up Crossref. DataCite DOIs (many datasets and repositories) are not looked up yet: you can fill them in by hand.
  • For now it converts journal articles and books; chapters, edited books, proceedings and other types will come later.
  • Each publisher supplies its own data and it can contain errors (capitalized titles, incomplete names, online-version dates). Always review it.
  • A link without a DOI is not visited: for security we do not fetch web pages from our servers. We fill in the URL and you complete the rest.

Frequently asked questions

Where do I find the DOI?

It usually appears on the first page of the article, on the journal’s page or in the database where you found it. It starts with “10.”.

Do I write “DOI:” before the number?

No. APA 7 formats the DOI as a link: https://doi.org/10.xxxx/xxxxx, with no “DOI:” label and no “Retrieved from”.

What is sent?

Only the DOI, to Crossref’s public API. Nothing else is sent and your lookup is not stored.

Related guide