---
title: "Get Research Agent session status"
method: GET
path: "/sessions/agents/{sessionId}"
tags: ["Research Agent"]
---

# Get Research Agent session status

`GET /sessions/agents/{sessionId}`

Fetch the status and basic metadata of a research-agent session — the typed detail endpoint that an agent item's `links.self` in `GET /api/v2/sessions` points to.

### Status values

- **processing** — The agent is working, or the session is queued and hasn't started.
- **completed** — The agent is idle and awaiting input. This is *not* a terminal state: the session can be continued (agent sessions have no terminal "finished" state).
- **failed** — The last turn ended with an error.
- **pausedForInsufficientQuota** — The account exceeded its usage limit. The session stays paused until resumed via the `links.resume` URL (or the Elicit web interface).

No event payload is returned here; use the session's events endpoint for the reduced activity stream.

### Example

```bash
curl https://elicit.com/api/v2/sessions/agents/{sessionId} \
  -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`

Research-agent session status and metadata.

- AgentSessionDetail
  - `type` 'agent', required — Discriminator identifying this as a research-agent session.
  - `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 of the session: "processing" (running, or not yet started), "completed" (idle and awaiting input — not terminally finished), "failed" (the last turn ended with an error), or "pausedForInsufficientQuota" (paused at the account usage limit; resume once the limit clears).
  - `title` string, required — Human-readable title of the session.
  - `url` string, required — URL to view and continue the session in the Elicit web interface.
  - `source` 'user' | 'api' | 'mcp' | 'agent_session', required — How the session was created.
  - `createdAt` string, required — ISO 8601 timestamp of when the session was created.
  - `isPublic` boolean, required — Whether the session is publicly accessible via its URL without authentication.
  - `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. The API key is missing, invalid, revoked, or expired.
- `403` — API access is not available on your current plan. Upgrade to Pro or above to use the API.
- `404` — The Research Agent API is not enabled for this account, or the session does not exist or belongs to another user.
- `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 after a short delay.

---

[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)
