Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Search astrophysics and physics literature via NASA ADS bibliographic database
.claude/skills/brycewang-stanford-nasa-ads-api/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 134% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 141% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 138% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 140% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 273% | 0% |
The NASA Astrophysics Data System (ADS) is a digital library operated by the Smithsonian Astrophysical Observatory under a NASA grant. It is the primary bibliographic database for astronomy and astrophysics, also covering significant portions of physics, geophysics, and related disciplines. ADS indexes over 16 million records and provides access to full-text articles, citations, and usage metrics.
ADS is indispensable for astronomers and physicists. Nearly every paper in astrophysics is indexed in ADS, and the system provides powerful search capabilities including full-text search, citation and reference tracking, author disambiguation, and object-level queries (search by astronomical object name). The database integrates with SIMBAD, NED, and other astronomical databases to link publications to the celestial objects they study.
The ADS API requires a free API token and supports 3,000 requests per day. It returns JSON and supports a rich query language with field-specific searches, boolean operators, and positional queries.
Authentication is required via a free API token. Register at https://ui.adsabs.harvard.edu/user/settings/token to generate your token. Include it in every request as a header:
Authorization: Bearer YOUR_ADS_API_TOKENTokens do not expire but can be regenerated from the settings page. Each token is associated with a user account and is subject to per-account rate limits.
GET https://api.adsabs.harvard.edu/v1/search/query| Param | Type | Required | Description | |-------|------|----------|-------------| | q | string | Yes | Search query (ADS query syntax with field qualifiers) | | fl | string | No | Fields to return (comma-separated: title, author, year, bibcode, doi, citation_count, abstract, etc.) | | rows | integer | No | Results per page (default: 10, max: 2000) | | start | integer | No | Pagination offset (default: 0) | | sort | string | No | Sort field and order (e.g., citation_count desc, date desc) | | fq | string | No | Filter queries for faceting (e.g., database:astronomy) |
bash curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://api.adsabs.harvard.edu/v1/search/query?q=gravitational+waves&fl=title,author,year,bibcode,citation_count,doi&rows=10&sort=citation_count+desc"
response.numFound (total hits) and response.docs array. Each doc contains the requested fields. The bibcode is the unique ADS identifier (19-character string encoding journal, year, volume, and page).GET https://api.adsabs.harvard.edu/v1/search/query| Param | Type | Required | Description | |-------|------|----------|-------------| | q | string | Yes | Author query using author: or first_author: fields | | fl | string | No | Fields to return | | rows | integer | No | Results per page | | sort | string | No | Sort order |
bash curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://api.adsabs.harvard.edu/v1/search/query?q=author:%22Hawking,+S%22&fl=title,year,bibcode,citation_count&rows=20&sort=citation_count+desc"
GET https://api.adsabs.harvard.edu/v1/search/query| Param | Type | Required | Description | |-------|------|----------|-------------| | q | string | Yes | Object query using object: field (e.g., object:"M31") | | fl | string | No | Fields to return | | rows | integer | No | Results per page |
bash curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://api.adsabs.harvard.edu/v1/search/query?q=object:%22Sgr+A*%22&fl=title,author,year,bibcode,citation_count&rows=10&sort=date+desc"
POST https://api.adsabs.harvard.edu/v1/metrics| Param | Type | Required | Description | |-------|------|----------|-------------| | bibcodes | array | Yes | Array of ADS bibcodes (JSON body) | | types | array | No | Metric types: basic, citations, indicators, histograms |
bash curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ "https://api.adsabs.harvard.edu/v1/metrics" \ -d '{"bibcodes": ["2016PhRvL.116f1102A"], "types": ["basic", "citations", "indicators"]}'
The API allows 3,000 requests per day (resets at midnight UTC) and 15 requests per second burst limit. If limits are exceeded, the API returns HTTP 429 with X-RateLimit-Reset header. For large bibliometric analyses, use the ADS bulk export or the myADS notification system. Monitor usage via X-RateLimit-Remaining response headers.
Search for recent highly-cited papers on a topic:
bashcurl -H "Authorization: Bearer YOUR_TOKEN" \ "https://api.adsabs.harvard.edu/v1/search/query?q=dark+energy+AND+year:2023-2026&fl=title,author,year,bibcode,citation_count,doi,abstract&rows=20&sort=citation_count+desc"
Retrieve complete publication list with metrics:
bash# Get publications curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://api.adsabs.harvard.edu/v1/search/query?q=author:%22Perlmutter,+S%22&fl=title,year,bibcode,citation_count&rows=200&sort=date+desc" # Get aggregate metrics curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ "https://api.adsabs.harvard.edu/v1/metrics" \ -d '{"bibcodes": ["1999ApJ...517..565P", "2012ApJ...746...85S"], "types": ["basic", "indicators"]}'
Find papers about a specific object and link to SIMBAD/NED:
bashcurl -H "Authorization: Bearer YOUR_TOKEN" \ "https://api.adsabs.harvard.edu/v1/search/query?q=object:%22Crab+Nebula%22+AND+year:2024-2026&fl=title,author,year,bibcode,doi&rows=10&sort=date+desc"
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 6,015 | 5,018 | -17% | 1 | 1 | 0% | 1,173 | 2,795 | +138% | 0 | 0 | — |
case-02 | pass→pass | 5,825 | 1,715 | -71% | 1 | 1 | 0% | 906 | 2,178 | +140% | 0 | 0 | — |
case-03 | pass→pass | 4,008 | 4,835 | +21% | 1 | 1 | 0% | 754 | 2,809 | +273% | 0 | 0 | — |
case-04 | pass→pass | 5,678 | 3,034 | -47% | 1 | 1 | 0% | 953 | 2,412 | +153% | 0 | 0 | — |
case-05 | pass→pass | 2,896 | 2,385 | -18% | 1 | 1 | 0% | 422 | 2,296 | +444% | 0 | 0 | — |
case-06 | pass→pass | 6,982 | 4,740 | -32% | 1 | 1 | 0% | 1,042 | 2,643 | +154% | 0 | 0 | — |
case-07 | pass→pass | 5,927 | 2,585 | -56% | 1 | 1 | 0% | 899 | 2,318 | +158% | 0 | 0 | — |
case-08 | pass→pass | 4,794 | 2,607 | -46% | 1 | 1 | 0% | 852 | 2,308 | +171% | 0 | 0 | — |
case-09 | pass→pass | 5,722 | 3,671 | -36% | 1 | 1 | 0% | 979 | 2,485 | +154% | 0 | 0 | — |
case-10 | pass→pass | 5,296 | 2,009 | -62% | 1 | 1 | 0% | 827 | 2,206 | +167% | 0 | 0 | — |
case-11 | pass→pass | 3,686 | 2,091 | -43% | 1 | 1 | 0% | 539 | 2,272 | +322% | 0 | 0 | — |
case-12 | fail→pass | 6,175 | 2,257 | -63% | 1 | 1 | 0% | 919 | 2,155 | +134% | 0 | 0 | — |
case-13 | fail→pass | 6,112 | 1,905 | -69% | 1 | 1 | 0% | 878 | 2,113 | +141% | 0 | 0 | — |
case-14 | pass→pass | 3,376 | 1,758 | -48% | 1 | 1 | 0% | 525 | 2,187 | +317% | 0 | 0 | — |
case-15 | pass→pass | 6,129 | 1,886 | -69% | 1 | 1 | 0% | 1,013 | 2,185 | +116% | 0 | 0 | — |
case-16 | pass→pass | 5,316 | 3,145 | -41% | 1 | 1 | 0% | 850 | 2,380 | +180% | 0 | 0 | — |
case-17 | pass→pass | 6,611 | 2,739 | -59% | 1 | 1 | 0% | 1,244 | 2,293 | +84% | 0 | 0 | — |
case-18 | pass→pass | 7,061 | 5,800 | -18% | 1 | 1 | 0% | 1,227 | 3,023 | +146% | 0 | 0 | — |
case-19 | pass→pass | 6,203 | 6,068 | -2% | 1 | 1 | 0% | 1,190 | 2,761 | +132% | 0 | 0 | — |
case-20 | fail→fail | 15,467 | 16,416 | +6% | 1 | 1 | 0% | 2,785 | 4,835 | +74% | 0 | 0 | — |
case-21 | fail→fail | 15,382 | 15,681 | +2% | 1 | 1 | 0% | 2,643 | 4,575 | +73% | 0 | 0 | — |
case-22 | pass→pass | 8,573 | 8,653 | +1% | 1 | 1 | 0% | 1,429 | 3,127 | +119% | 0 | 0 | — |
case-23 | pass→pass | 4,994 | 2,328 | -53% | 1 | 1 | 0% | 847 | 2,240 | +164% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.