Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Search IEEE's 6M+ engineering and CS publications via the Xplore API
.claude/skills/brycewang-stanford-ieee-xplore-api/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -9% | 0% |
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.
https://ieeexploreapi.ieee.org/api/v1/search/articlesbash# 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"
| Parameter | Description | Example | |-----------|-------------|---------| | 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 |
bash# 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"
bash# 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"
json{ "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" } ] }
pythonimport 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']})")
| Tier | Access Level | Requirements | |------|-------------|-------------| | Free | Metadata + abstracts | API key registration | | Open Access | Full text of OA articles | API key | | Institutional | Full text of all articles | API key + subscription |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 12,761 | 15,103 | +18% | 1 | 1 | 0% | 2,814 | 4,219 | +50% | 0 | 0 | — |
case-02 | fail→pass | 13,367 | 3,891 | -71% | 1 | 1 | 0% | 2,610 | 2,495 | -4% | 0 | 0 | — |
case-03 | pass→pass | 5,928 | 2,052 | -65% | 1 | 1 | 0% | 890 | 1,905 | +114% | 0 | 0 | — |
case-04 | pass→pass | 8,754 | 7,980 | -9% | 1 | 1 | 0% | 1,700 | 2,915 | +71% | 0 | 0 | — |
case-05 | pass→pass | 13,385 | 3,295 | -75% | 1 | 1 | 0% | 1,236 | 2,267 | +83% | 0 | 0 | — |
case-06 | fail→pass | 6,988 | 3,075 | -56% | 1 | 1 | 0% | 1,006 | 2,036 | +102% | 0 | 0 | — |
case-07 | pass→pass | 5,395 | 4,552 | -16% | 1 | 1 | 0% | 881 | 2,157 | +145% | 0 | 0 | — |
case-08 | fail→pass | 7,993 | 1,883 | -76% | 1 | 1 | 0% | 1,262 | 2,032 | +61% | 0 | 0 | — |
case-09 | pass→pass | 4,285 | 3,733 | -13% | 1 | 1 | 0% | 732 | 1,960 | +168% | 0 | 0 | — |
case-10 | pass→pass | 10,841 | 5,582 | -49% | 1 | 1 | 0% | 1,779 | 2,395 | +35% | 0 | 0 | — |
case-11 | pass→pass | 12,548 | 5,399 | -57% | 1 | 1 | 0% | 1,662 | 2,633 | +58% | 0 | 0 | — |
case-12 | fail→fail | 10,705 | 7,165 | -33% | 1 | 1 | 0% | 1,988 | 2,990 | +50% | 0 | 0 | — |
case-13 | pass→pass | 6,984 | 4,095 | -41% | 1 | 1 | 0% | 1,212 | 2,214 | +83% | 0 | 0 | — |
case-14 | pass→fail | 8,756 | 3,112 | -64% | 1 | 1 | 0% | 1,413 | 2,187 | +55% | 0 | 0 | — |
case-15 | fail→pass | 16,057 | 3,375 | -79% | 1 | 1 | 0% | 2,417 | 2,203 | -9% | 0 | 0 | — |
case-16 | pass→pass | 30,362 | 2,837 | -91% | 1 | 1 | 0% | 1,237 | 2,082 | +68% | 0 | 0 | — |
case-17 | pass→pass | 5,827 | 2,861 | -51% | 1 | 1 | 0% | 976 | 2,020 | +107% | 0 | 0 | — |
case-18 | pass→pass | 7,395 | 8,513 | +15% | 1 | 1 | 0% | 1,696 | 3,084 | +82% | 0 | 0 | — |
case-19 | pass→pass | 12,380 | 4,359 | -65% | 1 | 1 | 0% | 1,856 | 2,245 | +21% | 0 | 0 | — |
case-20 | pass→pass | 9,872 | 12,292 | +25% | 1 | 1 | 0% | 2,002 | 3,597 | +80% | 0 | 0 | — |
case-21 | pass→pass | 16,153 | 13,589 | -16% | 1 | 1 | 0% | 2,598 | 4,609 | +77% | 0 | 0 | — |
case-22 | pass→pass | 8,254 | 6,318 | -23% | 1 | 1 | 0% | 1,517 | 2,859 | +88% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +18 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.