AEAweb APIaeaweb.org ↗
Search AEA journals and retrieve article details including abstracts, authors, JEL codes, and citation data via two structured endpoints.
What is the AEAweb API?
The AEAweb.org API provides two endpoints for querying the American Economic Association's journal catalog, covering publications including the American Economic Review, Journal of Economic Literature, and the AEJ series. search_articles returns paginated results with DOI, authors, and publication date; get_article retrieves full article metadata across 12 fields including JEL codes, volume, issue, and page range.
curl -X GET 'https://api.parse.bot/scraper/80605ece-92d9-4b39-b967-e5ab59e79e1e/search_articles?page=1&query=inflation&journal=aer&per_page=5&search_in_title=1&search_in_author=1&search_in_abstract=1' \ -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 aeaweb-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.
"""Walkthrough: AEA Journals SDK — search economics papers and retrieve article details."""
from parse_apis.aea_journals_search_api import AEA, Journal, ArticleNotFound
client = AEA()
# Search for articles about inflation across all journals
for summary in client.articlesummaries.search(query="inflation", limit=5):
print(summary.title, summary.published_date, summary.doi)
# Drill into one article's full metadata via the summary → detail navigation
summary = client.articlesummaries.search(query="monetary policy", journal=Journal.AER, limit=1).first()
if summary:
article = summary.details()
print(article.title, article.journal, article.year)
for jel in article.jel_codes:
print(jel.code, jel.description)
# Fetch a specific article directly by DOI
try:
article = client.articles.get(doi="10.1257/aer.20200636")
print(article.title, article.abstract[:100], article.citation_volume)
except ArticleNotFound as exc:
print(f"Article not found: {exc.doi}")
print("exercised: articlesummaries.search / summary.details / articles.get")
Full-text search across all AEA journals by keyword. Matches against title, abstract, and author fields (each togglable). Results are paginated; each page returns article summaries (DOI, title, authors, publication date). Filter by journal code to scope to a single publication. The server returns up to per_page results per request.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| queryrequired | string | Search keyword or phrase |
| journal | string | Filter by journal code. Empty string searches all journals. |
| per_page | integer | Results per page |
| search_in_title | string | Search in article titles. Accepted values: '1' (yes), '0' (no). |
| search_in_author | string | Search in author names. Accepted values: '1' (yes), '0' (no). |
| search_in_abstract | string | Search in article abstracts. Accepted values: '1' (yes), '0' (no). |
{
"type": "object",
"fields": {
"page": "integer — current page number",
"query": "string — the search query used",
"articles": "array of article summary objects with doi, title, url, authors, published_date, and issue_id",
"per_page": "integer — results per page",
"total_pages": "integer — total number of pages available",
"results_count": "integer — number of articles returned on this page"
}
}About the AEAweb API
Search Across AEA Journals
The search_articles endpoint accepts a required query string and optional filters to narrow results. The journal parameter accepts codes such as aer, jel, or jep to restrict results to a single publication. Three boolean flags — search_in_title, search_in_abstract, and search_in_author — control which article fields the query is matched against. Responses include a results_count, total_pages, and a per-page array of article objects each carrying doi, title, url, authors, published_date, and issue_id. Pagination is handled with the page and per_page parameters.
Detailed Article Retrieval
The get_article endpoint takes a single doi parameter (e.g., 10.1257/aer.20200636) and returns a full record for that article. Response fields include title, authors (array of name strings), journal, date, year, volume, issue, pages, url, and doi. This endpoint is the primary way to retrieve structured bibliographic data for a known article without parsing the journal page directly.
Coverage and Data Shape
All data reflects articles published in AEA-managed journals. The get_article response includes a date field formatted as a human-readable month and year string (e.g., July 2023) alongside a separate year field. Author names are returned as a flat array of strings. JEL classification codes, where present, are included in the article detail response, making it straightforward to group or filter articles by economic subject area after retrieval.
The AEAweb API is a managed, monitored endpoint for aeaweb.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when aeaweb.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 aeaweb.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?+
- Build a literature review tool that searches AEA journals by keyword and filters results to a specific journal using the
journalparameter. - Aggregate publication metadata for a given author by querying
search_articleswithsearch_in_authorenabled. - Construct a citation database by resolving DOIs via
get_articleto collect volume, issue, page range, and author data. - Track newly published articles in a specific AEJ journal by querying
search_articleswith a journal code filter on a schedule. - Classify economics research by JEL code by retrieving article details and grouping on the returned classification fields.
- Feed structured article metadata into a reference manager or bibliography formatter using the
authors,title,journal,volume, andpagesfields.
| 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 the American Economic Association provide an official developer API?+
What does `get_article` return that `search_articles` does not?+
get_article returns volume, issue, pages, year, date, and JEL classification codes. The search_articles endpoint returns only doi, title, url, authors, published_date, and issue_id per article — enough to identify a result, but not for full bibliographic records.Can I search across multiple journals in a single request?+
journal filter in search_articles accepts one journal code per request. To search across multiple specific journals simultaneously, you would need to issue separate requests per journal code. You can fork this API on Parse and revise it to add a multi-journal filter endpoint.Does the API return full article text or PDF links?+
get_article endpoint covers bibliographic fields: title, authors, abstract-adjacent data, JEL codes, journal, volume, issue, pages, date, and DOI. You can fork this API on Parse and revise it to add a PDF-link or full-text endpoint if that data is accessible.