NASA ADS Search and Retrieval Skill
Search and retrieve papers from NASA's Astrophysics Data System (ADS).
Requires: requests (pip install requests)
Setup
ADS requires an API token for authentication.
Getting a Token
- Go to https://ui.adsabs.harvard.edu
- Sign in (or create an account)
- Click your name in the top-right → "Account settings"
- Select "API Token" from the left sidebar
- Click "Generate a new key"
- Copy the token string
Storing the Token
Save your token in one of these locations:
Option 1: Config file (recommended)
mkdir -p ~/.ads
echo "YOUR_TOKEN_HERE" > ~/.ads/dev_key
chmod 600 ~/.ads/dev_key
Option 2: Environment variable
export ADS_DEV_KEY="YOUR_TOKEN_HERE"
Bibcode Format
ADS uses bibcodes as unique identifiers:
- Format:
YYYYJJJJJVVVVMPPPPA - Example:
2019ApJ...882L..12P(ApJ Letters, 2019)
Basic Usage
# Get a record by bibcode
python scripts/ads.py 2019ApJ...882L..12P
# Get BibTeX
python scripts/ads.py 2019ApJ...882L..12P --format bibtex
Searching
# Search by author
python scripts/ads.py --search "author:Einstein"
# Search by first author only
python scripts/ads.py --search "author:^Hawking"
# Search by title
python scripts/ads.py --search 'title:"dark energy"'
# Search by abstract
python scripts/ads.py --search 'abs:"gravitational waves"'
# Search by year range
python scripts/ads.py --search "author:Penrose year:2015-2020"
# Search by journal
python scripts/ads.py --search "bibstem:ApJ year:2023"
# Combined search
python scripts/ads.py --search 'author:Planck title:"cosmological parameters"'
# Limit results
python scripts/ads.py --search "author:Witten" -n 5
Search Query Syntax
| Field | Syntax | Example |
|---|---|---|
| Author | author:"Last, First" | author:"Hawking, S" |
| First Author | author:^Name | author:^Einstein |
| Title | title:"phrase" | title:"black hole" |
| Abstract | abs:"phrase" | abs:"dark matter" |
| Year | year:YYYY or year:YYYY-YYYY | year:2020-2023 |
| Journal | bibstem:abbrev | bibstem:MNRAS |
| arXiv ID | arXiv:id | arXiv:1207.7214 |
| DOI | doi:value | doi:10.1086/345794 |
| Object | object:name | object:M31 |
Boolean operators: AND (default), OR, NOT, - (negation)
Common Journal Abbreviations
| Abbreviation | Journal |
|---|---|
ApJ | Astrophysical Journal |
ApJL | ApJ Letters |
MNRAS | Monthly Notices of the RAS |
A&A | Astronomy & Astrophysics |
AJ | Astronomical Journal |
PhRvD | Physical Review D |
PhRvL | Physical Review Letters |
JCAP | Journal of Cosmology and Astroparticle Physics |
Citations
# Get papers citing a record
python scripts/ads.py 2019ApJ...882L..12P --citations
# Top 20 citing papers
python scripts/ads.py 2019ApJ...882L..12P --citations -n 20
Output Formats
# Default (shows metadata)
python scripts/ads.py 2019ApJ...882L..12P
# BibTeX
python scripts/ads.py 2019ApJ...882L..12P --format bibtex
Typical Workflow
- Search for papers:
python scripts/ads.py --search "author:Name" - Note the bibcode
- Get full details:
python scripts/ads.py <bibcode> - Get BibTeX:
python scripts/ads.py <bibcode> --format bibtex - Check citations:
python scripts/ads.py <bibcode> --citations
Rate Limits
ADS allows 5000 requests per day per API token.
Comparison with Other Skills
- ADS: Astronomy/astrophysics focus, published papers, bibcodes
- INSPIRE: High-energy physics focus, SPIRES syntax, recids
- arXiv: Preprint source code (LaTeX), all physics categories
Use together: search on ADS for published papers with citation data, use arXiv skill to get source.
