Check the setup
- Python 3.10 or newer
- A notebook environment such as Jupyter or Google Colab
- An internet connection
Open preprint descriptive metadata for building topic alerts and research discovery tools that link back to arXiv.
From source to product signal
The arXiv API returns Atom feeds of e-print metadata. Start with one category and a handful of recent results. Metadata is CC0; full-text PDFs remain under each paper's license, and a preprint is not a peer-reviewed journal record.
Install the packages, then run the notebook cell.
python -m pip install pandas requests
import xml.etree.ElementTree as ET
import pandas as pd
import requests
response = requests.get(
"https://export.arxiv.org/api/query",
params={
"search_query": "cat:cs.LG",
"start": 0,
"max_results": 5,
"sortBy": "submittedDate",
"sortOrder": "descending",
},
timeout=30,
)
response.raise_for_status()
ns = {"atom": "http://www.w3.org/2005/Atom"}
root = ET.fromstring(response.text)
rows = []
for entry in root.findall("atom:entry", ns):
rows.append({
"id": entry.findtext("atom:id", default="", namespaces=ns),
"title": " ".join((entry.findtext("atom:title", default="", namespaces=ns) or "").split()),
"published": entry.findtext("atom:published", default="", namespaces=ns),
})
preprints = pd.DataFrame(rows)
preprints["retrieved_at_utc"] = pd.Timestamp.now(tz="UTC")
print(preprints)Test a useful signal
List five recent cs.LG submissions and their arXiv identifiers.
arXiv is an academic source. Last verified 2026-08-14. Temporal coverage: 1991-present.