Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/beeper-desktop-api-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Rye
run: |
Expand All @@ -46,7 +46,7 @@ jobs:
id-token: write
runs-on: ${{ github.repository == 'stainless-sdks/beeper-desktop-api-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Rye
run: |
Expand All @@ -67,7 +67,7 @@ jobs:
github.repository == 'stainless-sdks/beeper-desktop-api-python' &&
!startsWith(github.ref, 'refs/heads/stl/')
id: github-oidc
uses: actions/github-script@v8
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: core.setOutput('github_token', await core.getIDToken());

Expand All @@ -87,7 +87,7 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/beeper-desktop-api-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Rye
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Rye
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-doctor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
if: github.repository == 'beeper/desktop-api-python' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Check release environment
run: |
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "5.0.0"
".": "5.1.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 30
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/beeper/beeper-desktop-api-c08c14bb754b4cb0e02b21fabb680469368286be339dec0aaa8c69d04a1f021a.yml
openapi_spec_hash: a10246aaf7cdc33b682fc245bd5f893b
config_hash: 72f9d43b9b51a5da912e9f3730e53ae2
configured_endpoints: 56
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/beeper/beeper-desktop-api-baac187842e51587134950c59c4d746bfcb59239f01919ed83b92c24c47d98f4.yml
openapi_spec_hash: 9de80d05f7562b7ecd07c466f0fdf58b
config_hash: a8a4a8b869ccd5976fd4107e67d2ecae
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## 5.1.0 (2026-05-17)

Full Changelog: [v5.0.0...v5.1.0](https://github.com/beeper/desktop-api-python/compare/v5.0.0...v5.1.0)

### Features

* **api:** add app resource with login and verification endpoints ([9868f77](https://github.com/beeper/desktop-api-python/commit/9868f77423a998bfc443bc60fc00d6c7d0e58f53))
* **api:** api update ([9c92ab4](https://github.com/beeper/desktop-api-python/commit/9c92ab490194b4640b4c152e197df698b87d465b))
* **internal/types:** support eagerly validating pydantic iterators ([1850c8a](https://github.com/beeper/desktop-api-python/commit/1850c8a7b7d3e45407524a6ebffe902d4a3f8a71))


### Bug Fixes

* **client:** add missing f-string prefix in file type error message ([78424e2](https://github.com/beeper/desktop-api-python/commit/78424e24ad4e1f336f843222ff19bf70a50f073f))

## 5.0.0 (2026-05-06)

Full Changelog: [v4.3.0...v5.0.0](https://github.com/beeper/desktop-api-python/compare/v4.3.0...v5.0.0)
Expand Down
186 changes: 184 additions & 2 deletions api.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
# Shared Types

```python
from beeper_desktop_api.types import Attachment, Error, Message, Reaction, User
from beeper_desktop_api.types import (
APIError,
AppStateSnapshot,
Attachment,
Error,
Message,
Reaction,
User,
)
```

# BeeperDesktop
Expand All @@ -22,11 +30,17 @@ Methods:
Types:

```python
from beeper_desktop_api.types import Account, AccountListResponse
from beeper_desktop_api.types import (
Account,
AccountBridge,
AccountRetrieveResponse,
AccountListResponse,
)
```

Methods:

- <code title="get /v1/accounts/{accountID}">client.accounts.<a href="./src/beeper_desktop_api/resources/accounts/accounts.py">retrieve</a>(account_id) -> <a href="./src/beeper_desktop_api/types/account_retrieve_response.py">AccountRetrieveResponse</a></code>
- <code title="get /v1/accounts">client.accounts.<a href="./src/beeper_desktop_api/resources/accounts/accounts.py">list</a>() -> <a href="./src/beeper_desktop_api/types/account_list_response.py">AccountListResponse</a></code>

## Contacts
Expand All @@ -42,6 +56,65 @@ Methods:
- <code title="get /v1/accounts/{accountID}/contacts/list">client.accounts.contacts.<a href="./src/beeper_desktop_api/resources/accounts/contacts.py">list</a>(account_id, \*\*<a href="src/beeper_desktop_api/types/accounts/contact_list_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/shared/user.py">SyncCursorSearch[User]</a></code>
- <code title="get /v1/accounts/{accountID}/contacts">client.accounts.contacts.<a href="./src/beeper_desktop_api/resources/accounts/contacts.py">search</a>(account_id, \*\*<a href="src/beeper_desktop_api/types/accounts/contact_search_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/accounts/contact_search_response.py">ContactSearchResponse</a></code>

# Bridges

Types:

```python
from beeper_desktop_api.types import (
Bridge,
CookieField,
DisappearingTimerCapability,
GroupFieldCapability,
GroupTypeCapabilities,
LoginFlow,
LoginInputField,
LoginSession,
ProvisioningCapabilities,
ResolveIdentifierCapabilities,
BridgeRetrieveResponse,
BridgeListResponse,
)
```

Methods:

- <code title="get /v1/bridges/{bridgeID}">client.bridges.<a href="./src/beeper_desktop_api/resources/bridges/bridges.py">retrieve</a>(bridge_id) -> <a href="./src/beeper_desktop_api/types/bridge_retrieve_response.py">BridgeRetrieveResponse</a></code>
- <code title="get /v1/bridges">client.bridges.<a href="./src/beeper_desktop_api/resources/bridges/bridges.py">list</a>() -> <a href="./src/beeper_desktop_api/types/bridge_list_response.py">BridgeListResponse</a></code>
- <code title="get /v1/bridges/{bridgeID}/capabilities">client.bridges.<a href="./src/beeper_desktop_api/resources/bridges/bridges.py">retrieve_capabilities</a>(bridge_id) -> <a href="./src/beeper_desktop_api/types/provisioning_capabilities.py">ProvisioningCapabilities</a></code>

## LoginFlows

Types:

```python
from beeper_desktop_api.types.bridges import LoginFlowListResponse
```

Methods:

- <code title="get /v1/bridges/{bridgeID}/login-flows">client.bridges.login_flows.<a href="./src/beeper_desktop_api/resources/bridges/login_flows.py">list</a>(bridge_id) -> <a href="./src/beeper_desktop_api/types/bridges/login_flow_list_response.py">LoginFlowListResponse</a></code>

## LoginSessions

Types:

```python
from beeper_desktop_api.types.bridges import LoginSessionCancelResponse
```

Methods:

- <code title="post /v1/bridges/{bridgeID}/login-sessions">client.bridges.login_sessions.<a href="./src/beeper_desktop_api/resources/bridges/login_sessions/login_sessions.py">create</a>(bridge_id, \*\*<a href="src/beeper_desktop_api/types/bridges/login_session_create_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/login_session.py">LoginSession</a></code>
- <code title="get /v1/bridges/{bridgeID}/login-sessions/{loginSessionID}">client.bridges.login_sessions.<a href="./src/beeper_desktop_api/resources/bridges/login_sessions/login_sessions.py">retrieve</a>(login_session_id, \*, bridge_id) -> <a href="./src/beeper_desktop_api/types/login_session.py">LoginSession</a></code>
- <code title="delete /v1/bridges/{bridgeID}/login-sessions/{loginSessionID}">client.bridges.login_sessions.<a href="./src/beeper_desktop_api/resources/bridges/login_sessions/login_sessions.py">cancel</a>(login_session_id, \*, bridge_id) -> <a href="./src/beeper_desktop_api/types/bridges/login_session_cancel_response.py">LoginSessionCancelResponse</a></code>

### Steps

Methods:

- <code title="post /v1/bridges/{bridgeID}/login-sessions/{loginSessionID}/steps/{stepID}">client.bridges.login_sessions.steps.<a href="./src/beeper_desktop_api/resources/bridges/login_sessions/steps.py">submit</a>(step_id, \*, bridge_id, login_session_id, \*\*<a href="src/beeper_desktop_api/types/bridges/login_sessions/step_submit_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/login_session.py">LoginSession</a></code>

# Chats

Types:
Expand Down Expand Up @@ -132,3 +205,112 @@ from beeper_desktop_api.types import InfoRetrieveResponse
Methods:

- <code title="get /v1/info">client.info.<a href="./src/beeper_desktop_api/resources/info.py">retrieve</a>() -> <a href="./src/beeper_desktop_api/types/info_retrieve_response.py">InfoRetrieveResponse</a></code>

# App

Types:

```python
from beeper_desktop_api.types import Verification, AppSessionResponse
```

Methods:

- <code title="get /v1/app/setup">client.app.<a href="./src/beeper_desktop_api/resources/app/app.py">session</a>() -> <a href="./src/beeper_desktop_api/types/app_session_response.py">AppSessionResponse</a></code>

## Login

Types:

```python
from beeper_desktop_api.types.app import (
LoginRegisterResponse,
LoginResponseResponse,
LoginStartResponse,
)
```

Methods:

- <code title="post /v1/app/setup/email">client.app.login.<a href="./src/beeper_desktop_api/resources/app/login/login.py">email</a>(\*\*<a href="src/beeper_desktop_api/types/app/login_email_params.py">params</a>) -> None</code>
- <code title="post /v1/app/setup/register">client.app.login.<a href="./src/beeper_desktop_api/resources/app/login/login.py">register</a>(\*\*<a href="src/beeper_desktop_api/types/app/login_register_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/app/login_register_response.py">LoginRegisterResponse</a></code>
- <code title="post /v1/app/setup/response">client.app.login.<a href="./src/beeper_desktop_api/resources/app/login/login.py">response</a>(\*\*<a href="src/beeper_desktop_api/types/app/login_response_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/app/login_response_response.py">LoginResponseResponse</a></code>
- <code title="post /v1/app/setup/start">client.app.login.<a href="./src/beeper_desktop_api/resources/app/login/login.py">start</a>() -> <a href="./src/beeper_desktop_api/types/app/login_start_response.py">LoginStartResponse</a></code>

### Verification

#### RecoveryKey

Types:

```python
from beeper_desktop_api.types.app.login.verification import RecoveryKeyVerifyResponse
```

Methods:

- <code title="post /v1/app/setup/verification/recovery-key">client.app.login.verification.recovery_key.<a href="./src/beeper_desktop_api/resources/app/login/verification/recovery_key/recovery_key.py">verify</a>(\*\*<a href="src/beeper_desktop_api/types/app/login/verification/recovery_key_verify_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/app/login/verification/recovery_key_verify_response.py">RecoveryKeyVerifyResponse</a></code>

##### Reset

Types:

```python
from beeper_desktop_api.types.app.login.verification.recovery_key import (
ResetCreateResponse,
ResetConfirmResponse,
)
```

Methods:

- <code title="post /v1/app/setup/verification/recovery-key/reset">client.app.login.verification.recovery_key.reset.<a href="./src/beeper_desktop_api/resources/app/login/verification/recovery_key/reset.py">create</a>(\*\*<a href="src/beeper_desktop_api/types/app/login/verification/recovery_key/reset_create_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/app/login/verification/recovery_key/reset_create_response.py">ResetCreateResponse</a></code>
- <code title="post /v1/app/setup/verification/recovery-key/reset/confirm">client.app.login.verification.recovery_key.reset.<a href="./src/beeper_desktop_api/resources/app/login/verification/recovery_key/reset.py">confirm</a>(\*\*<a href="src/beeper_desktop_api/types/app/login/verification/recovery_key/reset_confirm_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/app/login/verification/recovery_key/reset_confirm_response.py">ResetConfirmResponse</a></code>

## Verifications

Types:

```python
from beeper_desktop_api.types.app import (
VerificationCreateResponse,
VerificationRetrieveResponse,
VerificationListResponse,
VerificationAcceptResponse,
VerificationCancelResponse,
)
```

Methods:

- <code title="post /v1/app/setup/verifications">client.app.verifications.<a href="./src/beeper_desktop_api/resources/app/verifications/verifications.py">create</a>(\*\*<a href="src/beeper_desktop_api/types/app/verification_create_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/app/verification_create_response.py">VerificationCreateResponse</a></code>
- <code title="get /v1/app/setup/verifications/{verificationID}">client.app.verifications.<a href="./src/beeper_desktop_api/resources/app/verifications/verifications.py">retrieve</a>(verification_id) -> <a href="./src/beeper_desktop_api/types/app/verification_retrieve_response.py">VerificationRetrieveResponse</a></code>
- <code title="get /v1/app/setup/verifications">client.app.verifications.<a href="./src/beeper_desktop_api/resources/app/verifications/verifications.py">list</a>() -> <a href="./src/beeper_desktop_api/types/app/verification_list_response.py">VerificationListResponse</a></code>
- <code title="post /v1/app/setup/verifications/{verificationID}/accept">client.app.verifications.<a href="./src/beeper_desktop_api/resources/app/verifications/verifications.py">accept</a>(verification_id) -> <a href="./src/beeper_desktop_api/types/app/verification_accept_response.py">VerificationAcceptResponse</a></code>
- <code title="post /v1/app/setup/verifications/{verificationID}/cancel">client.app.verifications.<a href="./src/beeper_desktop_api/resources/app/verifications/verifications.py">cancel</a>(verification_id, \*\*<a href="src/beeper_desktop_api/types/app/verification_cancel_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/app/verification_cancel_response.py">VerificationCancelResponse</a></code>

### Qr

Types:

```python
from beeper_desktop_api.types.app.verifications import QrConfirmScannedResponse, QrScanResponse
```

Methods:

- <code title="post /v1/app/setup/verifications/{verificationID}/qr/confirm-scanned">client.app.verifications.qr.<a href="./src/beeper_desktop_api/resources/app/verifications/qr.py">confirm_scanned</a>(verification_id) -> <a href="./src/beeper_desktop_api/types/app/verifications/qr_confirm_scanned_response.py">QrConfirmScannedResponse</a></code>
- <code title="post /v1/app/setup/verifications/qr/scan">client.app.verifications.qr.<a href="./src/beeper_desktop_api/resources/app/verifications/qr.py">scan</a>(\*\*<a href="src/beeper_desktop_api/types/app/verifications/qr_scan_params.py">params</a>) -> <a href="./src/beeper_desktop_api/types/app/verifications/qr_scan_response.py">QrScanResponse</a></code>

### SAS

Types:

```python
from beeper_desktop_api.types.app.verifications import SASConfirmResponse, SASStartResponse
```

Methods:

- <code title="post /v1/app/setup/verifications/{verificationID}/sas/confirm">client.app.verifications.sas.<a href="./src/beeper_desktop_api/resources/app/verifications/sas.py">confirm</a>(verification_id) -> <a href="./src/beeper_desktop_api/types/app/verifications/sas_confirm_response.py">SASConfirmResponse</a></code>
- <code title="post /v1/app/setup/verifications/{verificationID}/sas/start">client.app.verifications.sas.<a href="./src/beeper_desktop_api/resources/app/verifications/sas.py">start</a>(verification_id) -> <a href="./src/beeper_desktop_api/types/app/verifications/sas_start_response.py">SASStartResponse</a></code>
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "beeper_desktop_api"
version = "5.0.0"
version = "5.1.0"
description = "The official Python library for the beeperdesktop API"
dynamic = ["readme"]
license = "MIT"
Expand Down
Loading