pybliometrics: Python-based API-Wrapper to access Scopus

pybliometrics is an easy to use Python library to pull, cache and extract data from the Scopus database.

>>> # Document-specific information
>>> from pybliometrics.scopus import AbstractRetrieval
>>> ab = AbstractRetrieval("10.1016/j.softx.2019.100263")
>>> ab.title
'pybliometrics: Scriptable bibliometrics using a Python interface to Scopus'
>>> ab.publicationName
>>> ab.authors
[Author(auid='57209617104', indexed_name='Rose M.E.', surname='Rose', given_name='Michael E.', affiliation=['60105007']),
Author(auid='7004212771', indexed_name='Kitchin J.R.', surname='Kitchin', given_name='John R.', affiliation=['60027950'])]
>>> # Author-specific information
>>> from pybliometrics.scopus import AuthorRetrieval
>>> au2 = AuthorRetrieval(ab.authors[1].auid)
>>> au2.h_index
>>> au1 = AuthorRetrieval(ab.authors[0].auid)
>>> au1.affiliation_current
>>> # Affiliation information
>>> from pybliometrics.scopus import ContentAffiliationRetrieval
>>> aff1 = ContentAffiliationRetrieval(au1.affiliation_current)
>>> aff1.affiliation_name
'Max Planck Institute for Innovation and Competition'


Install the stable version from PyPI:

pip install pybliometrics

or the development version from the GitHub repository (requires git on your system):

pip install git+git://

To access the Scopus database using pybliometrics, get an API key from On first usage, pybliometrics prompts you for authentication details and stores them in ~/.scopus/config.ini, where you can change it manually (see Configuration). If your institution subscribes to Scopus, you may need to be in your institution’s network or you need to have an InstToken, which can also be saved in the configuration. Non-subscribers only get limited access to two APIs.

See extended description and examples in the Examples section.


pybliometrics provides one class per Scopus API Access Point (see

scopus.AbstractRetrieval([identifier, …]) Class to represent the results from retrieval request from the Scopus Abstract API.
scopus.ContentAffiliationRetrieval(aff_id[, …]) Class to represent an Affiliation in Scopus.
scopus.AuthorRetrieval(author_id[, refresh]) Class to represent a Scopus Author query by the scopus-id.
scopus.AffiliationSearch(query[, refresh, …]) Class to perform a search for an affiliation.
scopus.AuthorSearch(query[, refresh, count, …]) Class to search a query, and retrieve a list of author IDs as results.
scopus.ScopusSearch(query[, refresh, …]) Class to perform a query against the Scopus Search API.
scopus.CitationOverview(eid, start[, end, …]) Class to represent the results from a Scopus Citation Overview.
scopus.SerialTitle(issn[, refresh, view]) Class to represent a Serial Title retrieval.


If pybliometrics helped you getting data for research, please cite our corresponding paper:

Citing the paper helps the development of pybliometrics, because it justifies funneling resources into the development. It also signals that you obtained data from Scopus in a transparent and replicable way.

Indices and tables