API Documentation

Complete reference for the AMS REST API — authentication, endpoints, parameters, and response schemas

v1Current Version
RESTArchitecture
JSONResponse Format

Authentication

All API requests require a valid API key, issued from your publisher dashboard. Pass it as a Bearer token in the Authorization header.

HTTP Header
Authorization: Bearer YOUR_API_KEY
API access is available on Professional and Elite plans. Keys can be regenerated from your dashboard at any time.

Base URL

All endpoints are relative to the following base URL:

Base URL
https://arabmetric.org/api/v1

All responses are application/json. Dates are ISO 8601 (YYYY-MM-DD). Numeric IDs are integers.

Error Codes

StatusCodeMeaning
200OKRequest successful
400Bad RequestInvalid parameter or missing required field
401UnauthorizedMissing or invalid API key
403ForbiddenPlan does not include API access
404Not FoundResource does not exist
429Rate LimitedExceeded daily or per-minute request limit
500Server ErrorUnexpected server error — contact support

Journals

GET /api/v1/journals List all indexed journals
Response
[{"id":1,"name":"Saudi Medical Journal","issn":"0379-5284","ams_score":92,"quartile":"Q1","country_id":1,"field_id":1,"total_papers":3400,"total_cites":41200}]
GET /api/v1/journals/{id} Full profile for a single journal

Parameters: id — Journal ID (integer)

Response
{"id":1,"name":"Saudi Medical Journal","ams_score":92,"quartile":"Q1","description":"...","oa":false}
GET /api/v1/journals/{id}/papers Papers for a journal

Parameters: id — Journal ID; page, per_page

Response
{"data":[{"id":1,"title":"...","authors":"...","year":2023,"citations":42}],"total":3400}
GET /api/v1/journals/{id}/score AMS score history

Parameters: id — Journal ID

Response
{"current":92,"quartile":"Q1","history":[{"date":"2026-01-01","score":90},{"date":"2025-10-01","score":88}]}

Papers

GET /api/v1/papers Search papers

Parameters: q, year, oa, sort, page, per_page

Response
{"data":[...],"total":14754}
GET /api/v1/papers/{doi} Paper by DOI

Parameters: doi — URL-encoded DOI string

Response
{"id":1,"title":"...","authors":"...","doi":"10.xxx","year":2022,"citations":15,"abstract":"..."}

Authors

GET /api/v1/authors List authors

Parameters: q, country_id, field_id, sort, page

Response
{"data":[{"id":1,"name":"...","affil":"...","total_papers":42,"total_cites":380}],"total":877}
GET /api/v1/authors/{id} Author profile

Parameters: id — Author ID

Response
{"id":1,"name":"...","orcid":"...","affil":"...","h_index":12,"papers":[...]}

Subjects

GET /api/v1/subjects All subject areas with stats
Response
[{"id":1,"name":"Medicine & Health Sciences","slug":"medicine","journals":4,"papers":6770,"citations":66600}]

Countries

GET /api/v1/countries Countries with stats

Parameters: show=active|all

Response
[{"id":1,"name":"Saudi Arabia","flag":"🇸🇦","journals":5,"papers":10920,"citations":145500}]

Webhooks

POST /api/v1(your URL) Payload sent on score change

Parameters: Configure in dashboard

Response
{"event":"score_updated","journal_id":1,"old_score":88,"new_score":92,"quartile":"Q1","timestamp":"2026-04-01T00:00:00Z"}