3.1.00.0.1The Elicit API provides programmatic access to Elicit's research capabilities, including semantic search over 125 million+ academic papers and automated report generation.
All API requests require a Bearer token in the Authorization header:
Authorization: Bearer elk_live_your_key_here
API keys can be created and managed from your Elicit account settings.
API access requires a Pro plan or above. There is no extra charge for API access beyond your subscription. Reports and systematic reviews created via the API count against your workflow quota, the same as those created through the web interface. Systematic reviews are available on the Enterprise plan only. Search requests are rate-limited based on your plan tier — see the Search endpoint for details.
Manage your plan in account settings.
Working examples in curl, Python, and JavaScript, plus integrations (CLI tool, Slack bot, Claude Code skill):
github.com/elicit/api-examples
All errors return a consistent JSON structure with an error object containing a machine-readable code and a human-readable message.
All API functionality is also available via MCP (Model Context Protocol) server, enabling use from Claude Desktop, Claude Code, and other MCP-compatible clients. Authentication is via OAuth 2.0.
claude mcp add --transport http elicit https://elicit.com/api/mcp
Then run /mcp, select the elicit server, and choose Authenticate to open a browser for login.
Via the UI: Click the icon next to your name > Settings > Connectors > Add custom connector. Enter Elicit for the name and https://elicit.com/api/mcp for the URL.
Or via config file — add to claude_desktop_config.json:
{
"mcpServers": {
"elicit": {
"type": "url",
"url": "https://elicit.com/api/mcp"
}
}
}
Connect any MCP client using HTTP transport to https://elicit.com/api/mcp. OAuth discovery is available at https://elicit.com/api/mcp/.well-known/oauth-protected-resource.
For MCP setup guides, tool reference, and usage examples, see github.com/elicit/api-examples/tree/main/integrations/mcp.
https://elicit.comPOST/api/v1/searchSearch Elicit's database of over 125 million academic papers using natural language queries.
Semantic search uses natural language understanding to find relevant papers even when the exact terms don't match.
Set corpus to pubmed to restrict results to PubMed, or leave it as the default elicit for the full paper index. Set searchMode to "keyword" to interpret the query as a Lucene-style boolean expression instead of natural language.
Filters and searchMode: "keyword" are mutually exclusive — put any filter expressions directly into the query string when using keyword search. Mixing them returns a 400.
To search clinical trials instead, use POST /api/v1/search/trials.
POST /api/v1/search and POST /api/v1/search/trials share a single rate-limit bucket — requests to either count toward the same per-day total.
| Plan | Results per request | Requests per day |
|---|---|---|
| Basic | No access | No access |
| Plus | No access | No access |
| Pro | 100 | 100 |
| Scale | 200 | 200 |
| Enterprise | 10,000 | No limit |
Every search response — both successful (200) and rate-limit-exceeded (429) — includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so you can track usage without having to hit the limit. X-RateLimit-Reset is a Unix epoch timestamp (seconds) for when the oldest request in your rolling 24-hour window expires and a slot opens up. Plans with no daily limit (Enterprise) do not receive these headers.
Upgrade your plan in account settings for higher limits.
curl -X POST https://elicit.com/api/v1/search \
-H "Authorization: Bearer elk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"query": "effects of sleep deprivation on cognitive performance"}'
query (required)string — The search query string
corpusstring, possible values: "elicit", "pubmed", default: "elicit" — Paper corpus to search. `elicit` (default) searches Elicit's full paper index; `pubmed` restricts to PubMed.
filtersobject — Filters to narrow search results
excludeKeywordsarray — Keywords to exclude from results
string
hasPdfboolean — Only include papers with available PDFs
includeKeywordsarray — Keywords that must appear in the paper
string
maxEpochSinteger — Maximum publication date as Unix epoch seconds
maxQuartileinteger — Maximum journal quartile (1 = top 25%)
maxYearinteger — Maximum publication year
minEpochSinteger — Minimum publication date as Unix epoch seconds
minYearinteger — Minimum publication year
pubmedOnlyboolean — Only include papers from PubMed
retractedstring, possible values: "exclude_retracted", "include_retracted", "only_retracted" — How to handle retracted papers. Defaults to exclude_retracted.
typeTagsarray — Filter by study type
string, possible values: "Review", "Meta-Analysis", "Systematic Review", "RCT", "Longitudinal"
maxResultsinteger, default: 10 — Maximum number of results to return (1-10000)
searchModestring, possible values: "semantic", "keyword", default: "semantic" — How to interpret `query`. `semantic` (default) runs Elicit's semantic search. `keyword` sends the query as a Lucene-style boolean expression directly to the corpus search API. Mutually exclusive with `filters` / `trialFilters` — put filter expressions into the query string in keyword mode.
Example:
{
"query": "GLP-1 receptor agonists for weight loss",
"searchMode": "semantic",
"maxResults": 10,
"corpus": "elicit",
"filters": {
"minYear": 2020,
"maxYear": 2025,
"minEpochS": 1672531200,
"maxEpochS": 1779287825,
"maxQuartile": 2,
"includeKeywords": [
"semaglutide",
"liraglutide"
],
"excludeKeywords": [
"rodent",
"mouse model"
],
"typeTags": [
"RCT",
"Meta-Analysis"
],
"hasPdf": false,
"pubmedOnly": false,
"retracted": "exclude_retracted"
}
}papers (required)array — Papers matching the query
abstract (required)string | null — Paper abstract
authors (required)array — List of author names
string
citedByCount (required)integer | null — Number of citations this paper has received
doi (required)string | null — Digital Object Identifier
elicitId (required)string | null — Elicit internal paper identifier
pmid (required)string | null — PubMed identifier
title (required)string — Paper title
urls (required)array — URLs for the paper
string
venue (required)string | null — Publication venue
year (required)integer | null — Publication year
warningsarray — Non-fatal warnings emitted while executing the search (e.g. phrases ignored by the PubMed parser).
corpus (required)string, possible values: "elicit", "pubmed", "clinical_trials" — Corpus that emitted the warning
message (required)string — Human-readable warning message
searchMode (required)string, possible values: "semantic", "keyword" — Search mode in effect when the warning was emitted
warningDetails (required)object
messages (required)array — Underlying warning messages
string
type (required)string — Warning category
Example:
{
"papers": [
{
"elicitId": null,
"title": "",
"authors": [
""
],
"year": null,
"abstract": null,
"doi": null,
"pmid": null,
"venue": null,
"citedByCount": null,
"urls": [
""
]
}
],
"warnings": [
{
"corpus": "elicit",
"searchMode": "semantic",
"message": "",
"warningDetails": {
"type": "",
"messages": [
""
]
}
}
]
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}POST/api/v1/search/trialsSearch for clinical trials. Trial records come from ClinicalTrials.gov.
Pass trialFilters to narrow by phase, recruitment status, or whether the trial has posted results. Set searchMode to "keyword" to send the query as a Lucene-style boolean expression directly to the underlying advanced-filter API.
Filters and searchMode: "keyword" are mutually exclusive — put filter expressions directly into the query when using keyword search. Mixing them returns a 400.
To search academic papers instead, use POST /api/v1/search.
POST /api/v1/search and POST /api/v1/search/trials share a single rate-limit bucket — requests to either count toward the same per-day total.
| Plan | Results per request | Requests per day |
|---|---|---|
| Basic | No access | No access |
| Plus | No access | No access |
| Pro | 100 | 100 |
| Scale | 200 | 200 |
| Enterprise | 10,000 | No limit |
Every search response — both successful (200) and rate-limit-exceeded (429) — includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so you can track usage without having to hit the limit. X-RateLimit-Reset is a Unix epoch timestamp (seconds) for when the oldest request in your rolling 24-hour window expires and a slot opens up. Plans with no daily limit (Enterprise) do not receive these headers.
Upgrade your plan in account settings for higher limits.
curl -X POST https://elicit.com/api/v1/search/trials \
-H "Authorization: Bearer elk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"query": "semaglutide obesity", "trialFilters": {"phase": ["PHASE3"]}}'
query (required)string — The search query string
maxResultsinteger, default: 10 — Maximum number of results to return (1-10000)
searchModestring, possible values: "semantic", "keyword", default: "semantic" — How to interpret `query`. `semantic` (default) runs Elicit's semantic search. `keyword` sends the query as a Lucene-style boolean expression directly to the corpus search API. Mutually exclusive with `filters` / `trialFilters` — put filter expressions into the query string in keyword mode.
trialFiltersobject — Clinical-trials filters (phase, recruitment status, results)
hasResultsboolean — Only include trials that have posted results
phasearray — Clinical trial phases to include
string, possible values: "NA", "EARLY_PHASE1", "PHASE1", "PHASE2", "PHASE3", "PHASE4"
recruitmentStatusarray — Trial recruitment statuses to include
string, possible values: "ACTIVE_NOT_RECRUITING", "COMPLETED", "ENROLLING_BY_INVITATION", "NOT_YET_RECRUITING", "RECRUITING", "SUSPENDED", "TERMINATED", "WITHDRAWN", "AVAILABLE"
Example:
{
"query": "GLP-1 receptor agonists for weight loss",
"searchMode": "semantic",
"maxResults": 10,
"trialFilters": {
"phase": [
"PHASE2",
"PHASE3"
],
"recruitmentStatus": [
"RECRUITING",
"ACTIVE_NOT_RECRUITING"
],
"hasResults": true
}
}trials (required)array — Clinical trials matching the query
completionDate (required)string | null — Completion date (ISO `YYYY-MM-DD` or partial).
conditions (required)array — Conditions / diseases being studied.
string
enrollmentCount (required)integer | null — Actual or anticipated enrollment count.
hasResults (required)boolean | null — Whether the trial has posted results.
interventions (required)array — Intervention names.
string
lastUpdatedYear (required)integer | null — Year the trial record was last updated.
leadSponsor (required)string | null — Lead sponsor name.
nctId (required)string — NCT identifier for the trial
overallStatus (required)string | null — Overall recruitment status (RECRUITING, COMPLETED, TERMINATED, etc.). Null when the trial has no status posted.
phase (required)array — Trial phases (may list multiple, e.g. PHASE2 + PHASE3). Empty for N/A.
string
primaryCompletionDate (required)string | null — Primary completion date (ISO `YYYY-MM-DD` or partial).
startDate (required)string | null — Trial start date (ISO `YYYY-MM-DD` or partial).
studyType (required)string | null — Study type (INTERVENTIONAL, OBSERVATIONAL, EXPANDED_ACCESS).
summary (required)string | null — Plain-text trial description / brief summary
title (required)string — Trial title
url (required)string — Link to the trial's public record
warningsarray — Non-fatal warnings emitted while executing the search.
corpus (required)string, possible values: "elicit", "pubmed", "clinical_trials" — Corpus that emitted the warning
message (required)string — Human-readable warning message
searchMode (required)string, possible values: "semantic", "keyword" — Search mode in effect when the warning was emitted
warningDetails (required)object
messages (required)array — Underlying warning messages
string
type (required)string — Warning category
Example:
{
"trials": [
{
"nctId": "NCT05646706",
"title": "",
"summary": null,
"url": "https://clinicaltrials.gov/study/NCT05646706",
"overallStatus": null,
"phase": [
""
],
"studyType": null,
"enrollmentCount": null,
"conditions": [
""
],
"interventions": [
""
],
"leadSponsor": null,
"startDate": null,
"primaryCompletionDate": null,
"completionDate": null,
"hasResults": null,
"lastUpdatedYear": null
}
],
"warnings": [
{
"corpus": "elicit",
"searchMode": "semantic",
"message": "",
"warningDetails": {
"type": "",
"messages": [
""
]
}
}
]
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}POST/api/v1/reportsStart an asynchronous report generation job. Elicit will search for relevant papers, screen them for relevance, extract structured data, and produce a full research report.
Reports are long-running operations (typically 5–15 minutes). The response includes a reportId that you use to poll for status via GET /api/v1/reports/:reportId.
The report is also visible at the url returned in the response, where you can watch it progress in real time.
reportId)status is completed or failedpdfUrl and docxUrl fields on the completed response to download the report# 1. Create the report
curl -X POST https://elicit.com/api/v1/reports \
-H "Authorization: Bearer elk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"researchQuestion": "What are the effects of GLP-1 receptor agonists on cardiovascular outcomes?"}'
# 2. Poll for completion (repeat until status is "completed" or "failed")
curl https://elicit.com/api/v1/reports/{reportId} \
-H "Authorization: Bearer elk_live_your_key_here"
researchQuestion (required)string — The research question to investigate. Elicit will search for relevant papers, screen them, and extract data to produce a structured report.
isPublicboolean, default: false — Whether the report should be publicly accessible via its URL without authentication. Defaults to false.
maxExtractPapersinteger, default: 10 — Maximum number of papers to include in the final extraction table. Papers are screened for relevance before extraction. Defaults to 10.
maxSearchPapersinteger, default: 50 — Maximum number of papers to retrieve during the search phase. More papers means a more comprehensive but slower report. Defaults to 50.
titlestring — Optional title for the report. If provided, Elicit will use this as the report title instead of generating one automatically from the research question.
Example:
{
"researchQuestion": "What are the effects of GLP-1 receptor agonists on cardiovascular outcomes?",
"title": "GLP-1 Receptor Agonists and Cardiovascular Outcomes",
"maxSearchPapers": 50,
"maxExtractPapers": 10,
"isPublic": false
}isPublic (required)boolean — Whether the report is publicly accessible via its URL without authentication
reportId (required)string — Unique identifier for the report. Use this to poll for status.
status (required)string — Initial status is always processing
url (required)string — URL to view the report in the Elicit web interface as it progresses
Example:
{
"reportId": "5ad08bfb-cbe0-4911-a8c3-309760d33029",
"status": "processing",
"url": "https://elicit.com/review/5ad08bfb-cbe0-4911-a8c3-309760d33029",
"isPublic": false
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}GET/api/v1/reportsList all reports for the authenticated user, ordered by creation date (newest first).
Results are paginated using cursor-based pagination. Use the nextCursor value from the response to fetch the next page.
# First page
curl https://elicit.com/api/v1/reports?limit=10 \
-H "Authorization: Bearer elk_live_your_key_here"
# Next page
curl "https://elicit.com/api/v1/reports?limit=10&cursor=2025-06-15T14:30:00.000Z" \
-H "Authorization: Bearer elk_live_your_key_here"
# Filter to API-created reports only
curl https://elicit.com/api/v1/reports?source=api \
-H "Authorization: Bearer elk_live_your_key_here"
nextCursor (required)string | null — Cursor for the next page of results. Null if there are no more results.
reports (required)array — List of reports
createdAt (required)string — ISO 8601 timestamp of when the report was created
isPublic (required)boolean — Whether the report is publicly accessible via its URL without authentication
reportId (required)string — Unique identifier for the report
source (required)string, possible values: "api", "user" — How the report was created
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status of the report
title (required)string — Report title (the research question)
url (required)string — URL to view the report in the Elicit web interface
Example:
{
"reports": [
{
"reportId": "5ad08bfb-cbe0-4911-a8c3-309760d33029",
"status": "processing",
"title": "What are the effects of GLP-1 receptor agonists on cardiovascular outcomes?",
"url": "https://elicit.com/review/5ad08bfb-cbe0-4911-a8c3-309760d33029",
"source": "api",
"createdAt": "2025-06-15T14:30:00.000Z",
"isPublic": false
}
],
"nextCursor": "2025-06-15T14:30:00.000Z"
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}GET/api/v1/reports/{reportId}Poll the status of a report created via POST /api/v1/reports.
url.result field contains the report content.error field contains details.Poll every 30–60 seconds. Reports typically complete in 5–15 minutes depending on the number of papers.
By default, the reportBody and abstract fields are omitted to keep polling responses lightweight. To include them, add ?include=reportBody to the request.
# Poll for status
curl https://elicit.com/api/v1/reports/{reportId} \
-H "Authorization: Bearer elk_live_your_key_here"
# Fetch with full report body
curl "https://elicit.com/api/v1/reports/{reportId}?include=reportBody" \
-H "Authorization: Bearer elk_live_your_key_here"
isPublic (required)boolean — Whether the report is publicly accessible via its URL without authentication
reportId (required)string — Unique identifier for the report
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status of the report. Transitions: processing → completed/failed. Poll until completed or failed.
url (required)string — URL to view the report in the Elicit web interface
docxUrlstring | null — Pre-signed URL to download the report as DOCX. Only present when status is completed and assets have been generated. Expires after 7 days — re-fetch the report for a fresh URL.
errorobject — Error details, only present when status is failed
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
pdfUrlstring | null — Pre-signed URL to download the report as PDF. Only present when status is completed and assets have been generated. Expires after 7 days — re-fetch the report for a fresh URL.
resultobject — Report output, only present when status is completed
summary (required)string — AI-generated executive summary of the findings
title (required)string — Auto-generated title for the report
abstractstring | null — Report abstract in markdown format. Only included when ?include=reportBody is specified.
reportBodystring | null — Full report content in markdown format. Only included when ?include=reportBody is specified.
Example:
{
"reportId": "5ad08bfb-cbe0-4911-a8c3-309760d33029",
"status": "processing",
"url": "https://elicit.com/review/5ad08bfb-cbe0-4911-a8c3-309760d33029",
"isPublic": false,
"result": {
"title": "GLP-1 Receptor Agonists and Cardiovascular Outcomes: A Systematic Review",
"summary": "This review analyzed 42 studies examining the cardiovascular effects of GLP-1 receptor agonists. The evidence suggests significant reductions in major adverse cardiovascular events (MACE), with semaglutide showing the strongest effect (HR 0.74, 95% CI 0.58-0.95)...",
"reportBody": "# Introduction\n\nGLP-1 receptor agonists have emerged as...",
"abstract": "This systematic review examines the cardiovascular effects of..."
},
"error": {
"code": "",
"message": ""
},
"pdfUrl": "https://s3.amazonaws.com/...",
"docxUrl": "https://s3.amazonaws.com/..."
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}POST/api/v1/systematic-reviewsEnterprise plan required.
Start a systematic review. Elicit will run your configured pipeline, including searches, abstract screening, fulltext screening, extraction, and a report.
Systematic reviews are long-running operations. The response includes a reviewId for polling status via GET /api/v1/systematic-reviews/:reviewId. You can also watch progress live at the url in the response.
| Plan | Max columns | Max results per query | Max total results | Figure extraction |
|---|---|---|---|---|
| Pro | 20 | 1,000 | 5,000 | No |
| Scale | 30 | 5,000 | 20,000 | Yes |
| Enterprise | 40 | 10,000 | 40,000 | Yes |
curl -X POST https://elicit.com/api/v1/systematic-reviews \
-H "Authorization: Bearer elk_live_your_key_here" \
-H "Content-Type: application/json" \
-d @config.json
researchQuestion (required)string — The research question the review is investigating.
abstractScreeningobject — Abstract-stage screening. Supply `criteria`, `generate: true`, or both. Omit the field to skip.
criteriaarray — Explicit screening criteria.
instructions (required)string — Plain-language instructions used to judge whether a paper meets this criterion
name (required)string — Short name for the criterion
generateboolean, default: false — When true, Elicit generates additional screening criteria.
extractionobject — Extraction stage. Supply `questions`, `generate`, or both. Omit to skip extraction entirely.
generateboolean, default: false — When true, Elicit generates additional extraction columns.
questionsarray — Explicit extraction columns.
instructions (required)string — Plain-language instructions describing what to extract
name (required)string — Column header for this extraction question
choicesarray — Optional fixed list of allowed answers. Omit for free-text extraction. When set, the model is constrained to one of these values.
string
useFiguresboolean, default: false — When true, model may consult figures (higher quality, slower). Subject to plan availability.
fulltextScreeningobject — Fulltext-stage screening. Supply `criteria`, `reuseAbstractCriteria: true`, or both. Requires `abstractScreening` to be present. Omit to skip.
criteriaarray — Explicit fulltext-stage criteria.
instructions (required)string — Plain-language instructions used to judge whether a paper meets this criterion
name (required)string — Short name for the criterion
reuseAbstractCriteriaboolean, default: false — When true, the abstract-stage criteria are also applied at the fulltext stage.
generateReportboolean, default: false — Generate a full report at the end of the review. Requires `extraction`.
isPublicboolean, default: false — Whether the review should be publicly accessible via its URL without authentication. Defaults to false.
protocolDetailsstring — Free-form context (PICO, methodology, inclusion/exclusion rationale) used when Elicit generates screening criteria, extraction columns, or the final report.
searchesarray, default: [] — Searches that feed the review pipeline. If omitted or empty, Elicit runs a semantic search using `researchQuestion` as the query. Total search results are subject to plan-specific limits.
query (required)string — Search query
corpusstring, possible values: "elicit", "pubmed", "clinical_trials", default: "elicit" — Corpus to search. `elicit` covers ~125M papers across most domains and is the default. `pubmed` filters on literature from Pubmed only. `clinical_trials` is registered trials only.
maxResultsinteger, default: 200 — Maximum number of papers to retrieve from this search. Plan-specific caps apply.
searchModestring, possible values: "semantic", "keyword", default: "semantic" — `semantic` (default) uses vector-similarity retrieval; `keyword` uses literal keyword matching.
titlestring — Optional title for the review.
Example:
{
"researchQuestion": "Do GLP-1 receptor agonists reduce MACE in T2D patients?",
"protocolDetails": "",
"searches": [],
"abstractScreening": {
"criteria": [
{
"name": "Human study",
"instructions": "The study must be conducted in human subjects (not in vitro or animal-only)."
}
],
"generate": false
},
"fulltextScreening": {
"criteria": [
{
"name": "Human study",
"instructions": "The study must be conducted in human subjects (not in vitro or animal-only)."
}
],
"reuseAbstractCriteria": false
},
"extraction": {
"questions": [
{
"name": "MACE hazard ratio",
"instructions": "Extract the hazard ratio and 95% confidence interval for 3-point MACE.",
"choices": [
"yes",
"no",
"maybe"
]
}
],
"generate": false,
"useFigures": false
},
"generateReport": true,
"title": "",
"isPublic": false
}isPublic (required)boolean — Whether the review is publicly accessible via its URL without authentication
reviewId (required)string — Unique identifier for the review. Use this to poll for status.
status (required)string — Initial status is always processing
url (required)string — URL to view the review in the Elicit web interface
Example:
{
"reviewId": "",
"status": "processing",
"url": "",
"isPublic": true
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}GET/api/v1/systematic-reviewsEnterprise plan required.
List all systematic reviews for the authenticated user, ordered by creation date (newest first).
Cursor-based pagination. Use the nextCursor field to fetch the next page.
nextCursor (required)string | null — Cursor for the next page of results. Null if there are no more results.
reviews (required)array — List of systematic reviews
createdAt (required)string — ISO 8601 timestamp of when the review was created
isPublic (required)boolean — Whether the review is publicly accessible via its URL without authentication
reviewId (required)string, format: uuid — Unique identifier for the review
source (required)string, possible values: "api", "user" — How the review was created
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status of the review
title (required)string — Review title
url (required)string — URL to view the review in the Elicit web interface
Example:
{
"reviews": [
{
"reviewId": "",
"status": "processing",
"title": "",
"url": "",
"source": "api",
"createdAt": "",
"isPublic": true
}
],
"nextCursor": null
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}GET/api/v1/systematic-reviews/{reviewId}Enterprise plan required.
Poll the status of a systematic review created via POST /api/v1/systematic-reviews.
url.data. Only stages that actually ran are included.error field contains details. data may still contain exports for stages that completed before the failure.data is populated as soon as each stage's outputs land — you don't need to wait for status: completed. Stages that haven't produced data yet (or that aren't part of this review's config) are simply omitted.
data.search.{csv,xlsx} — gather-stage paper list.data.screen.{csv,xlsx} — abstract-screening results.data.fulltext.{csv,xlsx} — fulltext-screening results (only when fulltext screening is configured).data.extract.{csv,xlsx} — extraction-stage results.data.report — structured content under result, plus optional pdf / docx / txt (APA reference list) / bib (BibTeX) / ris presigned download URLs.All stage URLs are presigned for 7 days and serve with Content-Disposition: attachment so browser downloads land with the canonical filename.
dataFreshness is the ISO timestamp when the cached exports were last regenerated, or null when nothing has been generated yet.
By default, data.report.result.reportBody and data.report.result.abstract are omitted to keep responses light. Append ?include=reportBody to include them.
dataFreshness (required)string | null — ISO timestamp when the exports in `data` were last written to S3. null when no exports have been generated yet.
isPublic (required)boolean — Whether the review is publicly accessible via its URL without authentication
reviewId (required)string — Unique identifier for the review
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status. Transitions: processing → completed/failed. Poll until completed or failed.
url (required)string — URL to view the review in the Elicit web interface
dataobject — Stage-organized content and export URLs. Stages that did not run are omitted.
extractobject — Extraction-stage results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
fulltextobject — Fulltext-screening results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
reportobject — Report-stage content and exports.
result (required)object — Structured report content (title, summary, optional body + abstract).
summary (required)string — AI-generated executive summary of the findings
title (required)string — Auto-generated title
abstractstring | null — Report abstract in markdown format. Only included when ?include=reportBody is specified.
reportBodystring | null — Full report content in markdown format. Only included when ?include=reportBody is specified.
bibstring, format: uri — Presigned URL for the BibTeX bibliography. Expires in 7 days.
docxstring, format: uri — Presigned URL for the report DOCX. Expires in 7 days.
pdfstring, format: uri — Presigned URL for the report PDF. Expires in 7 days.
risstring, format: uri — Presigned URL for the RIS bibliography. Expires in 7 days.
txtstring, format: uri — Presigned URL for an APA-style plain-text reference list. Expires in 7 days.
screenobject — Abstract-screening results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
searchobject — Gather-stage paper list exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
errorobject — Error details, only present when status is failed
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"reviewId": "",
"status": "processing",
"url": "",
"isPublic": true,
"error": {
"code": "",
"message": ""
},
"data": {
"search": {
"csv": "",
"xlsx": ""
},
"screen": {
"csv": "",
"xlsx": ""
},
"fulltext": {
"csv": "",
"xlsx": ""
},
"extract": {
"csv": "",
"xlsx": ""
},
"report": {
"result": {
"title": "",
"summary": "",
"reportBody": null,
"abstract": null
},
"pdf": "",
"docx": "",
"txt": "",
"bib": "",
"ris": ""
}
},
"dataFreshness": null
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}error (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}objectquery (required)string — The search query string
corpusstring, possible values: "elicit", "pubmed", default: "elicit" — Paper corpus to search. `elicit` (default) searches Elicit's full paper index; `pubmed` restricts to PubMed.
filtersobject — Filters to narrow search results
excludeKeywordsarray — Keywords to exclude from results
string
hasPdfboolean — Only include papers with available PDFs
includeKeywordsarray — Keywords that must appear in the paper
string
maxEpochSinteger — Maximum publication date as Unix epoch seconds
maxQuartileinteger — Maximum journal quartile (1 = top 25%)
maxYearinteger — Maximum publication year
minEpochSinteger — Minimum publication date as Unix epoch seconds
minYearinteger — Minimum publication year
pubmedOnlyboolean — Only include papers from PubMed
retractedstring, possible values: "exclude_retracted", "include_retracted", "only_retracted" — How to handle retracted papers. Defaults to exclude_retracted.
typeTagsarray — Filter by study type
string, possible values: "Review", "Meta-Analysis", "Systematic Review", "RCT", "Longitudinal"
maxResultsinteger, default: 10 — Maximum number of results to return (1-10000)
searchModestring, possible values: "semantic", "keyword", default: "semantic" — How to interpret `query`. `semantic` (default) runs Elicit's semantic search. `keyword` sends the query as a Lucene-style boolean expression directly to the corpus search API. Mutually exclusive with `filters` / `trialFilters` — put filter expressions into the query string in keyword mode.
Example:
{
"query": "GLP-1 receptor agonists for weight loss",
"searchMode": "semantic",
"maxResults": 10,
"corpus": "elicit",
"filters": {
"minYear": 2020,
"maxYear": 2025,
"minEpochS": 1672531200,
"maxEpochS": 1779287825,
"maxQuartile": 2,
"includeKeywords": [
"semaglutide",
"liraglutide"
],
"excludeKeywords": [
"rodent",
"mouse model"
],
"typeTags": [
"RCT",
"Meta-Analysis"
],
"hasPdf": false,
"pubmedOnly": false,
"retracted": "exclude_retracted"
}
}objectexcludeKeywordsarray — Keywords to exclude from results
string
hasPdfboolean — Only include papers with available PDFs
includeKeywordsarray — Keywords that must appear in the paper
string
maxEpochSinteger — Maximum publication date as Unix epoch seconds
maxQuartileinteger — Maximum journal quartile (1 = top 25%)
maxYearinteger — Maximum publication year
minEpochSinteger — Minimum publication date as Unix epoch seconds
minYearinteger — Minimum publication year
pubmedOnlyboolean — Only include papers from PubMed
retractedstring, possible values: "exclude_retracted", "include_retracted", "only_retracted" — How to handle retracted papers. Defaults to exclude_retracted.
typeTagsarray — Filter by study type
string, possible values: "Review", "Meta-Analysis", "Systematic Review", "RCT", "Longitudinal"
Example:
{
"minYear": 2020,
"maxYear": 2025,
"minEpochS": 1672531200,
"maxEpochS": 1779287825,
"maxQuartile": 2,
"includeKeywords": [
"semaglutide",
"liraglutide"
],
"excludeKeywords": [
"rodent",
"mouse model"
],
"typeTags": [
"RCT",
"Meta-Analysis"
],
"hasPdf": false,
"pubmedOnly": false,
"retracted": "exclude_retracted"
}objectpapers (required)array — Papers matching the query
abstract (required)string | null — Paper abstract
authors (required)array — List of author names
string
citedByCount (required)integer | null — Number of citations this paper has received
doi (required)string | null — Digital Object Identifier
elicitId (required)string | null — Elicit internal paper identifier
pmid (required)string | null — PubMed identifier
title (required)string — Paper title
urls (required)array — URLs for the paper
string
venue (required)string | null — Publication venue
year (required)integer | null — Publication year
warningsarray — Non-fatal warnings emitted while executing the search (e.g. phrases ignored by the PubMed parser).
corpus (required)string, possible values: "elicit", "pubmed", "clinical_trials" — Corpus that emitted the warning
message (required)string — Human-readable warning message
searchMode (required)string, possible values: "semantic", "keyword" — Search mode in effect when the warning was emitted
warningDetails (required)object
messages (required)array — Underlying warning messages
string
type (required)string — Warning category
Example:
{
"papers": [
{
"elicitId": null,
"title": "",
"authors": [
""
],
"year": null,
"abstract": null,
"doi": null,
"pmid": null,
"venue": null,
"citedByCount": null,
"urls": [
""
]
}
],
"warnings": [
{
"corpus": "elicit",
"searchMode": "semantic",
"message": "",
"warningDetails": {
"type": "",
"messages": [
""
]
}
}
]
}objectabstract (required)string | null — Paper abstract
authors (required)array — List of author names
string
citedByCount (required)integer | null — Number of citations this paper has received
doi (required)string | null — Digital Object Identifier
elicitId (required)string | null — Elicit internal paper identifier
pmid (required)string | null — PubMed identifier
title (required)string — Paper title
urls (required)array — URLs for the paper
string
venue (required)string | null — Publication venue
year (required)integer | null — Publication year
Example:
{
"elicitId": null,
"title": "",
"authors": [
""
],
"year": null,
"abstract": null,
"doi": null,
"pmid": null,
"venue": null,
"citedByCount": null,
"urls": [
""
]
}objectcorpus (required)string, possible values: "elicit", "pubmed", "clinical_trials" — Corpus that emitted the warning
message (required)string — Human-readable warning message
searchMode (required)string, possible values: "semantic", "keyword" — Search mode in effect when the warning was emitted
warningDetails (required)object
messages (required)array — Underlying warning messages
string
type (required)string — Warning category
Example:
{
"corpus": "elicit",
"searchMode": "semantic",
"message": "",
"warningDetails": {
"type": "",
"messages": [
""
]
}
}objectmessages (required)array — Underlying warning messages
string
type (required)string — Warning category
Example:
{
"type": "",
"messages": [
""
]
}objecterror (required)object
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"error": {
"code": "invalid_request",
"message": "Invalid search request"
}
}objectquery (required)string — The search query string
maxResultsinteger, default: 10 — Maximum number of results to return (1-10000)
searchModestring, possible values: "semantic", "keyword", default: "semantic" — How to interpret `query`. `semantic` (default) runs Elicit's semantic search. `keyword` sends the query as a Lucene-style boolean expression directly to the corpus search API. Mutually exclusive with `filters` / `trialFilters` — put filter expressions into the query string in keyword mode.
trialFiltersobject — Clinical-trials filters (phase, recruitment status, results)
hasResultsboolean — Only include trials that have posted results
phasearray — Clinical trial phases to include
string, possible values: "NA", "EARLY_PHASE1", "PHASE1", "PHASE2", "PHASE3", "PHASE4"
recruitmentStatusarray — Trial recruitment statuses to include
string, possible values: "ACTIVE_NOT_RECRUITING", "COMPLETED", "ENROLLING_BY_INVITATION", "NOT_YET_RECRUITING", "RECRUITING", "SUSPENDED", "TERMINATED", "WITHDRAWN", "AVAILABLE"
Example:
{
"query": "GLP-1 receptor agonists for weight loss",
"searchMode": "semantic",
"maxResults": 10,
"trialFilters": {
"phase": [
"PHASE2",
"PHASE3"
],
"recruitmentStatus": [
"RECRUITING",
"ACTIVE_NOT_RECRUITING"
],
"hasResults": true
}
}objecthasResultsboolean — Only include trials that have posted results
phasearray — Clinical trial phases to include
string, possible values: "NA", "EARLY_PHASE1", "PHASE1", "PHASE2", "PHASE3", "PHASE4"
recruitmentStatusarray — Trial recruitment statuses to include
string, possible values: "ACTIVE_NOT_RECRUITING", "COMPLETED", "ENROLLING_BY_INVITATION", "NOT_YET_RECRUITING", "RECRUITING", "SUSPENDED", "TERMINATED", "WITHDRAWN", "AVAILABLE"
Example:
{
"phase": [
"PHASE2",
"PHASE3"
],
"recruitmentStatus": [
"RECRUITING",
"ACTIVE_NOT_RECRUITING"
],
"hasResults": true
}objecttrials (required)array — Clinical trials matching the query
completionDate (required)string | null — Completion date (ISO `YYYY-MM-DD` or partial).
conditions (required)array — Conditions / diseases being studied.
string
enrollmentCount (required)integer | null — Actual or anticipated enrollment count.
hasResults (required)boolean | null — Whether the trial has posted results.
interventions (required)array — Intervention names.
string
lastUpdatedYear (required)integer | null — Year the trial record was last updated.
leadSponsor (required)string | null — Lead sponsor name.
nctId (required)string — NCT identifier for the trial
overallStatus (required)string | null — Overall recruitment status (RECRUITING, COMPLETED, TERMINATED, etc.). Null when the trial has no status posted.
phase (required)array — Trial phases (may list multiple, e.g. PHASE2 + PHASE3). Empty for N/A.
string
primaryCompletionDate (required)string | null — Primary completion date (ISO `YYYY-MM-DD` or partial).
startDate (required)string | null — Trial start date (ISO `YYYY-MM-DD` or partial).
studyType (required)string | null — Study type (INTERVENTIONAL, OBSERVATIONAL, EXPANDED_ACCESS).
summary (required)string | null — Plain-text trial description / brief summary
title (required)string — Trial title
url (required)string — Link to the trial's public record
warningsarray — Non-fatal warnings emitted while executing the search.
corpus (required)string, possible values: "elicit", "pubmed", "clinical_trials" — Corpus that emitted the warning
message (required)string — Human-readable warning message
searchMode (required)string, possible values: "semantic", "keyword" — Search mode in effect when the warning was emitted
warningDetails (required)object
messages (required)array — Underlying warning messages
string
type (required)string — Warning category
Example:
{
"trials": [
{
"nctId": "NCT05646706",
"title": "",
"summary": null,
"url": "https://clinicaltrials.gov/study/NCT05646706",
"overallStatus": null,
"phase": [
""
],
"studyType": null,
"enrollmentCount": null,
"conditions": [
""
],
"interventions": [
""
],
"leadSponsor": null,
"startDate": null,
"primaryCompletionDate": null,
"completionDate": null,
"hasResults": null,
"lastUpdatedYear": null
}
],
"warnings": [
{
"corpus": "elicit",
"searchMode": "semantic",
"message": "",
"warningDetails": {
"type": "",
"messages": [
""
]
}
}
]
}objectcompletionDate (required)string | null — Completion date (ISO `YYYY-MM-DD` or partial).
conditions (required)array — Conditions / diseases being studied.
string
enrollmentCount (required)integer | null — Actual or anticipated enrollment count.
hasResults (required)boolean | null — Whether the trial has posted results.
interventions (required)array — Intervention names.
string
lastUpdatedYear (required)integer | null — Year the trial record was last updated.
leadSponsor (required)string | null — Lead sponsor name.
nctId (required)string — NCT identifier for the trial
overallStatus (required)string | null — Overall recruitment status (RECRUITING, COMPLETED, TERMINATED, etc.). Null when the trial has no status posted.
phase (required)array — Trial phases (may list multiple, e.g. PHASE2 + PHASE3). Empty for N/A.
string
primaryCompletionDate (required)string | null — Primary completion date (ISO `YYYY-MM-DD` or partial).
startDate (required)string | null — Trial start date (ISO `YYYY-MM-DD` or partial).
studyType (required)string | null — Study type (INTERVENTIONAL, OBSERVATIONAL, EXPANDED_ACCESS).
summary (required)string | null — Plain-text trial description / brief summary
title (required)string — Trial title
url (required)string — Link to the trial's public record
Example:
{
"nctId": "NCT05646706",
"title": "",
"summary": null,
"url": "https://clinicaltrials.gov/study/NCT05646706",
"overallStatus": null,
"phase": [
""
],
"studyType": null,
"enrollmentCount": null,
"conditions": [
""
],
"interventions": [
""
],
"leadSponsor": null,
"startDate": null,
"primaryCompletionDate": null,
"completionDate": null,
"hasResults": null,
"lastUpdatedYear": null
}objectisPublic (required)boolean — Whether the report is publicly accessible via its URL without authentication
reportId (required)string — Unique identifier for the report. Use this to poll for status.
status (required)string — Initial status is always processing
url (required)string — URL to view the report in the Elicit web interface as it progresses
Example:
{
"reportId": "5ad08bfb-cbe0-4911-a8c3-309760d33029",
"status": "processing",
"url": "https://elicit.com/review/5ad08bfb-cbe0-4911-a8c3-309760d33029",
"isPublic": false
}objectnextCursor (required)string | null — Cursor for the next page of results. Null if there are no more results.
reports (required)array — List of reports
createdAt (required)string — ISO 8601 timestamp of when the report was created
isPublic (required)boolean — Whether the report is publicly accessible via its URL without authentication
reportId (required)string — Unique identifier for the report
source (required)string, possible values: "api", "user" — How the report was created
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status of the report
title (required)string — Report title (the research question)
url (required)string — URL to view the report in the Elicit web interface
Example:
{
"reports": [
{
"reportId": "5ad08bfb-cbe0-4911-a8c3-309760d33029",
"status": "processing",
"title": "What are the effects of GLP-1 receptor agonists on cardiovascular outcomes?",
"url": "https://elicit.com/review/5ad08bfb-cbe0-4911-a8c3-309760d33029",
"source": "api",
"createdAt": "2025-06-15T14:30:00.000Z",
"isPublic": false
}
],
"nextCursor": "2025-06-15T14:30:00.000Z"
}objectcreatedAt (required)string — ISO 8601 timestamp of when the report was created
isPublic (required)boolean — Whether the report is publicly accessible via its URL without authentication
reportId (required)string — Unique identifier for the report
source (required)string, possible values: "api", "user" — How the report was created
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status of the report
title (required)string — Report title (the research question)
url (required)string — URL to view the report in the Elicit web interface
Example:
{
"reportId": "5ad08bfb-cbe0-4911-a8c3-309760d33029",
"status": "processing",
"title": "What are the effects of GLP-1 receptor agonists on cardiovascular outcomes?",
"url": "https://elicit.com/review/5ad08bfb-cbe0-4911-a8c3-309760d33029",
"source": "api",
"createdAt": "2025-06-15T14:30:00.000Z",
"isPublic": false
}objectisPublic (required)boolean — Whether the report is publicly accessible via its URL without authentication
reportId (required)string — Unique identifier for the report
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status of the report. Transitions: processing → completed/failed. Poll until completed or failed.
url (required)string — URL to view the report in the Elicit web interface
docxUrlstring | null — Pre-signed URL to download the report as DOCX. Only present when status is completed and assets have been generated. Expires after 7 days — re-fetch the report for a fresh URL.
errorobject — Error details, only present when status is failed
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
pdfUrlstring | null — Pre-signed URL to download the report as PDF. Only present when status is completed and assets have been generated. Expires after 7 days — re-fetch the report for a fresh URL.
resultobject — Report output, only present when status is completed
summary (required)string — AI-generated executive summary of the findings
title (required)string — Auto-generated title for the report
abstractstring | null — Report abstract in markdown format. Only included when ?include=reportBody is specified.
reportBodystring | null — Full report content in markdown format. Only included when ?include=reportBody is specified.
Example:
{
"reportId": "5ad08bfb-cbe0-4911-a8c3-309760d33029",
"status": "processing",
"url": "https://elicit.com/review/5ad08bfb-cbe0-4911-a8c3-309760d33029",
"isPublic": false,
"result": {
"title": "GLP-1 Receptor Agonists and Cardiovascular Outcomes: A Systematic Review",
"summary": "This review analyzed 42 studies examining the cardiovascular effects of GLP-1 receptor agonists. The evidence suggests significant reductions in major adverse cardiovascular events (MACE), with semaglutide showing the strongest effect (HR 0.74, 95% CI 0.58-0.95)...",
"reportBody": "# Introduction\n\nGLP-1 receptor agonists have emerged as...",
"abstract": "This systematic review examines the cardiovascular effects of..."
},
"error": {
"code": "",
"message": ""
},
"pdfUrl": "https://s3.amazonaws.com/...",
"docxUrl": "https://s3.amazonaws.com/..."
}objectsummary (required)string — AI-generated executive summary of the findings
title (required)string — Auto-generated title for the report
abstractstring | null — Report abstract in markdown format. Only included when ?include=reportBody is specified.
reportBodystring | null — Full report content in markdown format. Only included when ?include=reportBody is specified.
Example:
{
"title": "GLP-1 Receptor Agonists and Cardiovascular Outcomes: A Systematic Review",
"summary": "This review analyzed 42 studies examining the cardiovascular effects of GLP-1 receptor agonists. The evidence suggests significant reductions in major adverse cardiovascular events (MACE), with semaglutide showing the strongest effect (HR 0.74, 95% CI 0.58-0.95)...",
"reportBody": "# Introduction\n\nGLP-1 receptor agonists have emerged as...",
"abstract": "This systematic review examines the cardiovascular effects of..."
}objectisPublic (required)boolean — Whether the review is publicly accessible via its URL without authentication
reviewId (required)string — Unique identifier for the review. Use this to poll for status.
status (required)string — Initial status is always processing
url (required)string — URL to view the review in the Elicit web interface
Example:
{
"reviewId": "",
"status": "processing",
"url": "",
"isPublic": true
}objectnextCursor (required)string | null — Cursor for the next page of results. Null if there are no more results.
reviews (required)array — List of systematic reviews
createdAt (required)string — ISO 8601 timestamp of when the review was created
isPublic (required)boolean — Whether the review is publicly accessible via its URL without authentication
reviewId (required)string, format: uuid — Unique identifier for the review
source (required)string, possible values: "api", "user" — How the review was created
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status of the review
title (required)string — Review title
url (required)string — URL to view the review in the Elicit web interface
Example:
{
"reviews": [
{
"reviewId": "",
"status": "processing",
"title": "",
"url": "",
"source": "api",
"createdAt": "",
"isPublic": true
}
],
"nextCursor": null
}objectcreatedAt (required)string — ISO 8601 timestamp of when the review was created
isPublic (required)boolean — Whether the review is publicly accessible via its URL without authentication
reviewId (required)string, format: uuid — Unique identifier for the review
source (required)string, possible values: "api", "user" — How the review was created
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status of the review
title (required)string — Review title
url (required)string — URL to view the review in the Elicit web interface
Example:
{
"reviewId": "",
"status": "processing",
"title": "",
"url": "",
"source": "api",
"createdAt": "",
"isPublic": true
}objectdataFreshness (required)string | null — ISO timestamp when the exports in `data` were last written to S3. null when no exports have been generated yet.
isPublic (required)boolean — Whether the review is publicly accessible via its URL without authentication
reviewId (required)string — Unique identifier for the review
status (required)string, possible values: "processing", "completed", "failed", "unknown" — Current status. Transitions: processing → completed/failed. Poll until completed or failed.
url (required)string — URL to view the review in the Elicit web interface
dataobject — Stage-organized content and export URLs. Stages that did not run are omitted.
extractobject — Extraction-stage results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
fulltextobject — Fulltext-screening results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
reportobject — Report-stage content and exports.
result (required)object — Structured report content (title, summary, optional body + abstract).
summary (required)string — AI-generated executive summary of the findings
title (required)string — Auto-generated title
abstractstring | null — Report abstract in markdown format. Only included when ?include=reportBody is specified.
reportBodystring | null — Full report content in markdown format. Only included when ?include=reportBody is specified.
bibstring, format: uri — Presigned URL for the BibTeX bibliography. Expires in 7 days.
docxstring, format: uri — Presigned URL for the report DOCX. Expires in 7 days.
pdfstring, format: uri — Presigned URL for the report PDF. Expires in 7 days.
risstring, format: uri — Presigned URL for the RIS bibliography. Expires in 7 days.
txtstring, format: uri — Presigned URL for an APA-style plain-text reference list. Expires in 7 days.
screenobject — Abstract-screening results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
searchobject — Gather-stage paper list exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
errorobject — Error details, only present when status is failed
code (required)string — Machine-readable error code
message (required)string — Human-readable error message
Example:
{
"reviewId": "",
"status": "processing",
"url": "",
"isPublic": true,
"error": {
"code": "",
"message": ""
},
"data": {
"search": {
"csv": "",
"xlsx": ""
},
"screen": {
"csv": "",
"xlsx": ""
},
"fulltext": {
"csv": "",
"xlsx": ""
},
"extract": {
"csv": "",
"xlsx": ""
},
"report": {
"result": {
"title": "",
"summary": "",
"reportBody": null,
"abstract": null
},
"pdf": "",
"docx": "",
"txt": "",
"bib": "",
"ris": ""
}
},
"dataFreshness": null
}objectextractobject — Extraction-stage results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
fulltextobject — Fulltext-screening results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
reportobject — Report-stage content and exports.
result (required)object — Structured report content (title, summary, optional body + abstract).
summary (required)string — AI-generated executive summary of the findings
title (required)string — Auto-generated title
abstractstring | null — Report abstract in markdown format. Only included when ?include=reportBody is specified.
reportBodystring | null — Full report content in markdown format. Only included when ?include=reportBody is specified.
bibstring, format: uri — Presigned URL for the BibTeX bibliography. Expires in 7 days.
docxstring, format: uri — Presigned URL for the report DOCX. Expires in 7 days.
pdfstring, format: uri — Presigned URL for the report PDF. Expires in 7 days.
risstring, format: uri — Presigned URL for the RIS bibliography. Expires in 7 days.
txtstring, format: uri — Presigned URL for an APA-style plain-text reference list. Expires in 7 days.
screenobject — Abstract-screening results exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
searchobject — Gather-stage paper list exports.
csv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
Example:
{
"search": {
"csv": "",
"xlsx": ""
},
"screen": {
"csv": "",
"xlsx": ""
},
"fulltext": {
"csv": "",
"xlsx": ""
},
"extract": {
"csv": "",
"xlsx": ""
},
"report": {
"result": {
"title": "",
"summary": "",
"reportBody": null,
"abstract": null
},
"pdf": "",
"docx": "",
"txt": "",
"bib": "",
"ris": ""
}
}objectcsv (required)string, format: uri — Presigned URL for the CSV export. Expires in 7 days.
xlsx (required)string, format: uri — Presigned URL for the XLSX export. Expires in 7 days.
Example:
{
"csv": "",
"xlsx": ""
}objectresult (required)object — Structured report content (title, summary, optional body + abstract).
summary (required)string — AI-generated executive summary of the findings
title (required)string — Auto-generated title
abstractstring | null — Report abstract in markdown format. Only included when ?include=reportBody is specified.
reportBodystring | null — Full report content in markdown format. Only included when ?include=reportBody is specified.
bibstring, format: uri — Presigned URL for the BibTeX bibliography. Expires in 7 days.
docxstring, format: uri — Presigned URL for the report DOCX. Expires in 7 days.
pdfstring, format: uri — Presigned URL for the report PDF. Expires in 7 days.
risstring, format: uri — Presigned URL for the RIS bibliography. Expires in 7 days.
txtstring, format: uri — Presigned URL for an APA-style plain-text reference list. Expires in 7 days.
Example:
{
"result": {
"title": "",
"summary": "",
"reportBody": null,
"abstract": null
},
"pdf": "",
"docx": "",
"txt": "",
"bib": "",
"ris": ""
}objectsummary (required)string — AI-generated executive summary of the findings
title (required)string — Auto-generated title
abstractstring | null — Report abstract in markdown format. Only included when ?include=reportBody is specified.
reportBodystring | null — Full report content in markdown format. Only included when ?include=reportBody is specified.
Example:
{
"title": "",
"summary": "",
"reportBody": null,
"abstract": null
}