habanero
Low Level Client for Crossref Search API
What it is and what it does
habanero wraps Crossref's HTTP search API into a Python client, letting you query bibliographic metadata—article titles, authors, publication dates, DOIs—without building HTTP requests by hand. It's designed as a low-level interface, meaning it stays close to the API's structure rather than adding high-level abstractions; you work directly with the data Crossref returns.
The package depends on httpx2 for HTTP transport, urllib3 as a fallback, tqdm for progress indication in bulk operations, and packaging for version handling. It supports Python 3.10 through 3.14 and has been in active development since 2015. An optional bibtexparser dependency (version 2.0.0b7 or later) is available for fixing bibtex-formatted citations via content negotiation, installed separately with the [bibtex] extra.
Use it for:
- Search Crossref's publication database by title, author, or DOI to retrieve structured metadata for research tools or literature review automation.
- Build a bibliographic index or reference management system that pulls live data from Crossref rather than maintaining a static database.
- Integrate publication metadata into a research workflow, such as fetching article details to populate a knowledge base or citation graph.
- Retrieve DOI metadata programmatically to validate or enrich citation data in academic publishing platforms.
- Batch-query Crossref for metadata on multiple publications, using tqdm progress tracking for long-running operations.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
habanero is a low-level Python client for the Crossref search API, enabling programmatic access to bibliographic metadata and publication data from Crossref's database.
Yes. habanero is actively maintained, has low install friction, carries no known vulnerabilities, and is licensed permissively under MIT. It's the natural choice if you need direct, low-level access to Crossref's search API from Python. Install it if you're building tools that query bibliographic data; skip it only if you need a higher-level abstraction or don't need Crossref's specific data.
Install
habanero on PyPI
pip
pip install habanerouv
uv add habaneropoetry
poetry add habaneroInstalling habanero
Before you install
Low friction installation with a pure-Python wheel. Actively maintained with a recent release; last commit 2026-07-31 and status marked active. Depends on four common libraries: httpx2, packaging, tqdm, and urllib3.
License in practice
MIT license (permissive). You can use, modify, and distribute habanero freely in commercial and private projects, with no warranty and minimal attribution requirements.
Quickstart
pip install habanero
from habanero import Crossref
cr = Crossref()
results = cr.works(query='python')
Requires Python 3.10 or later. API access requires an internet connection; consider including a mailto parameter in requests to join Crossref's polite pool for better rate limits.
Verify before relying
- Whether rate limiting behavior differs meaningfully between requests with and without a mailto parameter in practice.
- Performance characteristics when handling large result sets or concurrent requests.
- Whether the optional bibtexparser dependency is commonly needed or rarely used.
Package facts
| License | Copyright (C) 2025 Scott Chamberlain Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — httpx2, packaging, tqdm, urllib3 |
| Maintenance | actively maintained — 58 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 83,189/month — #14,096 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: habanero-2.9.2-py3-none-any.whl
Tags
More Bio-Informatics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
biopythonBiopython provides Python tools for…
unclear · top 5,000 on PyPI
firecrawl-pyClient library for the Firecrawl API that…
permissive · top 5,000 on PyPI
intervaltreeA self-balancing interval tree data structure…
permissive · top 5,000 on PyPI
albumentationsAlbumentations applies image transformations to…
permissive · top 5,000 on PyPI
PubChemPyPubChemPy is a Python wrapper around the…
permissive · top 5,000 on PyPI
pyzoteroPyzotero is a Python client library for the…
unclear · top 15,000 on PyPI
scholarlyscholarly retrieves author profiles,…
permissive · top 15,000 on PyPI
bibtexparserParses BibTeX files into Python data…
copyleft · top 5,000 on PyPI
pymarcpymarc reads, writes, and modifies MARC21…
unclear · top 15,000 on PyPI
lexisnexisapiProvides a Python interface to the LexisNexis…
permissive · top 15,000 on PyPI
isbnlibisbnlib validates, cleans, transforms, and…
copyleft · top 15,000 on PyPI
pystac-ext-scientificExtends PySTAC to add scientific publication…
permissive · top 5,000 on PyPI
wikipedia-mcpExposes Wikipedia search, article retrieval,…
permissive · top 15,000 on PyPI
pyalexPyAlex is a Python interface to the OpenAlex…
permissive · top 15,000 on PyPI
semanticscholarProvides a typed Python client for querying…
permissive · top 15,000 on PyPI