Build with Novarum Scholar

The Novarum Scholar API lets developers integrate academic research monitoring into tools, dashboards, and workflows. Most endpoints require authentication via JWT cookie.

Base URL:https://novarum-scholar.onrender.com

Authentication

Most endpoints require a valid session. Authenticate by calling POST /api/auth/login with your email and password. The server sets a novarum_auth cookie containing a JWT valid for 7 days.

Alternatively, pass the token in an Authorization: Bearer <token> header. Endpoints marked as public below require no authentication.

Endpoints

POST/api/auth/loginPublic

Authenticate with email and password. Returns a JWT session cookie.

Request body
{ "email": "you@example.com", "password": "your-password" }
Response
{ "subscriber_id": 123, "email": "you@example.com", "tier": "researcher" }
GET/api/auth/me

Get the current authenticated subscriber profile, keywords, and schedule.

Response
{ "id": 123, "email": "...", "tier": "researcher", "keywords": [...] }
GET/api/library

Get all papers saved to the subscriber library, newest first.

Response
{ "papers": [ { "id": 1, "doi": "...", "title": "...", "authors": "...", ... } ] }
POST/api/library/save

Save a paper to the library. Include full metadata for best results.

Request body
{ "doi": "10.1234/example", "title": "...", "authors": "...", "year": 2024, "source": "OpenAlex" }
Response
{ "id": 42, "already_saved": false }
GET/api/library/export?format=bibtex

Export the library in BibTeX or RIS format. Use format=bibtex or format=ris.

Response
BibTeX or RIS file download
GET/api/reader/annotations?doi=10.1234/example

Get all annotations for a specific paper by DOI.

Response
{ "annotations": [ { "id": 1, "selected_text": "...", "note_text": "...", ... } ] }
GET/api/trendingPublic

Public endpoint. Returns currently trending research keywords across all active Novarum subscribers. No personal data is included.

Response
{ "trending": [ { "keyword": "CRISPR gene editing", "subscriber_count": 12, "avg_weekly_articles": 4.2 } ] }
GET/healthPublic

Service health check. Returns status and uptime information.

Response
{ "status": "ok" }

Full OpenAPI specification

The complete OpenAPI 3.0 spec is available at the URL below. Import it into Postman, Insomnia, or any OpenAPI-compatible client.

https://novarum-scholar.onrender.com/openapi.json

Questions or access requests?

If you are building a research tool or integration and need expanded API access, get in touch. We are happy to work with developers and teams.

Contact us