Journal Data Open API
A developer-facing journal query API, usable for Zotero plugins, OpenClaw Skills, literature management tools and other secondary development.
Provides two capabilities:
| Capability | Endpoint | Typical Scenario |
|---|---|---|
| Impact Factor / Quartile | POST /journals/dev/impact-factors/ | Show IF, JCR quartile, CAS quartile next to a Zotero item |
| Warning / Predatory Journal Check | POST /journals/dev/warnings/ | Pre-submission safety check, flag warning and predatory journals in red |
See the API Reference for details, or try it directly in the Playground.
Important Notes
- JCR impact factor / quartile data is compiled from publicly available information on the internet, updated to the latest version as of June 17, 2026.
- The warning list is published by the CAS Literature and Information Center (2025 edition, 130+ journals).
- The predatory journal list is published by predatoryjournals.org (2025 edition, ~2800 journals).
- A hit on either list returns
is_warning: true; the specific sources are given insources.- Results are kept consistent with the latest PaperPop browser extension and are updated periodically, but real-time synchronization is not guaranteed.
- Developers should clearly inform users of the data source and nature on the interface to avoid misleading them.
Basic Information
- Base URL:
https://api.byteslink.cn/journals - Protocol: HTTPS, both requests and responses are JSON
- Encoding: UTF-8
Authentication
All /dev/* endpoints use API Key authentication, carried in the request header:
X-API-Key: pp_xxxxxxxxxxxxxxxx- Generate it under "User Center → My API" on the website. The plaintext Key is shown only once at generation time, so keep it safe.
- Each account has only one valid Key at a time; regenerating it rotates the Key and the old one is invalidated immediately.
- An invalid or missing Key returns
401.
Billing
- Billed per request: one request counts as 1 use, regardless of how many journals are queried in the batch (up to 20 per request). Tip: batch queries help save your quota. 😊
- Each day has a free quota; once used up, paid quota is deducted. The paid quota unit price is 0.01 CNY per request, with top-up amounts ranging from 10–999 CNY (whole numbers).
- The exact free quota amount and remaining balance are subject to the "User Center → My API" page on the website.
- When the quota is exhausted,
402 Payment Requiredis returned. - Every successful response includes a
usagefield indicating the billing source and remaining quota for that request, which can be used for client-side reminders.
Rate Limiting
| Dimension | Limit |
|---|---|
| Per user (by Key) | 200 requests/minute |
| Per IP | 500 requests/minute |
Exceeding the limit returns 429; clients are advised to retry based on Retry-After or with fixed backoff.
Error Codes
| Status Code | Meaning | Description |
|---|---|---|
| 400 | Parameter error | e.g. journals is empty or exceeds 20 items |
| 401 | Authentication failed | Key missing or invalid |
| 402 | Insufficient quota | Both free and paid quota exhausted |
| 429 | Rate limited | Please reduce request frequency |
Error responses follow the standard DRF format, for example:
json
{ "detail": "Invalid API Key" }Journal Name Matching Rules
The server normalizes journal names for matching, for example:
- Case-insensitive
- Leading articles (The/A/An) are ignored
&andANDare treated as equivalent,/is treated as a space- Common journal abbreviations (e.g.
J Med Chem) are automatically mapped to the full name
When there is no match, found: false (or is_warning: false, with an empty sources array) is returned, without raising an error.
