science-search
Search ~200 million scientific papers (OpenAlex titles and abstracts) by meaning or by exact words, look papers up by DOI / OpenAlex id / PMCID, find similar papers and walk citations, through the fre
Files1
View on GitHubSKILL.mdapp/web/agents/science-search/SKILL.md
GitHubScience search (ScienceMadeReadable)
Read-only JSON over HTTPS, free, no key. Base: https://api.sciencemadereadable.com/api/data
Full guide, with today's coverage, every parameter, field meanings and limits: GET <base>/llms.txt.
Read it before the first search in a conversation. Interactive reference: <base>/docs; spec: <base>/openapi.json.
The main calls
B=https://api.sciencemadereadable.com/api/data
curl -sG "$B/search" --data-urlencode "q=effect of intermittent fasting on weight loss in adults" -d k=20 -d abstracts=false
curl -sG "$B/search" --data-urlencode 'q="gut microbiome" AND (autism OR ASD) NOT mice' -d k=20 -d abstracts=false
curl -s "$B/works/10.1126/science.aan8048" # DOI, W123..., PMC123..., or a doi.org / openalex.org URL
curl -s "$B/similar/W2782456798?k=10&abstracts=false"
curl -s "$B/walk?id=10.1126/science.aan8048" # 'answers' = what similar papers cite and this one doesn't
No shell or HTTP library, only a "fetch this web address" tool? https://ask.sciencemadereadable.com/<question>
(%20 for spaces) answers as plain text (Markdown), e.g. https://ask.sciencemadereadable.com/why%20do%20cats%20purr?k=20;
it takes the same options as /search. ($B/search/<question> is the same thing.)
Results: id (OpenAlex W-number), doi, title, year, type, authors (first 12, " | "), venue,
citations, abstract, score, junk (0-1, likelihood of spam or not scholarship), openalex, pmcid.
Filters: year_from, year_to, type=review|article|preprint|..., open_access=true, license=cc-by.
As MCP tools instead
Apps that speak MCP can add https://api.sciencemadereadable.com/mcp (no key) and get the same search as tools:
search_papers, get_papers, find_similar_papers, citation_walk. Claude Code:
claude mcp add --transport http --scope user science https://api.sciencemadereadable.com/mcp. If those tools are
already connected, use them rather than curl: same data, answers ready to cite.
Doing it well
- Questions and descriptions: search by meaning (the default). Exact names, genes, drugs, phrases, "everything
mentioning X": quotes / AND / OR / NOT (switches to exact words by itself). For a review, run both and merge by
id. - Rewrite casual questions into research language first ("how to lose weight" -> "effectiveness of dietary and exercise interventions for weight loss in adults"). It is the biggest quality gain.
- Screen with
abstracts=false, then fetch/works/{id}only for the papers you keep. Snowball with/similarand/walk. - English titles and abstracts only, no full texts. Search by meaning may not reach every year;
/llms.txtsays how far. Exact words and/workscover the whole corpus. topic/fieldlabels are often wrong: judge a paper from its title and abstract. A lowjunkscore does not mean a paper is right, and citation counts favour older papers.- Cite the DOI when there is one, else the
openalexURL. Never invent details a record lacks.
Limits
- 30 requests a minute per address (reading
/llms.txtdoes not count). Spend them well: one search withk=100instead of several small ones,/worksonly for the papers you keep, never calls in parallel. - HTTP 429: wait the seconds given in the
Retry-Afterheader (alsoretry_afterin the body), then retry. - 502/503 for a minute or two: a data update or a restart. Retry later.
- Requests, including search words, are kept in usage statistics without the caller's address (https://sciencemadereadable.com/privacy.html).
To point a person to a paper in a readable page: https://sciencemadereadable.com/?work=<DOI>.