Skip to main content
Glama

Citation Generator API: DOI to APA, MLA, Chicago & BibTeX

citation_formatter
Read-only

Convert DOIs, ISBNs, PMIDs, arXiv IDs, titles or messy reference strings into clean APA 7, MLA 9, Chicago, Harvard, IEEE, Vancouver, BibTeX and RIS citations, and export a ready bibliography or .bib/.ris file.

Instructions

Convert DOIs, ISBNs, PMIDs, arXiv IDs, titles or messy reference strings into checked citations in APA 7, MLA 9, Chicago, Harvard, IEEE, Vancouver, BibTeX and RIS. Unlike reference_checker, it formats rather than audits: unresolved items are listed, not diagnosed as fake or retracted. Use when you need a clean bibliography or .bib/.ris export. Do not use to find papers (use literature_search) or to prove references are genuine (use reference_checker first). Parameters: pass references (one per line) or paste a whole list or .bib/.ris contents in text. All styles are one price, so request every style you might need in one call rather than calling again. Text lookups below minMatchScore stay unresolved; DOIs and IDs resolve exactly. Only formatted citations are billed. Returns per item: summary, status, one field per style (apa, mla, ...), inText, bibtex, ris, doi, title, authors, year, containerTitle; combined bibliography files stay in the run's Apify key-value store.

Behavior: read-only; runs the Apify Actor pandadad0214/citation-formatter (https://apify.com/pandadad0214/citation-formatter) on your own Apify account. Price: $0.003 per citation formatted. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxReferences when you leave it unset, so it also limits what is billed; setting maxReferences higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.

Input Schema

NameRequiredDescriptionDefault
textNoPaste a reference list or file contents. Optional. Paste a whole bibliography (numbered, one per line, or blank-line separated), or the contents of a .bib (BibTeX) or .ris file. BibTeX/RIS entries are converted directly without a lookup.
stylesNoCitation styles. Styles to output. All six are included in the price, so pick as many as you like.
includeRisNoRIS export. Add an RIS entry per reference and a combined .ris file (Zotero, Mendeley, EndNote, Rayyan). Default: on.
referencesNoReferences (one per line). DOIs, DOI links, ISBNs, arXiv IDs, PMIDs ("PMID: 123"), paper titles, or messy reference strings in any style. Each one is looked up and formatted.
contactEmailNoContact email for Crossref (optional). Optional. Sent to Crossref and NCBI as the contact so requests use their faster 'polite' pools. Never shared elsewhere.
includeBibtexNoBibTeX export. Add a BibTeX entry per reference and a combined .bib file (LaTeX, Overleaf, JabRef). Default: on.
maxReferencesNoMax references per run. Safety cap. Only formatted citations are billed. Whole number, 1 to 20,000 references; default 1,000.
minMatchScoreNoMinimum match score for text lookups (50-100). How closely a search result must match a free-text reference (title, authors, year) to be used. DOIs and ISBNs are exact lookups and are not affected. Whole number, 50 to 100; default 80.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
fixAllCapsTitlesNoFix ALL-CAPS titles. Some registry records store titles in capitals. Convert them to sentence case. Default: on.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).
sentenceCaseTitlesNoSentence-case article and book titles. APA, Harvard, IEEE and Vancouver use sentence case ("Deep residual learning for image recognition"). Registries often store Title Case, so we convert it; acronyms like CVPR, mRNA and COVID-19 are kept. MLA and Chicago re-capitalise automatically. Check proper nouns (names, places) in converted titles. Default: on.
listUnresolvedInFilesNoList unresolved references in the bibliography files. Append references we could not find to the end of each bibliography file, marked [UNRESOLVED - check manually], so nothing silently disappears. They are never charged. Default: on.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the read-only/open-world profile; the description adds substantial context beyond that: price ($0.003 per formatted citation), what is not billed (unresolved items, empty runs), a per-call spending cap via run_max_charge_usd, expected latency, and that bibliography files are written to the run's Apify key-value store rather than returned inline. It also discloses the minMatchScore resolution rule (exact for DOIs/IDs, fuzzy for text).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Structure is excellent — purpose, differentiation, cost, latency, return shape — and the routing guidance is front-loaded. There is some avoidable repetition: 'Only formatted citations are billed' appears twice, and 'all styles are one price' duplicates the styles field text, which costs it the top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, zero-required-parameter actor wrapper with no output schema, the description is thorough: it describes the return envelope ({actor, count, items}), lists per-item fields, notes truncation behaviour and structuredContent, and covers pricing, caps, and timeouts. An agent has everything needed to size, budget, and interpret a call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns extra by explaining cross-parameter interaction that the schema only hints at — run_max_items also limits what is billed and 'fills maxReferences when you leave it unset, so setting maxReferences higher can bill more than is returned'. It also states run_timeout_secs should be raised after timeout errors. Minor gap: it does not restate what minMatchScore or listUnresolvedInFiles do beyond the field docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb (Convert) and enumerates the accepted inputs (DOIs, ISBNs, PMIDs, arXiv IDs, titles, messy strings) and outputs (APA 7, MLA 9, Chicago, Harvard, IEEE, Vancouver, BibTeX, RIS). It explicitly distinguishes itself from reference_checker ('formats rather than audits') and literature_search, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives positive triggers ('Use when you need a clean bibliography or .bib/.ris export') and explicit exclusions with named alternatives ('Do not use to find papers (use literature_search) or to prove references are genuine (use reference_checker first)'). It also advises on call batching (request every style in one call) and on timeout recovery.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.