Discover/journalranking API
live

journalranking APIjournalranking.org

Access all 1,635 ABS Academic Journal Guide 2024 entries. Filter by field, ranking level, or keyword. Returns ISSN, publisher, and AJG rankings for 2024, 2021, and 2018.

This API takes change requests — .
Endpoints
2
Updated
5d ago

What is the journalranking API?

The journalranking.org API exposes all 1,635 entries from the ABS Academic Journal Guide (AJG) 2024 database across two endpoints. The get_all_entries endpoint returns every journal record at once, while search_entries supports filtering by field of study, AJG ranking level, and keyword. Each record includes ISSN, journal title, publisher, field, and AJG scores for 2024, 2021, and 2018, making it straightforward to query changes in ranking across editions.

This call costs2 credits / call— charged only on success
Try it

No input parameters required.

api.parse.bot/scraper/4dea2416-56ea-4e00-8c00-7292b9245234/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/4dea2416-56ea-4e00-8c00-7292b9245234/get_all_entries' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace journalranking-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""
ABS Journal Ranking Database API Client

Access the complete ABS (Academic Journal Guide) Journal Ranking 2024 database
with 1,635 journal entries. Search and filter by keyword, field, and ranking level.

Get your API key from: https://parse.bot/settings
"""

import os
import requests
from typing import Optional, Dict, Any, List


class ParseClient:
    """Client for interacting with the ABS Journal Ranking Database API."""

    def __init__(self, api_key: Optional[str] = None):
        """
        Initialize the Parse API client.

        Args:
            api_key: API key for authentication. If not provided, reads from PARSE_API_KEY env var.
        """
        self.base_url = "https://api.parse.bot"
        self.scraper_id = "4dea2416-56ea-4e00-8c00-7292b9245234"
        self.api_key = api_key or os.getenv("PARSE_API_KEY")

        if not self.api_key:
            raise ValueError(
                "API key not provided. Set PARSE_API_KEY environment variable or pass api_key parameter."
            )

    def _call(
        self,
        endpoint: str,
        method: str = "POST",
        **params,
    ) -> Dict[str, Any]:
        """
        Make an API call to the Parse API.

        Args:
            endpoint: The endpoint name (e.g., 'get_all_entries')
            method: HTTP method ('GET' or 'POST')
            **params: Query/payload parameters

        Returns:
            Response JSON as dictionary

        Raises:
            requests.exceptions.RequestException: If the API call fails
        """
        url = f"{self.base_url}/scraper/{self.scraper_id}/{endpoint}"
        headers = {
            "X-API-Key": self.api_key,
            "Content-Type": "application/json",
        }

        try:
            if method == "GET":
                response = requests.get(url, headers=headers, params=params)
            elif method == "POST":
                response = requests.post(url, headers=headers, json=params)
            else:
                raise ValueError(f"Unsupported HTTP method: {method}")

            response.raise_for_status()
            return response.json()
        except requests.exceptions.RequestException as e:
            print(f"API Error: {e}")
            raise

    def get_all_entries(self) -> Dict[str, Any]:
        """
        Retrieve all 1,635 entries in the ABS Journal Ranking 2024 database.

        Each entry includes ISSN, field of study, journal title, publisher,
        and AJG rankings for 2024, 2021, and 2018.

        Returns:
            Dictionary containing total count and list of journal entries
        """
        return self._call("get_all_entries", method="GET")

    def search_entries(
        self,
        query: Optional[str] = None,
        field: Optional[str] = None,
        ranking: Optional[str] = None,
        page: int = 1,
        limit: int = 50,
    ) -> Dict[str, Any]:
        """
        Search and filter ABS Journal Ranking entries.

        Args:
            query: Search keyword to match against journal title, publisher, or ISSN
            field: Filter by field of study (e.g., 'ACCOUNT', 'FINANCE', 'MKT')
            ranking: Filter by AJG 2024 ranking level ('1', '2', '3', '4', '4*')
            page: Page number for pagination (1-based, default: 1)
            limit: Number of results per page, 1-1000 (default: 50)

        Returns:
            Dictionary containing total count, page info, and paginated entries
        """
        params = {
            "page": page,
            "limit": limit,
        }

        if query is not None:
            params["query"] = query
        if field is not None:
            params["field"] = field
        if ranking is not None:
            params["ranking"] = ranking

        return self._call("search_entries", method="GET", **params)


def print_journal_entry(entry: Dict[str, str]) -> None:
    """Pretty print a single journal entry."""
    print(f"  Title: {entry['title']}")
    print(f"  ISSN: {entry['issn']}")
    print(f"  Field: {entry['field']}")
    print(f"  Publisher: {entry['publisher']}")
    print(f"  AJG 2024: {entry['ajg2024']} | 2021: {entry['ajg2021']} | 2018: {entry['ajg2018']}")
    print()


if __name__ == "__main__":
    # Initialize the client
    client = ParseClient()

    print("=" * 80)
    print("ABS Journal Ranking Database - Practical Usage Example")
    print("=" * 80)
    print()

    # Use Case 1: Find top-tier accounting journals
    print("📊 Use Case 1: Finding Top-Tier Accounting Journals (Rank 4*)")
    print("-" * 80)
    accounting_results = client.search_entries(
        field="ACCOUNT",
        ranking="4*",
        limit=10,
    )

    print(f"Found {accounting_results['total']} 4* ranked accounting journals")
    print(f"Showing page {accounting_results['page']} ({len(accounting_results['entries'])} results)\n")

    for entry in accounting_results["entries"]:
        print_journal_entry(entry)

    # Use Case 2: Search for specific journals by keyword
    print("🔍 Use Case 2: Searching for 'Management' Journals")
    print("-" * 80)
    management_results = client.search_entries(
        query="Management",
        limit=5,
    )

    print(f"Found {management_results['total']} journals matching 'Management'\n")

    # Collect rankings distribution across pages
    ranking_distribution = {}
    for entry in management_results["entries"]:
        ranking = entry["ajg2024"]
        ranking_distribution[ranking] = ranking_distribution.get(ranking, 0) + 1
        print_journal_entry(entry)

    print(f"Ranking distribution for 'Management' journals on this page:")
    for ranking, count in sorted(ranking_distribution.items()):
        print(f"  {ranking}: {count} journal(s)")
    print()

    # Use Case 3: Analyze journals in specific field (Finance)
    print("💰 Use Case 3: Finance Field Analysis")
    print("-" * 80)
    finance_results = client.search_entries(
        field="FINANCE",
        limit=15,
    )

    print(f"Total finance journals in database: {finance_results['total']}\n")

    # Analyze rankings
    rankings_count = {}
    for entry in finance_results["entries"]:
        ranking = entry["ajg2024"]
        rankings_count[ranking] = rankings_count.get(ranking, 0) + 1

    print("Top Finance Journals (from current page):")
    for entry in finance_results["entries"]:
        if entry["ajg2024"] in ["4*", "4"]:
            print(f"  • {entry['title']} ({entry['ajg2024']})")
    print()

    # Use Case 4: Compare journals across different ranking levels
    print("📈 Use Case 4: Comparing Journals Across Ranking Levels")
    print("-" * 80)

    ranking_levels = ["4*", "4", "3", "2", "1"]
    samples_per_level = {}

    for level in ranking_levels:
        result = client.search_entries(ranking=level, limit=3)
        samples_per_level[level] = result["entries"]
        print(f"\nRanking Level {level} (showing 3 of {result['total']} total):")
        for entry in result["entries"]:
            print(f"  • {entry['title'][:50]}... by {entry['publisher']}")

    print()
    print("=" * 80)
    print("✅ Usage examples completed successfully!")
    print("=" * 80)
All endpoints · 2 totalmissing one? ·

Retrieve all 1,635 entries in the ABS Journal Ranking 2024 database. Each entry includes ISSN, field of study, journal title, publisher, and AJG rankings for 2024, 2021, and 2018.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "total": "integer",
    "entries": "array of journal entry objects with issn, field, title, publisher, ajg2024, ajg2021, ajg2018"
  },
  "sample": {
    "total": 1635,
    "entries": [
      {
        "issn": "1558-7967",
        "field": "ACCOUNT",
        "title": "Accounting Review",
        "ajg2018": "4*",
        "ajg2021": "4*",
        "ajg2024": "4*",
        "publisher": "American Accounting Association"
      }
    ]
  }
}

About the journalranking API

What the API Returns

Both endpoints return the same journal entry shape: issn, title, publisher, field, ajg2024, ajg2021, and ajg2018. The three AJG fields let you compare how a journal's ranking has shifted across three editions of the Academic Journal Guide. Ranking values are the AJG scale: 1, 2, 3, 4, and 4*.

get_all_entries

This endpoint takes no inputs and returns all 1,635 records in a single response as an entries array alongside a total count. It is the right choice when you need to load the full dataset — for example, to build a local index or perform bulk analysis across all fields.

search_entries

search_entries accepts up to four optional parameters: query (case-insensitive match against title, publisher, or ISSN), field (one of: ACCOUNT, BUS HIST & ECON HIST, ECON, ENT-SBM, ETHICS-CSR-MAN), ranking (one AJG 2024 level), and page/limit for pagination (limit up to 1,000 per page). Parameters can be combined — for instance, filtering for field=ECON and ranking=4* returns only top-tier economics journals.

Coverage Notes

The database reflects the Chartered Association of Business Schools' Academic Journal Guide, specifically the 2024 edition, with historical AJG values going back to 2018. Coverage is limited to journals tracked by the ABS guide, which focuses on business and management disciplines. Journals outside those five field categories are not included.

Reliability & maintenance

The journalranking API is a managed, monitored endpoint for journalranking.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when journalranking.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official journalranking.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a journal selection tool that filters by ABS field and minimum AJG 2024 ranking for researchers choosing where to submit.
  • Track ranking changes for a set of journals by comparing ajg2024, ajg2021, and ajg2018 fields across editions.
  • Populate an internal research database with ISSN, publisher, and field metadata for all 1,635 ABS-listed journals.
  • Identify all 4* journals in a specific field (e.g., ECON) using the field and ranking filters in search_entries.
  • Search for journals from a specific publisher across all fields using the query parameter matched against the publisher field.
  • Generate reports showing the distribution of journals by AJG ranking level within each of the five business disciplines.
  • Cross-reference an ISSN from a citation dataset against ABS rankings to classify publication quality.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does journalranking.org provide an official developer API?+
journalranking.org does not publish an official developer API or documented data access endpoint.
What field values does the `field` filter in `search_entries` accept?+
The field parameter accepts exactly one of five values: ACCOUNT (Accounting), BUS HIST & ECON HIST (Business and Economic History), ECON (Economics), ENT-SBM (Entrepreneurship and Small Business Management), and ETHICS-CSR-MAN (Ethics, Corporate Social Responsibility, and Management). These correspond to the field categories used in the ABS Academic Journal Guide.
Can I retrieve journals from multiple fields or ranking levels in a single `search_entries` request?+
No. The field and ranking parameters each accept a single value per request. The API covers filtering by one field and one ranking level at a time. To aggregate results across multiple fields or rankings, you would need to make separate requests or use get_all_entries and filter client-side. You can fork this API on Parse and revise it to add multi-value filter support.
Does the API include journals outside of business and management disciplines?+
Not currently. The database covers only the five ABS-defined field categories (Accounting, Business & Economic History, Economics, Entrepreneurship/SBM, and Ethics/CSR/Management). Journals in fields like medicine, law, or engineering are outside the ABS guide scope and are not included. You can fork this API on Parse and revise it to add endpoints covering other journal ranking databases such as ABDC or Scimago.
How current is the ranking data, and are earlier AJG editions available?+
The dataset reflects the ABS Academic Journal Guide 2024 edition as the primary ranking. Each entry also includes ajg2021 and ajg2018 fields, so three editions of rankings are available per journal. No editions prior to 2018 are currently included in the response fields.
Page content last updated . Spec covers 2 endpoints from journalranking.org.
Related APIs in EducationSee all →
arxiv.org API
Search and discover academic research papers on arXiv using keywords, authors, titles, categories, and dates, then access detailed metadata for any paper. Browse the complete arXiv category taxonomy to explore research across different scientific disciplines.
zenodo.org API
Search and retrieve research records, files, versions, and community data from Zenodo's open science repository. Access detailed information about academic publications, datasets, and research outputs, including file listings, version history, and community collections all in one place.
ieeexplore.ieee.org API
Search for scientific papers and retrieve their metadata, abstracts, references, and citations from IEEE Xplore's collection of journals and conferences. Look up author profiles, browse journals, and access paper details and full text sections all programmatically.
dictionary.cambridge.org API
Look up word definitions, pronunciations, translations, synonyms, and example sentences from Cambridge Dictionary. Search and browse thousands of words, get daily word recommendations, and access specialized business or American English dictionaries.
openalex.org API
Search and retrieve millions of academic papers, articles, and books from OpenAlex's comprehensive global research catalog to find scholarly works by topic, author, or citation. Discover detailed information about research publications including metadata, abstracts, and citation counts to stay current with academic literature in your field.
josaa.nic.in API
Access JoSAA (Joint Seat Allocation Authority) admission data for IITs, NITs, IIITs, and GFTIs. Retrieve opening and closing ranks by institute, program, category, quota, and round for the current counselling session as well as historical data from 2016 onwards. Also query seat matrices and full institute details.
springer.com API
Search and retrieve metadata for millions of articles, books, and journals from Springer Nature's research library using DOI or ISBN lookups, with powerful filtering and pagination options. Get detailed information about academic publications including journal details, article metadata, and book information to power your research tools and discovery applications.
fastweb.com API
Search and browse thousands of scholarships from Fastweb by category, state, or major, while accessing detailed scholarship information, financial aid articles, and student discounts to help fund your education. Find featured opportunities and compare aid options all in one place.