Configuration

Ignoring entries

Some entries will never appear on InspireHEP — books, technical reports, web references, or entries with non-standard keys you don't plan to fix. Add them to an ignore list so check skips them silently.

Option 1 — .bibcheckerignore file

Create a .bibcheckerignore file next to your .bib file (or in the current working directory). One citation key per line; lines starting with # are comments.

# Books and references not on InspireHEP
Cramer1946
Fisher1925
AkademikLomonosov

# Checked manually — OK
JUNO:2022kdp

Option 2 — pyproject.toml

Add an ignore list to your project's pyproject.toml:

[tool.bib-checker]
ignore = [
    "Cramer1946",
    "Fisher1925",
    "AkademikLomonosov",
]

Both sources are merged — you can use one or both.

NASA ADS fallback

For entries that have an adsurl field (common in bib files exported from ADS), bib-checker can look them up via the ADS bibcode embedded in the URL.

Tier 1 (automatic): InspireHEP is queried by the ADS bibcode. No token required.

Tier 2 (requires token): If tier 1 fails, the ADS API is queried directly. Set your token via environment variable or CLI flag:

# Environment variable (recommended — add to your shell profile)
export ADS_TOKEN=your_token_here

# Per-run flag
bib-checker check paper.bib --ads-token your_token_here

Get a free ADS token at ui.adsabs.harvard.edu/user/settings/token.

Rate limiting

By default, bib-checker waits 0.5 seconds between API requests. Increase this if you experience throttling errors:

bib-checker --delay 1.0 check paper.bib

The --delay flag is global and must appear before the subcommand.

Caching

Results are cached in a hidden JSON file next to your .bib:

.main-cache.json   ← for main.bib

The cache stores a hash of each entry's fields. If an entry changes, its cached result is discarded and the entry is re-fetched on the next run.

To bypass the cache entirely:

bib-checker check paper.bib --no-cache