Skip to content

Repository files navigation

#Pulls "Unstructured" citations from a single DOI API call import requests

def get_unstructured_citations_for_doi(doi: str, timeout: int = 30) -> list[str]: """Return citation entries containing unstructured content from Crossref /works for a DOI.""" url = f"https://api.crossref.org/works/{doi}" response = requests.get(url, timeout=timeout) response.raise_for_status()

message = response.json().get("message", {})
references = message.get("reference", [])

unstructured_citations = []
for ref in references:
    if isinstance(ref, dict) and "unstructured" in ref:
        unstructured_citations.append(ref["unstructured"])

return unstructured_citations

if name == "main": doi = input("Enter DOI: ").strip() citations = get_unstructured_citations_for_doi(doi)

if citations:
    print(f'Found {len(citations)} unstructured citation(s) for DOI: {doi}\n')
    for index, citation in enumerate(citations, start=1):
        print(f"{index}. {citation}")
else:
    print(f'No unstructured citations found for DOI: {doi}')

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages