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(id='60105007', parent=None, type='parent', relationship='author',
 afdispname=None, preferred_name='Max Planck Institute for Innovation and Competition',
 parent_preferred_name=None, country_code='deu', country='Germany',
 address_part='Marstallplatz 1', city='Munich', state=None,
 postal_code='80539', org_domain=None, org_URL='')]
>>> # Affiliation information
>>> from pybliometrics.scopus import ContentAffiliationRetrieval
>>> aff1 = ContentAffiliationRetrieval(au1.affiliation_current[0].id)
>>> aff1.author_count


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+

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 more on that at

See extended description and examples in the Examples section.


pybliometrics provides one class per Scopus API Access Point (see

scopus.AbstractRetrieval([identifier, …]) Interaction with the Abstract Retrieval API.
scopus.AffiliationRetrieval(aff_id[, …]) Interaction with the Affiliation Retrieval API.
scopus.AffiliationSearch(query[, refresh, …]) Interaction with the Affiliation Search API.
scopus.AuthorRetrieval(author_id[, refresh, …]) Interaction with the Author Retrieval API.
scopus.AuthorSearch(query[, refresh, count, …]) Interaction with the Author Search API.
scopus.CitationOverview(eid, start[, end, …]) Interaction witht the Citation Overview API.
scopus.PlumXMetrics(identifier, id_type[, …]) Interaction with the PlumX Metrics API.
scopus.ScopusSearch(query[, refresh, …]) Interaction with the Scopus Search API.
scopus.SerialSearch(query[, refresh, view]) Interaction with the Serial Title API.
scopus.SerialTitle(issn[, refresh, view, years]) Interaction with the Serial Title API.
scopus.SubjectClassifications(query[, …]) Interaction with the Subject Classifications Scopus API.


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