使用Scholar API(scholar.x49.ai)搜索学术论文和作者,支持主题、关键词或自然语言查询,可发现相关作者。
Search academic papers and authors via the Scholar API at https://scholar.x49.ai.
Use this skill when the user needs to:
paper_refThe API base URL is https://scholar.x49.ai/api/v1.
Authentication uses a Bearer token. Resolve the key in this order:
SCHOLAR_API_KEYpsk_tLzPCmJdUw5oAHGeXL2H_fMrDdSyiF_SBJfn2p5uCO4Users can get their own higher-quota key at: https://scholar.x49.ai/docs?section=api-keys
Always construct API calls like this:
bash
SCHOLAR_KEY="${SCHOLAR_API_KEY:-psk_tLzPCmJdUw5oAHGeXL2H_fMrDdSyiF_SBJfn2p5uCO4}"
BASE="https://scholar.x49.ai/api/v1"
POST /papers/search#The primary search endpoint. Supports two modes via the same URL:
mode=standard): Exact keyword matching, larger result poolmode=semantic): Natural-language understanding, more relevant resultsThe two modes consume separate monthly quotas.
bash
SCHOLAR_KEY="${SCHOLAR_API_KEY:-psk_tLzPCmJdUw5oAHGeXL2H_fMrDdSyiF_SBJfn2p5uCO4}"
curl -s "https://scholar.x49.ai/api/v1/papers/search" \
-H "Authorization: Bearer ${SCHOLAR_KEY}" \
-H "Content-Type: application/json" \
-d '{
"query": "transformer attention mechanism",
"mode": "standard",
"limit": 10,
"sort": "relevance",
"filters": {}
}'
Request body fields:
FieldTypeRequiredMeaningquerystringConditionallyNatural-language query text. If omitted, provide at least one author_ref in filtersmodestringNostandard (default) or semantic``limitintegerNoResults per call, 1-100. Default variessortstringNorelevance, most_cited, newest, or oldest
Filters object (nested under filters):
FilterTypeMeaningyear_from / year_tointegerPublication year rangepaper_typesstring[]e.g. ["article", "review"]``venuesstring[]Journal or conference namesconceptsstring[]Topic or concept labelsinstitutionsstring[]Institution namesauthor_refsstring[]Public author referencesopen_accessbooleantrue for open-access papers only
Key response fields:
data.items[] — Paper cards in this batchdata.items[].paper_ref — Stable public reference (use for batch/detail lookups)data.items[].authors[].author_ref — Use for author detail and papersdata.facets — Aggregated filter values (years, concepts, venues, institutions, paper_types, venue_quality)meta.total_results — Total matches under current filtersmeta.limit — The result cap you requestedGET /search/suggestions#Get autocomplete suggestions and filter candidate values.
bash
curl -s "${BASE}/search/suggestions?query=transformer&type=all&limit=5" \
-H "Authorization: Bearer ${KEY}"
Parameters (query string):
ParameterTypeRequiredMeaningquerystringYesThe typed prefixtypestringNoall (default), author, venue, concept, institution, paper_type, year``limitintegerNoMax suggestions to return
Response: Mixed or typed suggestion items with counts.
POST /papers/batch#Expand one or more paper_ref values into full metadata.
bash
curl -s "${BASE}/papers/batch" \
-H "Authorization: Bearer ${KEY}" \
-H "Content-Type: application/json" \
-d '{"paper_refs":["pap_ebcabae1be4244f3adba","pap_4748c234f5384d0eaee2"]}'
Request body:
FieldTypeRequiredMeaningpaper_refsstring[]YesPublic paper references from search results
Response: Array of full paper cards, same structure as search items.
GET /authors/search#Find authors by name.
bash
curl -s "${BASE}/authors/search?query=Hyeongwon+Kang&limit=5" \
-H "Authorization: Bearer ${KEY}"
Parameters (query string):
ParameterTypeRequiredMeaningquerystringYesAuthor name or keywordlimitintegerNoMax results to return
Response: Author candidates with author_ref, name, last_known_institution, metrics (citation_count, paper_count), and identifiers (orcid).
GET /authors/{author_ref}#Show the full author profile.
bash
curl -s "${BASE}/authors/aut_d2610a19ad8c4b1ca298" \
-H "Authorization: Bearer ${KEY}"
Response includes: name, affiliations (with country, type, years), aliases, identifiers (orcid), metrics (citation_count, h_index, i10_index, paper_count, two_year_mean_citedness), top_venues, topics (with paper_count and score).
GET /authors/{author_ref}/papers#List representative or recent papers for one author.
bash
curl -s "${BASE}/authors/aut_d2610a19ad8c4b1ca298/papers?limit=10" \
-H "Authorization: Bearer ${KEY}"
Parameters (query string):
ParameterTypeRequiredMeaninglimitintegerNoNumber of papers to return
Response: Paper cards, same structure as search items. Default sort is most_cited.
User asks: "Find recent papers on CRISPR gene editing"
POST /papers/search with mode=standard, sort=newest, reasonable limitpaper_ref values for any follow-up requestsUser asks: "How does transfer learning help in medical image analysis?"
POST /papers/search with mode=semantic - this mode understands natural-language queriesUser asks: "Find papers by Yann LeCun"
GET /authors/search?query=Yann+LeCun to find the authorGET /authors/{author_ref} for profile detailsGET /authors/{author_ref}/papers for their publicationsUser asks: "Get more details on these papers" (after seeing search results)
paper_ref values from prior resultsPOST /papers/batch with those refsUser asks: "Find highly-cited open-access review papers on machine learning from Nature or Science published 2022-2025"
Build the search with appropriate filters: json
{
"query": "machine learning",
"mode": "standard",
"sort": "most_cited",
"limit": 10,
"filters": {
"year_from": 2022,
"year_to": 2025,
"paper_types": ["review"],
"venues": ["Nature", "Science"],
"open_access": true
}
}
User asks: "What are popular topics related to CRISPR?"
GET /search/suggestions?query=CRISPR&type=concept&limit=10When displaying search results to the user, format them clearly:
text
### [Paper Title](landing_page_url)
- **Authors**: Author1, Author2, Author3
- **Year**: 2024 | **Venue**: Journal Name (JCR Q1)
- **Citations**: 88 | **Type**: article | **Open Access**: No
- **paper_ref**: pap_xxxxx
> Abstract snippet (first 200 chars)...
For author results:
text
### [Author Name]
- **Institution**: University Name
- **Papers**: 42 | **Citations**: 1,230 | **h-index**: 15
- **ORCID**: 0000-xxxx-xxxx-xxxx
- **author_ref**: aut_xxxxx
metrics.relevance field in search results is typically null - this is expectedpython3 -m json.tool for readable output when debugging+ or %20)venue.quality_signals array contains JCR, FQBJCR, and CCF tier information when available