IEEE APIieeexplore.ieee.org ↗
Search and retrieve academic papers, journal metadata, full-text sections, and reference lists from IEEE Xplore's digital library via a structured REST API.
What is the IEEE API?
The IEEE Xplore API exposes 6 endpoints for searching and retrieving scholarly content from the IEEE digital library, covering conference papers, journals, and magazines. With search_papers you can query by keyword and sort by relevance, citation count, or publication date. Individual papers return over a dozen metadata fields including DOI, author affiliations, ORCID identifiers, keyword groups, and citation metrics.
curl -X GET 'https://api.parse.bot/scraper/494809ae-a9d9-4264-aeaa-a0655dd58dbc/search_papers?page=1&rows=5&query=machine+learning&sort_type=relevance' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ieeexplore-ieee-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.ieee_xplore_api import IEEEXplore, Sort, ContentType
client = IEEEXplore()
# Search for papers on deep learning, sorted by most cited
for paper in client.papers.search(query="deep learning", sort=Sort.MOST_CITED, rows=5):
print(paper.title, paper.publication_year, paper.citation_count)
# Get full details for a specific paper
detail = client.papers.get(article_number="9547332")
print(detail.title, detail.doi, detail.is_open_access)
# Walk sub-resources: references and sections
for ref in detail.references.list():
print(ref.order, ref.title, ref.google_scholar_link)
for section in detail.sections.list():
print(section.title, section.content[:100])
# Browse publications (journals & magazines)
for pub in client.publications.browse(content_type=ContentType.PERIODICALS):
print(pub.display_title, pub.all_years, pub.is_open_access)
# List articles from a specific publication issue
ieee_access = client.publication(publication_number="6287639")
for article in ieee_access.articles.list(issue_number="11323511"):
print(article.title, article.publication_year)
Full-text search across IEEE Xplore's corpus of papers, journals, standards, and conferences. Matches query against titles, abstracts, and full text. Returns paginated results ordered by the chosen sort. Each result includes article metadata (title, authors, year, citation count, abstract snippet, content type). Pagination via page number; total result count returned for client-side page control.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based) |
| rows | integer | Results per page (max 100) |
| queryrequired | string | Search keyword or phrase to match against titles, abstracts, and full text |
| sort_type | string | Sort order for results |
{
"type": "object",
"fields": {
"records": "array of article objects with articleTitle, articleNumber, authors, publicationYear, citationCount, abstract, doi, contentType, and more",
"totalPages": "integer total number of pages",
"totalRecords": "integer total number of matching results"
},
"sample": {
"data": {
"records": [
{
"doi": "10.1109/ISML60050.2024.11007439",
"authors": [
{
"preferredName": "Nadimpalli Madana Kailash Varma"
}
],
"abstract": "In bustling urban cities...",
"contentType": "IEEE Conferences",
"articleTitle": "Machine Learning-Enabled Smart Transit",
"articleNumber": "11007439",
"citationCount": 4,
"publicationYear": "2024"
}
],
"totalPages": 60000,
"totalRecords": 508972
},
"status": "success"
}
}About the IEEE API
Search and Paper Metadata
The search_papers endpoint accepts a required query string and supports pagination via page and rows (up to 100 results per page). The sort_type parameter accepts relevance, newest, oldest, most-cited, or paper-citations. Each record in the records array includes articleTitle, articleNumber, authors, publicationYear, citationCount, abstract, doi, and publication details. The totalRecords and totalPages fields let you walk through the full result set systematically.
Per-Paper Detail and Full Text
get_paper_details takes an article_number and returns a richer payload: isOpenAccess flag, keywords grouped by type (e.g. IEEE terms, author keywords), metrics with citation and download counts, author objects carrying affiliation, bio, and orcid, plus startPage and endPage for print-location tracking. get_paper_full_text_sections returns an array of sections, each with a title and content string. For open-access articles this includes the full HTML text; for subscription-gated papers the response covers the abstract section only.
References and Journal Browsing
get_paper_references returns an ordered references array where each entry includes the citation text, a title, IEEE Xplore links when the cited work is indexed, and a googleScholarLink. For browsing the publication catalog, browse_journals accepts an optional content_type filter (periodicals, books, or conferences) and returns publication objects with publicationNumber, allYears, and isOpenAccess. To retrieve articles from a specific issue, call get_journal_articles with a punumber (from browse_journals) and, once you have the available issue list, add the issue_number to retrieve the article records for that issue.
The IEEE API is a managed, monitored endpoint for ieeexplore.ieee.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ieeexplore.ieee.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ieeexplore.ieee.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Building a literature review tool that aggregates citation counts and abstracts for a keyword-defined research topic.
- Tracking publication trends over time by sorting
search_papersresults bynewestoroldestand grouping bypublicationYear. - Extracting author affiliation and ORCID data from
get_paper_detailsto map institutional research output. - Constructing reference graphs by following
get_paper_referenceslinks across multiple IEEE-indexed papers. - Monitoring open-access availability of a journal's articles using the
isOpenAccessfield frombrowse_journalsandget_journal_articles. - Populating a citation database by combining
doi,citationCount, andkeywordsfields across a large search result set. - Filtering conference proceedings by content type using
browse_journalswithcontent_type=conferencesto scope downstream article retrieval.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does IEEE Xplore have an official developer API?+
What does `get_paper_full_text_sections` actually return for a paywalled article?+
sections array contains the abstract section only. Open-access articles return the full HTML content divided into named sections such as Introduction, Methodology, and Conclusion. The isOpenAccess field from get_paper_details tells you in advance which case applies.Does the API return author profile pages or citation graphs across authors?+
get_paper_details returns author objects with name, affiliation, bio, and ORCID for each listed author, and get_paper_references links out to referenced works. Dedicated author profile pages (publication lists, h-index) are not currently an endpoint. You can fork this API on Parse and revise it to add an author-profile endpoint.Is there a limit to how many results `search_papers` can return per request?+
rows parameter accepts a maximum of 100 results per request. Use page alongside totalPages to paginate through the full result set when total matches exceed 100.Does the API cover IEEE standards documents or only journals and conference papers?+
content_type parameter in browse_journals. IEEE standards documents are not currently exposed as a distinct content type. You can fork this API on Parse and revise it to add a standards-specific browsing endpoint.