> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vued.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Python SDK

> Use the synchronous Vued Python SDK for cloud and local desktop APIs.

The `vued` package exposes a synchronous `Vued` client.

```python theme={null}
from vued import Vued

client = Vued(
    api_key="vued_live_...",
    org_id=None,
    base_url="https://vued-office-api-dev.onrender.com/v1",
    timeout=30.0,
)
```

| Parameter  | Type           | Meaning                                         |
| ---------- | -------------- | ----------------------------------------------- |
| `api_key`  | string         | Supabase JWT or `vued_live_...` public API key. |
| `org_id`   | string \| null | Default org for org-scoped calls.               |
| `base_url` | string         | Cloud `/v1` base URL.                           |
| `timeout`  | float          | HTTP timeout seconds.                           |

## Local plaintext methods

```python theme={null}
client.search(q, type=None, include_transcript=True, limit=20)
client.semantic_search(q, type=None, limit=5)
client.hybrid_search(q, type=None, include_transcript=True, limit=10)
client.list_meetings(type=None, started_after=None, started_before=None, room_id=None, microphone_id=None, file_id=None, limit=100, cursor=None)
client.get_meeting(meeting_id)
client.get_transcript(transcript_id)
client.list_files(type=None, q=None, parent_id=None, root_only=None, visibility=None, record_id=None, created_after=None, created_before=None, updated_after=None, updated_before=None, sort=None, limit=50, cursor=None)
client.get_file(file_id)
```

## Cloud methods

```python theme={null}
client.list_orgs(limit=50, cursor=None)
client.get_meeting_audio(meeting_id)
client.get_transcript_audio(transcript_id)

client.create_file(name="Folder", type="folder", parent_id=None, visibility="org")
client.update_file(file_id, name=None, parent_id=..., visibility=None)
client.list_file_grants(file_id, limit=50, cursor=None)
client.grant_file(file_id, user_id)
client.revoke_file_grant(file_id, user_id)
client.download_file(file_id)

client.list_speakers(q=None, limit=50, cursor=None)
client.get_speaker(speaker_id)
client.list_rooms(q=None, limit=50, cursor=None)
client.get_room(room_id)
client.create_room(display_name="Conference Room", microphone_id="mic-1")
client.update_room(room_id, display_name=None, microphone_id=None, is_primary=None, participant_user_ids=None)
client.list_microphones(limit=50, cursor=None)
client.get_microphone(microphone_id)
client.list_users(q=None, limit=50, cursor=None)
client.get_user(user_id)

client.list_api_keys(limit=50, cursor=None)
client.create_api_key(name="Public API key", expires_at=None, scopes=None)
client.revoke_api_key(key_id)

client.list_webhooks(limit=50, cursor=None)
client.create_webhook(name="Webhook", url="https://example.com/vued", events=["meeting.finalized"])
client.update_webhook(webhook_id, name=None, url=None, events=None, payload_fields=None, disabled=None)
client.delete_webhook(webhook_id)
```

## Errors

```python theme={null}
from vued import Vued, VuedError, VuedLocalUnavailableError

try:
    client = Vued(api_key="...", org_id="...")
    client.search("pricing")
except VuedLocalUnavailableError:
    print("Open and unlock Vued Desktop.")
except VuedError as err:
    print(err.status_code, err.body)
```
