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

# Get Research Agent session status

`GET /sessions/agents/{sessionId}`

## Request

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

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 the session in the Elicit web interface. Available actions depend on your permissions.
  - `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. 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. 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 session does not exist or is not accessible to you for this operation.
- `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/agents/:sessionId/get.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)
