docs / academic
Academic Papers
Search scholarly papers, authors, citations and abstracts.
base /academic/v19 endpoints
post
/academic/v1/search1 creditsearch papers (source=openalex|arxiv|crossref|all; cursor pagination, year/OA/type filters, match=title, fulltext=)
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | required | — | Free-text search query. |
| source = openalex | optional | openalex · arxiv · crossref · all | Which backend(s) to search. Unknown values are rejected. |
| per_page = 25 | optional | 1–200 | Results per page (1-200, default 25); clamped. |
| cursor | optional | — | OpenAlex cursor for deep pagination (use '*' for the first page, then meta.next_cursor). |
| filter | optional | — | Advanced: raw OpenAlex (or Crossref) filter string, appended verbatim. |
| sort | optional | — | Sort key. OpenAlex accepts keys like cited_by_count:desc / publication_date:desc; arXiv accepts 'date'. |
| from_year | optional | — | Filter to papers published on or after this year. |
| to_year | optional | — | Filter to papers published on or before this year. |
| open_access = false | optional | — | If true, restrict to open-access works (is_oa:true). |
| type | optional | — | OpenAlex work type filter (e.g. article, book-chapter, dataset); passed through. |
| match = false | optional | — | If true, closest-title match (title.search) instead of relevance search (OpenAlex source only). |
| category | optional | — | arXiv subject category (source=arxiv); can stand in for `query`. |
| include_abstract = true | optional | — | Include reconstructed abstracts in search results (default true). |
| fulltext | optional | — | Full-text search within the paper body (OpenAlex fulltext.search). |
| start = 0 | optional | 0–10000 | arXiv offset pagination (0-10000); clamped. |
| offset = 0 | optional | 0–10000 | Crossref offset pagination (0-10000); clamped. |
post
/academic/v1/paper_detail1 creditfull paper (abstract/authors/affiliations/venue/year/DOI/OA-PDF/fields); id=OpenAlex|DOI|arXiv|PMID; cross-source abstract gap-fill
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| id | required | — | Paper id — OpenAlex id (W…), OR DOI (10.…), OR arXiv id, OR PMID. |
| enrich = false | optional | — | Pull extra Crossref metadata (funders/license/references flag) for the paper. |
| raw = false | optional | — | Attach the raw OpenAlex record under paper._raw_openalex. |
| fill_abstract = true | optional | — | Gap-fill a missing OpenAlex abstract from arXiv/Crossref (default true). |
post
/academic/v1/citations1 creditpapers that cite this work (cursor-paginated)
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| id | required | — | Paper id — OpenAlex id (W…), OR DOI (10.…), OR arXiv id, OR PMID. |
| per_page = 25 | optional | 1–200 | Results per page (1-200, default 25); clamped. |
| cursor | optional | — | OpenAlex cursor for deep pagination (use '*' for the first page, then meta.next_cursor). |
post
/academic/v1/references1 creditworks this paper references (hydrated)
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| id | required | — | Paper id — OpenAlex id (W…), OR DOI (10.…), OR arXiv id, OR PMID. |
| limit = 50 | optional | 1–200 | Max records (1-200, default 50); clamped. |
post
/academic/v1/institution1 creditinstitution search/profile: ROR, country, geo, works/citation counts, h-index
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| id | optional | — | OpenAlex institution id for a profile. Supply `id` OR a `query`/`name`. |
| query | optional | — | Search text → ranked list. Supply this OR `id`. |
| per_page = 10 | optional | 1–200 | Results per page (1-200, default 10); clamped. |
post
/academic/v1/venue1 creditjournal/venue search/profile: ISSN, publisher, OA/DOAJ, h-index, works/citation counts
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| id | optional | — | OpenAlex venue/source id for a profile. Supply `id` OR a `query`/`name`. |
| query | optional | — | Search text → ranked list. Supply this OR `id`. |
| per_page = 10 | optional | 1–200 | Results per page (1-200, default 10); clamped. |
post
/academic/v1/autocomplete1 creditfast typeahead suggestions (works/authors/sources/institutions)
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| q | required | — | Typeahead prefix. |
| entity = works | optional | works · authors · sources · institutions · concepts · topics | Which entity type to autocomplete. An unknown value falls back to 'works'. |
post
/academic/v1/batch2 creditshydrate up to 200 papers by id/DOI in one call (RAG/ETL)
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| ids | required | — | Up to 200 paper ids/DOIs to hydrate (list or comma-separated). |
| include_abstract = false | optional | — | Include reconstructed abstracts in the hydrated rows (default false for batch). |
| limit = 100 | optional | 1–200 | Max records (1-200, default 100); clamped. |
Example request · search
curl -X POST https://api.reefapi.com/academic/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"covid"}'Response shape
{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}