---
title: "Resume a paused session"
method: POST
path: "/sessions/{sessionId}/resume"
tags: ["Sessions"]
---

# Resume a paused session

`POST /sessions/{sessionId}/resume`

## Request

- Base URL: `https://elicit.com/api/v2`
- URL: `https://elicit.com/api/v2/sessions/{sessionId}/resume`
- Auth: HTTP bearer

Resume a report, systematic review, or research-agent session that was automatically paused because your account was over its usage limit (`status: "pausedForInsufficientQuota"` from the get endpoints).

Pass the `sessionId` from the create response or `GET /api/v2/sessions` — the session type is resolved automatically. Paused sessions also carry a ready-made `links.resume` URL for this endpoint. Resuming is owner-only: a shared agent session may include the link, but a recipient's resume request returns `404 session_not_found`.

A paused session stays paused until it is explicitly resumed. Once the usage limit is resolved (for example after upgrading or when a new billing period starts), call this endpoint — or use the resume banner in the Elicit web interface — to continue the run.

### Example

```bash
curl -X POST https://elicit.com/api/v2/sessions/{sessionId}/resume \
  -H "Authorization: Bearer elk_live_your_key_here"
```

## Path parameters

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

## Response `200`

Session resumed. `status` reflects the row after the resume; poll `links.self` for progress.

- ResumeSessionResponse
  - `type` 'report' | 'systematicReview' | 'agent', required: Which kind of session was resumed
  - `sessionId` string, uuid, required: The session ID (UUID) returned by the create endpoints and `GET /sessions`
  - `status` 'processing' | 'pausedForInsufficientQuota' | 'completed' | 'failed' | 'unknown', required: Status after the resume — normally processing; completed or failed if the run finished while the resume was in flight.
  - `executionStage` 'gathering_sources' | 'screening_abstract' | 'screening_fulltext' | 'extracting_data' | 'generating_report' | 'done' | 'null', nullable, required: The stage the session resumed at
  - `url` string, required: URL to view this session in the Elicit web interface
  - `isPublic` boolean, required
  - `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. Only the owner can use it; a shared recipient receives 404 even when this link is present.

## Other responses

- `400`: The request body, query parameters, or path ID failed validation.
- `401`: Authentication failed.
- `402`: Insufficient quota. For credits-based accounts, and for organization members with a weekly workflow-run limit, `error.details.reason` says why (`credits_exhausted` or `spend_limit_reached`) and `error.details.resetsAt` when the block lifts.
- `403`: API access is not available on your current plan. Upgrade to Pro or above to use the API.
- `404`: Session not found or not owned by you. A malformed session ID returns 400.
- `409`: The session is not currently paused, so there is nothing to resume.
- `429`: Rate limit exceeded. More than 100 requests per minute were received from your IP address; further requests are blocked for 5 minutes.
- `500`: An unexpected error occurred. Retry reads with backoff; before retrying a write, check whether it took effect. See Error Handling for retry guidance.

## Changes

- **2026-10-16** `22847bf7e65d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/elicitlabs/apis/elicit-labs-api/changes/sessions/:sessionId/resume/post.md)

---

[API](https://skmtc.dev/elicitlabs/apis/elicit-labs-api.md) - [All operations](https://skmtc.dev/elicitlabs/apis/elicit-labs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/elicitlabs/apis/elicit-labs-api/revisions/cbbe29509d04?raw)
