| name | openalex-db |
| description | Access the OpenAlex database (240M+ scholarly works) for bibliometric analysis, literature search, and citation tracking; use when you need to query works/authors/institutions/concepts without an API key. |
| license | MIT |
| author | AIPOCH |
Source: https://github.com/aipoch/medical-research-skills
When to Use
- You need to search scholarly works by keyword and filter by properties (e.g., open access, year, venue).
- You want to look up authors and analyze their publication output and citation impact.
- You need to retrieve and compare institutions (e.g., affiliation-based exploration or benchmarking).
- You want to explore concepts/topics and track trends across time.
- You need lightweight bibliometric workflows (citation tracking, publication trends) without managing API keys.
Key Features
- Query OpenAlex entities: works, authors, institutions, concepts.
- Keyword search with filtering support.
- Designed for bibliometric tasks such as citation tracking and trend exploration.
- No API key required; supports providing an email for OpenAlex Polite Pool (higher rate limits).
- Simple Python client wrapper via
scripts/openalex_client.py.
Dependencies
requests (version not pinned; install via uv pip install requests)
Example Usage
from scripts.openalex_client import OpenAlexClient
def main():
client = OpenAlexClient(email="user@example.com")
works = client.search_works(
search="CRISPR",
filter_params={"is_oa": "true"},
)
print(f"Found {len(works)} works")
if works:
first = works[0]
print("First result:")
print(f" id: {first.get('id')}")
print(f" title: {first.get('title')}")
print(f" publication_year: {first.get('publication_year')}")
print(f" cited_by_count: {first.get('cited_by_count')}")
if __name__ == "__main__":
main()
Implementation Details
- Client entry point:
scripts/openalex_client.py provides the main API wrapper (OpenAlexClient).
- Polite Pool: Supplying an
email is recommended to receive higher rate limits from OpenAlex.
- Search + filters: Work queries accept a free-text
search string plus filter_params (key/value pairs) that map to OpenAlex API filters (e.g., {"is_oa": "true"}).
- Pagination and schema: For supported filters, pagination behavior, and response fields, refer to
references/api_guide.md.