Edu-Stats: Academic Statistics Parser (v.2.0.0)

Official academic profiles do not provide APIs to show the relevant statistics on the other websites (e.g. the personal websites).
Edu-Stats is a parser to extract the scholar details of academicians such as h-Index, citations, etc.
These extracted data can be used and presented on the personal websites by an embedded JavaScript.
This code is developed by Kaveh Bakhtiyari.

This code is open-source, and it can be used for non-commercial purposes.

The end-user of this code should read the terms and conditions of the host provider (e.g. Google Scholar, Scopus, etc.), which he/she is trying to scrap its data, and they should follow their terms and coditions.
The developer(s) of this code do(es) not take any resposibility for misusing this code.
The end-users should monitor their requests to the servers in order to prevent any unnecessary traffic/attack on the target websites.
Access to the hosted JavaScript on this website is restricted to prevent generation of high traffic on the target websites.

Known Issues

Version History

v2.0.0: 13 February 2018
Mendeley parser added.
Scopus function and variables rewritten.

v1.9.1: 24 April 2017
JSON output is added.

v1.9: 20 April 2017
PHP version is developed.
ResearchGate parser is removed.
Google Scholar bug is fixed.
Scopus bug is fixed.

v1.8: 8 April 2015
ResearchGate bug is fixed.

v1.7: 11 January 2015
ResearcherID parser is added.

v1.6: 10 January 2015
SSL (HTTPS) bug is fixed on Google Scholar.

v1.5: 6 January 2015
Prefix attribute is added for multi-extraction.

v1.0: 2 January 2015
Initial version

Edu-Stats Supported Profiles


The script generator should be placed in the HEAD section of the HTML code as below:

<script src="edu-stats.php?google=<GOOGLE_PARAMETER> &scopus=<SCOPUS_PARAMETER> &reid=<ResearcherID_PARAMETER> &mendeley=<MENDELEY_PARAMETER> &prefix=<OPTIONAL_PREFIX> &output=<javascript|json> "></script>

The above code receives 3 optional query string parameters as below.
At least one of the parameters should be set.

Parameter Description Sample
google (optional) Google Scholar Profile ID
In your profile URL (, "user" value is the Profile ID.
scopus (optional) Scopus Author ID
In your profile URL (, "authorId" value is the Profile ID.
reid (optional) ResearcherID
In your profile URL (, the last part of the URL is the id.
mendeley (optional) Mendeley
In your profile URL (, the name part of the URL is the id. Make sure that the profile is publicly accessible in the privacy settings.
prefix (optional) A prefix to be used for variables to differentiate different scholars.
10 alphanumeric characters.
output (optional) javascript (Default)
This parameter will generate the output in javascript variables.
This parameter generates JSON output for easier parsing, which is recommended for AJAX functions.
JSON does not support prefix parameter.

Variables & Demo

Please fill the following fields to test the demo version. At least one of the following fields should be completed.

Google Scholar ID: Scopus ID: ResearcherID ID: Mendeley ID:

In JavaScript output, once the script has been included, each item is stored in a seperate variable as below, and they are accessible via JavaScript.

Variable Value
Google_ID n/a
Google_URL n/a
Google_Citations n/a
Google_hIndex n/a
Google_i10Index n/a
Scopus_ID n/a
Scopus_URL n/a
Scopus_Documents n/a
Scopus_hIndex n/a
Scopus_CoAuthors n/a
Scopus_CitationDocuments n/a
ResearcherID_ID n/a
ResearcherID_URL n/a
ResearcherID_Documents n/a
ResearcherID_articleCountForMetrics n/a
ResearcherID_Citations n/a
ResearcherID_AverageCitations n/a
ResearcherID_hIndex n/a
ResearcherID_lastUpdatedString n/a
Mendeley_ID n/a
Mendeley_URL n/a
Mendeley_Media n/a
Mendeley_hIndex n/a
Mendeley_Citations n/a
Mendeley_Readers n/a
Mendeley_Views n/a

JSON output:
"output" parameter generates JSON output which is suitable for parsing and AJAX functions. A sample JSON output is shown below:


For instance, in order to print the Google Scholar h-Index on a page, it is only required to write its variable on a page.

document.write (Google_hIndex);

If "prefix" is set, its value will be added to the begining of all variable names. This can be set to prevent variable similarities (duplicated names) in JavaScript output, specially, when there are multiple profile calls.
For instance, if the prefix has been set to "123abc", then Google h-Index variable would be changed as follows:

document.write (123abc_Google_hIndex);

Source Code

You can find the source code in Github repository at

PHP edition:
In order to use the PHP edition, make sure to enable "php_curl.dll" and "php_openssl.dll" extensions in php.ini.

Copyright © 2018. Kaveh Bakhtiyari. All rights reserved.