# API reference
## credentials
- `GET /v1/credentials` — `client.credentials().list(query).await?` → `CredentialListResponse`
- `POST /v1/credentials` — `client.credentials().create(body).await?` → `CredentialCreateResponse`
- `PUT /v1/credentials` — `client.credentials().update(body).await?` → `CredentialUpdateResponse`
- `DELETE /v1/credentials` — `client.credentials().delete(body).await?` → `CredentialDeleteResponse`
## extensions
- `GET /v1/extensions` — `client.extensions().list().await?` → `ExtensionListResponse`
- `POST /v1/extensions` — `client.extensions().upload(body).await?` → `ExtensionUploadResponse`
- `DELETE /v1/extensions` — `client.extensions().delete_all().await?` → `ExtensionDeleteAllResponse`
- `GET /v1/extensions/{extensionId}` — `client.extensions().download(extension_id).await?`
- `PUT /v1/extensions/{extensionId}` — `client.extensions().update(extension_id, body).await?` → `ExtensionUpdateResponse`
- `DELETE /v1/extensions/{extensionId}` — `client.extensions().delete(extension_id).await?` → `ExtensionDeleteResponse`
## files
- `GET /v1/files` — `client.files().list().await?` → `FileList`
- `POST /v1/files` — `client.files().upload(body).await?` → `File`
- `GET /v1/files/{path}` — `client.files().download(path).await?`
- `DELETE /v1/files/{path}` — `client.files().delete(path).await?`
## Client methods
- `POST /v1/pdf` — `client.pdf(body).await?` → `PdfResponse`
- `POST /v1/scrape` — `client.scrape(body).await?` → `ScrapeResponse`
- `POST /v1/screenshot` — `client.screenshot(body).await?` → `ScreenshotResponse`
## profiles
- `GET /v1/profiles` — `client.profiles().list(query).await?` → `ProfileListResponse`
- `POST /v1/profiles` — `client.profiles().create(body).await?` → `ProfileCreateResponse`
- `GET /v1/profiles/{id}` — `client.profiles().get(id, query).await?` → `ProfileGetResponse`
- `PATCH /v1/profiles/{id}` — `client.profiles().update(id, body, query).await?` → `ProfileUpdateResponse`
## sessions
- `GET /v1/sessions` — `client.sessions().list(query).await?` → `SessionList` _(paginated)_
- `POST /v1/sessions` — `client.sessions().create(body).await?` → `Session`
- `POST /v1/sessions/release` — `client.sessions().release_all(body, query).await?` → `SessionReleaseAllResponse`
- `GET /v1/sessions/{id}` — `client.sessions().retrieve(id).await?` → `Session`
- `GET /v1/sessions/{id}/agent-traces` — `client.sessions().agent_traces(id, query).await?` → `SessionAgentTracesResponse`
- `GET /v1/sessions/{id}/context` — `client.sessions().context(id).await?` → `SessionContext`
- `GET /v1/sessions/{id}/cost` — `client.sessions().cost(id).await?` → `SessionCostResponse`
- `GET /v1/sessions/{id}/events` — `client.sessions().events(id, query).await?` → `SessionEventsResponse`
- `GET /v1/sessions/{id}/live-details` — `client.sessions().live_details(id).await?` → `SessionLiveDetailsResponse`
- `POST /v1/sessions/{id}/release` — `client.sessions().release(id, body).await?` → `SessionReleaseResponse`
- `POST /v1/sessions/{sessionId}/computer` — `client.sessions().computer(session_id, body).await?` → `SessionComputerResponse`
## sessions.captchas
- `POST /v1/sessions/{sessionId}/captchas/solve` — `client.sessions().captchas().solve(session_id, body).await?` → `CaptchaSolveResponse`
- `POST /v1/sessions/{sessionId}/captchas/solve-image` — `client.sessions().captchas().solve_image(session_id, body).await?` → `CaptchaSolveImageResponse`
- `GET /v1/sessions/{sessionId}/captchas/status` — `client.sessions().captchas().status(session_id).await?` → `CaptchaStatusResponse`
## sessions.files
- `GET /v1/sessions/{sessionId}/files` — `client.sessions().files().list(session_id).await?` → `FileList`
- `POST /v1/sessions/{sessionId}/files` — `client.sessions().files().upload(session_id, body).await?` → `File`
- `DELETE /v1/sessions/{sessionId}/files` — `client.sessions().files().delete_all(session_id).await?`
- `GET /v1/sessions/{sessionId}/files.zip` — `client.sessions().files().download_archive(session_id).await?`
- `GET /v1/sessions/{sessionId}/files/{path}` — `client.sessions().files().download(session_id, path).await?`
- `DELETE /v1/sessions/{sessionId}/files/{path}` — `client.sessions().files().delete(session_id, path).await?`