BYTETOOLS

INSPIRE-HEP API

Free INSPIRE-HEP API with no key: search high-energy physics papers, authors, conferences and institutions, with BibTeX and LaTeX export built in. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the INSPIRE-HEP API?

The INSPIRE-HEP API is a free, key-free REST interface to the high-energy physics literature database run by CERN, DESY, Fermilab and SLAC. It searches literature, authors, conferences, jobs and institutions, and can return any record as JSON, BibTeX, LaTeX or CV-formatted text.

INSPIRE is the bibliographic backbone of particle physics — the database physicists actually use, going back to the SPIRES system of the 1970s. Its API is a thin layer over that: append `/api/` to any INSPIRE URL you can construct in the web interface and you get the same result set as JSON. That symmetry makes it unusually easy to prototype, because you can build a query in the browser and then automate it verbatim.

The killer feature for anyone writing a paper is format negotiation. Every record and every result set can be re-rendered as BibTeX, `latex-eu`, `latex-us` or CV text simply by changing `format` — the `links` object in the example shows all of them for each hit. That means a citation manager can be built on this API without writing a single BibTeX serialiser. Query syntax is INSPIRE's own SPIRES-derived language rather than plain Lucene, with operators like `a Ellis` for author and `t higgs` for title, so it is worth reading the search-tips page before assembling anything complicated.

Quick facts

Base URL
https://inspirehep.net/api
Authentication
No API key or account. INSPIRE metadata is released under CC0, so it may be reused freely including commercially.
Rate limit
Fair use, unpublished. INSPIRE asks that automated clients identify themselves and throttle themselves; sustained heavy crawling is blocked by IP.
Pricing
Free. Metadata is CC0; linked full texts belong to their publishers or arXiv.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the INSPIRE-HEP API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Search the literature for Higgs papers, returning selected fields

GET https://inspirehep.net/api/literature?q=title%20higgs&size=1&fields=titles,arxiv_eprints,earliest_date

curl
curl 'https://inspirehep.net/api/literature?q=title%20higgs&size=1&fields=titles,arxiv_eprints,earliest_date'
JavaScript (fetch)
const res = await fetch("https://inspirehep.net/api/literature?q=title%20higgs&size=1&fields=titles,arxiv_eprints,earliest_date");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://inspirehep.net/api/literature?q=title%20higgs&size=1&fields=titles,arxiv_eprints,earliest_date", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "hits": {
    "hits": [
      {
        "id": "193571",
        "links": {
          "bibtex": "https://inspirehep.net/api/literature/193571?format=bibtex",
          "latex-eu": "https://inspirehep.net/api/literature/193571?format=latex-eu",
          "latex-us": "https://inspirehep.net/api/literature/193571?format=latex-us",
          "json": "https://inspirehep.net/api/literature/193571?format=json",
          "json-expanded": "https://inspirehep.net/api/literature/193571?format=json-expanded",
          "cv": "https://inspirehep.net/api/literature/193571?format=cv",
          "citations": "https://inspirehep.net/api/literature/?q=refersto%3Arecid%3A193571"
        },
        "metadata": {
          "control_number": 193571,
          "titles": [
            {
              "title": "The Higgs - Higgs Bound State"
            },
            {
              "title": "THE HIGGS - HIGGS BOUND STATE"
            }
          ],
          "earliest_date": "1983-10"
        },
        "updated": "2024-05-10T14:46:02.069606+00:00",
        "created": "1983-10-01T00:00:00+00:00"
      }
    ],
    "total": 24799
  },
  "links": {
    "self": "https://inspirehep.net/api/literature/?q=title%20higgs&size=1&page=1&fields=titles,arxiv_eprints,earliest_date",
    "next": "https://inspirehep.net/api/literature/?q=title%20higgs&size=1&page=2&fields=titles,arxiv_eprints,earliest_date",
    "bibtex": "https://inspirehep.net/api/literature/?q=title%20higgs&size=1&page=1&format=bibtex",
    "latex-eu": "https://inspirehep.net/api/literature/?q=title%20higgs&size=1&page=1&format=latex-eu"

Parameters

ParameterTypeRequiredDescription
qqueryRequiredSearch expression in INSPIRE query syntax. `a Ellis` searches authors, `t higgs` titles, `d 2020->2024` date ranges. title higgs
sizequeryOptionalResults per page, up to 1000. Defaults to 10. 1
pagequeryOptionalOne-based page number. Prefer following `links.next`. 1
fieldsqueryOptionalComma-separated metadata fields to return. Records are large without it. titles,arxiv_eprints,earliest_date
sortqueryOptional`mostrecent` or `mostcited`. mostcited
formatqueryOptionalAlternative serialisation: `bibtex`, `latex-eu`, `latex-us`, `cv` or `json`. bibtex

Response fields

hits.totalinteger
Total number of matching records, independent of paging.
hits.hits[].idstring
INSPIRE control number, the stable record identifier.
hits.hits[].metadataobject
The record itself, projected down to whatever you named in `fields`.
metadata.titles[]array
Titles, sometimes several — INSPIRE keeps historical all-caps variants alongside the modern form.
metadata.arxiv_eprints[]array
arXiv identifiers and primary categories where the paper was preprinted.
linksobject
Per-record and per-result-set links to BibTeX, LaTeX, CV and citation queries. The reason to prefer this API over scraping.

What you can build with the INSPIRE-HEP API

  • Fetch BibTeX for a paper without leaving your build script
  • Track new papers on a topic or from a collaboration
  • Build an author's publication list and citation counts
  • Resolve an arXiv identifier to a full bibliographic record
  • Mine conference and institution metadata for a physics community site

Common errors and how to fix them

400

Malformed query expression.

Fix: INSPIRE uses its own SPIRES-derived syntax, not Lucene. Test the query in the web interface first, then append `/api/` to the working URL.

Empty hits with a large total

The page number exceeded the deep-paging window.

Fix: Follow `links.next` rather than incrementing `page`; deep offsets are capped.

Very large responses

No `fields` projection was requested.

Fix: Full INSPIRE records include every author of a thousand-author collaboration paper. Always project.

429 or connection reset

Sustained crawling triggered throttling.

Fix: Slow down, send a descriptive User-Agent with contact details, and cache aggressively — records rarely change.

INSPIRE-HEP API — frequently asked questions

Is the INSPIRE-HEP API free?

Yes, free and key-free, and the metadata is released under CC0 so you can redistribute it without restriction. Only fair-use throttling applies.

How do I get BibTeX out of INSPIRE?

Add `format=bibtex` to any record or search URL, or follow the `links.bibtex` URL that comes back with every hit. The same mechanism produces LaTeX and CV formats.

What query syntax does INSPIRE use?

Its own, inherited from SPIRES: `a` for author, `t` for title, `d` for date, `j` for journal, combined with `and`, `or` and `not`. Modern Lucene-style field queries also work for some fields, but the short operators are what the documentation and community use.

Does INSPIRE cover anything outside particle physics?

Only at the edges. Its scope is high-energy physics and closely related fields including astroparticle physics and accelerator science. For general physics coverage, arXiv or Semantic Scholar are better starting points.

Tools that pair with this API

INSPIRE-HEP is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.