Awesome-Agent-Skills-for-Empirical-Research ieee-xplore-api

Search IEEE's 6M+ engineering and CS publications via the Xplore API

install
source · Clone the upstream repo
git clone https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/43-wentorai-research-plugins/skills/literature/search/ieee-xplore-api" ~/.claude/skills/brycewang-stanford-awesome-agent-skills-for-empirical-research-ieee-xplore-api && rm -rf "$T"
manifest: skills/43-wentorai-research-plugins/skills/literature/search/ieee-xplore-api/SKILL.md
source content

IEEE Xplore API

Overview

IEEE Xplore provides access to over 6 million technical documents — journal articles, conference proceedings, technical standards, and books — covering electrical engineering, computer science, and related fields. The API enables metadata search, full-text access (with subscription), and DOI-based batch lookup. Requires an API key (free registration) and institutional subscription for full features.

API Endpoints

Base URL

https://ieeexploreapi.ieee.org/api/v1/search/articles

Metadata Search

# Basic keyword search
curl "https://ieeexploreapi.ieee.org/api/v1/search/articles?\
apikey=YOUR_API_KEY&\
querytext=transformer+attention+mechanism&\
max_records=25"

# Search with filters
curl "https://ieeexploreapi.ieee.org/api/v1/search/articles?\
apikey=YOUR_API_KEY&\
querytext=federated+learning&\
start_year=2022&\
end_year=2026&\
content_type=Conferences&\
max_records=50"

Query Parameters

ParameterDescriptionExample
apikey
API key (required)
apikey=YOUR_KEY
querytext
Free-text search
querytext=neural+network
article_title
Title search
article_title=BERT
author
Author name
author=Vaswani
abstract
Abstract search
abstract=reinforcement+learning
index_terms
IEEE keyword terms
index_terms=machine+learning
d-au
Exact author
d-au=Yann+LeCun
start_year
From year
start_year=2020
end_year
To year
end_year=2026
content_type
Document type
Journals
,
Conferences
,
Standards
,
Books
publication_title
Venue name
publication_title=CVPR
max_records
Results (max 200)
max_records=50
start_record
Pagination offset
start_record=51
sort_field
Sort by
article_date
,
article_title
sort_order
Sort direction
asc
or
desc

Boolean Search

# Boolean operators: AND, OR, NOT
querytext=(machine AND learning) NOT survey

# Phrase search
querytext="graph neural network"

# Field-specific boolean
article_title="attention" AND author="Vaswani"

DOI Batch Lookup

# Look up up to 25 DOIs at once
curl "https://ieeexploreapi.ieee.org/api/v1/search/articles?\
apikey=YOUR_API_KEY&\
doi=10.1109/CVPR.2024.12345&\
doi=10.1109/TPAMI.2023.67890"

Response Structure

{
  "total_records": 1250,
  "articles": [
    {
      "title": "Article Title",
      "authors": {
        "authors": [
          {"full_name": "Author Name", "affiliation": "University"}
        ]
      },
      "abstract": "The abstract text...",
      "publication_title": "IEEE CVPR 2024",
      "content_type": "Conferences",
      "doi": "10.1109/CVPR.2024.12345",
      "publication_date": "2024-06-01",
      "start_page": "100",
      "end_page": "110",
      "citing_paper_count": 15,
      "pdf_url": "https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=12345",
      "html_url": "https://ieeexplore.ieee.org/document/12345"
    }
  ]
}

Python Usage

import os
import requests

API_KEY = os.environ["IEEE_API_KEY"]
BASE_URL = "https://ieeexploreapi.ieee.org/api/v1/search/articles"

def search_ieee(query: str, max_results: int = 25,
                content_type: str = None, start_year: int = None) -> list:
    """Search IEEE Xplore for technical publications."""
    params = {
        "apikey": API_KEY,
        "querytext": query,
        "max_records": max_results,
        "sort_field": "article_date",
        "sort_order": "desc"
    }
    if content_type:
        params["content_type"] = content_type
    if start_year:
        params["start_year"] = start_year

    resp = requests.get(BASE_URL, params=params)
    resp.raise_for_status()
    data = resp.json()

    results = []
    for article in data.get("articles", []):
        authors = [a["full_name"] for a in article.get("authors", {}).get("authors", [])]
        results.append({
            "title": article.get("title"),
            "authors": authors,
            "venue": article.get("publication_title"),
            "year": article.get("publication_date", "")[:4],
            "doi": article.get("doi"),
            "citations": article.get("citing_paper_count", 0),
            "url": article.get("html_url")
        })
    return results

# Example
papers = search_ieee("edge computing IoT", content_type="Journals", start_year=2023)
for p in papers:
    print(f"[{p['year']}] {p['title']} — {p['venue']} (cited: {p['citations']})")

Access Tiers

TierAccess LevelRequirements
FreeMetadata + abstractsAPI key registration
Open AccessFull text of OA articlesAPI key
InstitutionalFull text of all articlesAPI key + subscription

References