SuperAPI AI Directory

openalex-db

Writing & research

View repository

Updated 10-15 16:44

About this skill

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():
    # Provide an email to use OpenAlex "Polite Pool" (recommended for better rate limits)
    client = OpenAlexClient(email="user@example.com")

    # Search for open-access works related to CRISPR
    works = client.search_works(
        search="CRISPR",
        filter_params={"is_oa": "true"},
    )

    print(f"Found {len(works)} works")
    if works:
        first = works[0]
        # Field names depend on OpenAlex response schema
        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.