---
title: "Inspect a browser profile"
method: GET
path: "/contexts/{contextId}"
tags: ["Browser"]
---

# Inspect a browser profile

`GET /contexts/{contextId}`

## Request

- Base URL: `https://request.usestring.ai/v1`
- URL: `https://request.usestring.ai/v1/contexts/{contextId}`
- Auth: HTTP bearer

Return one browser profile with its status and latest save. Use it to check whether a profile is busy (`IN_USE` or `UPLOADING`) or to confirm that a session's changes were saved.

## Response `200`

Profile returned.

- Context: A saved browser profile. See https://portal.usestring.ai/docs/browser/contexts#the-profile-object
  - `id` string, uuid, required: Opaque UUID used to reconnect (`/wss?contextId=`), inspect, or delete.
  - `name` string, nullable, required: Optional label.
  - `status` 'EMPTY' | 'IN_USE' | 'UPLOADING' | 'READY' | 'FAILED' | 'DELETING', required: `EMPTY`: no saved data. `IN_USE`: a saving session is using the profile. `UPLOADING`: a save is finishing. `READY`: saved data is available. `FAILED`: a save failed; earlier saved data remains. `DELETING`: returned only by DELETE.
  - `sizeBytes` integer, nullable, required: Compressed size of the saved profile. Null before the first successful save.
  - `failureReason` string, nullable, required: Most recent save failure, cleared by a successful save.
  - `latestSaveOperation` ContextSaveOperation, required: The most recent save.
    - `id` string
    - `status` 'PENDING' | 'COMMITTED' | 'FAILED' | 'EXPIRED' | 'SUPERSEDED': `PENDING`: not finished. `COMMITTED`: succeeded. `FAILED`: failed; read `failureReason`. `EXPIRED`: the session ended before anything was saved. `SUPERSEDED`: another session saved first; not a success.
    - `failureReason` string, nullable
    - `completedAt` string, nullable
  - `lastSavedAt` string, date-time, nullable, required: Time of the last successful save.
  - `lastUsedAt` string, date-time, nullable, required: Last connection, saving or read-only. Reading status does not update it.
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `400`: Malformed profile ID.
- `401`: Missing or invalid Authorization header.
- `404`: Unknown, foreign-owned, or deleted profile (`error: Context not found`).
- `429`: Rate limit exceeded. The default limit is 60 requests per second per organization, averaged over a rolling window. Back off and retry with exponential backoff and jitter.
- `500`: Internal server error.

---

[API](https://skmtc.dev/usestring/apis/string-web-access-api.md) · [All operations](https://skmtc.dev/usestring/apis/string-web-access-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usestring/apis/string-web-access-api/revisions/fd336960036e?raw)
