---
title: "Get systematic review status and results"
method: GET
path: "/sessions/systematic-reviews/{sessionId}"
tags: ["Systematic Reviews"]
---

# Get systematic review status and results

`GET /sessions/systematic-reviews/{sessionId}`

Poll the status of a systematic review created via `POST /api/v2/sessions/systematic-reviews`.

### Status transitions

- **processing** — the pipeline is running. Watch progress at `url`.
- **pausedForInsufficientQuota** — the account exceeded its usage limit mid-run. The review stays paused until resumed via the `links.resume` URL (or the Elicit web interface) once the limit is resolved.
- **completed** — the pipeline finished. Stage-organized exports appear under `data`. Only stages that actually ran are included.
- **failed** — something went wrong. The `error` field contains details. `data` may still contain exports for stages that completed before the failure.
- **unknown** — status is not tracked (legacy or user-created).

### Response shape

`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.

### Including the full report body

By default, `data.report.result.reportBody` and `data.report.result.abstract` are omitted to keep responses light. Append `?include=reportBody` to include them.

## Path parameters

- `sessionId` string, uuid, required — The session ID (UUID) returned by the create endpoints and `GET /sessions`

## Query parameters

- `include` 'reportBody' — Set to 'reportBody' to include the full report markdown and abstract in the response

## Response `200`

Systematic review status and results (if completed).

- SystematicReviewSessionDetail
  - `type` 'systematicReview', required
  - `sessionId` string, uuid, required — The session ID (UUID) returned by the create endpoints and `GET /sessions`
  - `status` 'processing' | 'pausedForInsufficientQuota' | 'completed' | 'failed' | 'unknown', required — Current status. Transitions: processing ⇄ pausedForInsufficientQuota (paused when the account exceeds its usage limit; stays paused until explicitly resumed via the resume endpoint or the Elicit web interface), processing → completed/failed. Poll until completed or failed.
  - `executionStage` 'gathering_sources' | 'screening_abstract' | 'screening_fulltext' | 'extracting_data' | 'generating_report' | 'done' | 'null', nullable, required — Current pipeline stage. Advances through gathering_sources → screening_abstract → screening_fulltext → extracting_data → generating_report → done. Null when the stage isn't known — treat it as unknown, not as not-started.
  - `url` string, required — URL to view the review in the Elicit web interface
  - `isPublic` boolean, required — Whether the review is publicly accessible via its URL without authentication
  - `error` object — Error details, only present when status is failed
    - `code` string, required — Machine-readable error code
    - `message` string, required — Human-readable error message
  - `data` ReviewData
    - `search` StageData
      - `csv` string, uri, required — Presigned URL for the CSV export. Expires in 7 days.
      - `xlsx` string, uri, required — Presigned URL for the XLSX export. Expires in 7 days.
    - `screen` StageData
      - `csv` string, uri, required — Presigned URL for the CSV export. Expires in 7 days.
      - `xlsx` string, uri, required — Presigned URL for the XLSX export. Expires in 7 days.
    - `fulltext` StageData
      - `csv` string, uri, required — Presigned URL for the CSV export. Expires in 7 days.
      - `xlsx` string, uri, required — Presigned URL for the XLSX export. Expires in 7 days.
    - `extract` StageData
      - `csv` string, uri, required — Presigned URL for the CSV export. Expires in 7 days.
      - `xlsx` string, uri, required — Presigned URL for the XLSX export. Expires in 7 days.
    - `report` ReportData
      - `result` ReviewResult, required
        - `title` string, required — Auto-generated title
        - `summary` string, required — AI-generated executive summary of the findings
        - `reportBody` string, nullable — Full report content in markdown format. Only included when ?include=reportBody is specified.
        - `abstract` string, nullable — Report abstract in markdown format. Only included when ?include=reportBody is specified.
      - `pdf` string, uri — Presigned URL for the report PDF. Expires in 7 days.
      - `docx` string, uri — Presigned URL for the report DOCX. Expires in 7 days.
      - `txt` string, uri — Presigned URL for an APA-style plain-text reference list. Expires in 7 days.
      - `bib` string, uri — Presigned URL for the BibTeX bibliography. Expires in 7 days.
      - `ris` string, uri — Presigned URL for the RIS bibliography. Expires in 7 days.
  - `dataFreshness` string, nullable, required — ISO timestamp when the exports in `data` were last written to S3. null when no exports have been generated yet.
  - `links` SessionLinks, required
    - `self` string, required — API URL for this session's full status and results (the typed get endpoint for its type)
    - `resume` string — API URL to resume this session. Present only while the session is paused for insufficient quota.

## Other responses

- `401` — Authentication failed.
- `403` — API access is not available on your current plan. Upgrade to Pro or above to use the API.
- `404` — Review not found. Either the review ID is invalid or the review belongs to a different user.

---

[API](https://skmtc.dev/elicit/apis/elicit-api.md) · [All operations](https://skmtc.dev/elicit/apis/elicit-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/elicit/elicit-api/revisions/2b42624536e5/schema)
