# Vexa Client Python
[](https://badge.fury.io/py/vexa-client)
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
🚀 **Build Meeting Assistants in Hours, Not Months**
A Python client library for Vexa - the privacy-first, open-source API for real-time meeting transcription. Build powerful meeting assistants with just a few lines of code.
repo https://github.com/Vexa-ai/vexa
discord community https://discord.com/invite/Ga9duGkVz9
## ✨ Features
- 🤖 **Meeting Bots**: Send bots to automatically join Google Meet, (Zoom, Teams coming soon)
- ⚡ **Real-time**: Get transcripts as meetings happen, not after
- 🌍 **109 Languages**: Real-time transcription and translation across all of them
- 🧠 **Auto Language Detection**: No language setup needed - Vexa automatically detects what's being spoken
- 🔄 **Real-time Translation**: Choose any target language for instant translation instead of transcription
- 🔔 **Webhook Automation**: Get notified instantly when meetings end for seamless post-meeting workflows
- 🔒 **Privacy-First**: Open-source alternative to recall.ai - your data stays under your control
- 🚀 **Rapid Development**: Build complex meeting apps in hours
- 🎯 **Simple API**: Clean abstractions that make building on top a joy
## 🛠️ What You Can Build
Transform your ideas into reality with Vexa's powerful API:
- **Meeting Assistant Apps**: Like Otter.ai, Fireflies.ai, Fathom
- **CRM Integrations**: Auto-populate meeting notes in Salesforce, HubSpot
- **Compliance Tools**: Automatically record and transcribe important business calls
- **Language Learning**: Real-time translation for international meetings
- **Accessibility Tools**: Live captions for hearing-impaired participants
- **Analytics Dashboards**: Extract insights from meeting conversations
## 📋 API Operations Overview
### 🎯 User Operations
These are the primary operations for API users who want to integrate Vexa's transcription capabilities into their applications. This includes bot management, accessing transcripts, and configuring webhooks.
### 🔧 Admin Operations (Self-hosting only)
These operations are exclusively for users who self-host Vexa and need to manage user accounts, create API tokens, and perform administrative tasks. Most API users will not need these operations.
## 🚀 Get Started in 5 Minutes
### 1. Get Your API Key
Get your API key in 3 clicks at [www.vexa.ai](https://www.vexa.ai) - no waiting, no approval process!
### 2. Install the Client
```bash
pip install vexa-client
```
## 🎯 Quick Start Example
```python
from vexa_client import VexaClient
# Initialize the client
client = VexaClient(
api_key="your-api-key-here", # For user operations
)
meeting_id = "abc-def-ghi"
# Request a bot to join a meeting
meeting = client.request_bot(
platform="google_meet",
native_meeting_id=meeting_id,
bot_name="Vexa Bot",
language="en" # Optional - auto-detected if not provided
)
# get meeting transcript during or after the meeting
transcript = client.get_transcript("google_meet",meeting_id)
# switch to translation to a different language instead of transcription during meeting
client.update_bot_config(
platform="google_meet",
native_meeting_id=meeting_id,
language='es'
)
#stop the bot
client.stop_bot(platform="google_meet",native_meeting_id=meeting_id)
# delete meeting transcription for vexa
client.delete_meeting(
platform="google_meet",
native_meeting_id=meeting_id,
)
```
## 🌍 Language Detection & Translation Workflows
### Auto Language Detection
```python
# No language specified - Vexa automatically detects what's being spoken
meeting = client.request_bot(
platform="google_meet",
native_meeting_id="abc-def-ghi",
bot_name="Smart Bot"
# language not specified - auto-detection enabled!
)
```
### 📝 Transcription in Specific Language
```python
# Transcribe in specific language (if you know what will be spoken)
meeting = client.request_bot(
platform="google_meet",
native_meeting_id="abc-def-ghi",
language="es", # Spanish transcription
task="transcribe"
)
```
### 🔄 Real-time Translation
```python
# Translate everything to English in real-time
meeting = client.request_bot(
platform="google_meet",
native_meeting_id="abc-def-ghi",
language="pt", # Target language (Portuguese)
task="translate" # Translation mode
)
```
## 🔔 Webhook Automation for Post-Meeting Workflows
Set up webhooks to get notified instantly when meetings end - perfect for automated post-meeting processing:
```python
# Set up webhook to receive meeting completion notifications
client.set_webhook_url("https://your-server.com/webhook/vexa")
```
## 📚 Full API Reference https://github.com/Vexa-ai/vexa/blob/main/docs/user_api_guide.md
### User Profile
#### `set_webhook_url(webhook_url)`
Set the webhook URL for the authenticated user.
### Admin Operations (Self-hosting Only)
⚠️ **Note**: Admin operations are only available for self-hosted Vexa deployments. Most API users will only need the User Operations above.
#### `create_user(email, name=None, image_url=None, max_concurrent_bots=None)`
Create a new user (Self-hosting admin only).
#### `list_users(skip=0, limit=100)`
List users in the system (Self-hosting admin only).
#### `update_user(user_id, name=None, image_url=None, max_concurrent_bots=None)`
Update user information (Self-hosting admin only).
#### `get_user_by_email(email)`
Retrieve a user by email address (Self-hosting admin only).
#### `create_token(user_id)`
Generate a new API token for a user (Self-hosting admin only).
## 📋 Requirements
- Python 3.7+
- requests >= 2.25.0
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🌟 Join the Vexa Community
🚀 **Help us reach 1000 stars!** Current: [GitHub stars](https://github.com/vexa/vexa) → Goal: 1000 ⭐️
Join hundreds of developers building the future of meeting intelligence:
- 💬 **[Discord Community](https://discord.gg/vexa)** - Get help, share projects, connect with other builders
- 🌐 **[Vexa Website](https://www.vexa.ai)** - Get your API key and explore features
- 💼 **[LinkedIn](https://linkedin.com/company/vexa-ai)** - Follow for updates and announcements
- 🐦 **[X (@grankin_d)](https://x.com/grankin_d)** - Connect with the founder
## 💬 What Developers Are Saying
> "Built our meeting assistant MVP in 3 hours with Vexa. The API is incredibly clean and the real-time transcription is spot-on." - Open Source Developer
> "Finally, a privacy-first alternative to proprietary solutions. Perfect for our enterprise needs." - Enterprise Developer
> "The 109-language support is a game changer for our international team meetings." - Startup Founder
## 🆘 Support
For support and questions:
- 💬 **[Discord Community](https://discord.gg/vexa)** - Fastest way to get help
- 📚 **[Documentation](https://docs.vexa.ai)** - Comprehensive guides and tutorials
- 🐛 **[Issues](https://github.com/vexa/vexa-client-python/issues)** - Report bugs and request features
- ✉️ **Email**: support@vexa.ai
---
**Ready to build the future of meeting intelligence?** [Get started with Vexa today!](https://www.vexa.ai)
Raw data
{
"_id": null,
"home_page": "https://github.com/Vexa-ai/vexa",
"name": "vexa-client",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "meeting transcription translation real-time api client vexa",
"author": "Vexa Team",
"author_email": "support@vexa.ai",
"download_url": "https://files.pythonhosted.org/packages/cd/40/b2c209ce72f53c113805fa52d672d7e7c0ab06c4100fd167b71f3e7cbbe2/vexa_client-0.5.0.tar.gz",
"platform": null,
"description": "# Vexa Client Python\n\n[](https://badge.fury.io/py/vexa-client)\n[](https://opensource.org/licenses/MIT)\n[](https://www.python.org/downloads/)\n\n\ud83d\ude80 **Build Meeting Assistants in Hours, Not Months**\n\nA Python client library for Vexa - the privacy-first, open-source API for real-time meeting transcription. Build powerful meeting assistants with just a few lines of code. \n\n\nrepo https://github.com/Vexa-ai/vexa\n\n\ndiscord community https://discord.com/invite/Ga9duGkVz9\n\n## \u2728 Features\n\n- \ud83e\udd16 **Meeting Bots**: Send bots to automatically join Google Meet, (Zoom, Teams coming soon)\n- \u26a1 **Real-time**: Get transcripts as meetings happen, not after\n- \ud83c\udf0d **109 Languages**: Real-time transcription and translation across all of them\n- \ud83e\udde0 **Auto Language Detection**: No language setup needed - Vexa automatically detects what's being spoken\n- \ud83d\udd04 **Real-time Translation**: Choose any target language for instant translation instead of transcription\n- \ud83d\udd14 **Webhook Automation**: Get notified instantly when meetings end for seamless post-meeting workflows\n- \ud83d\udd12 **Privacy-First**: Open-source alternative to recall.ai - your data stays under your control\n- \ud83d\ude80 **Rapid Development**: Build complex meeting apps in hours\n- \ud83c\udfaf **Simple API**: Clean abstractions that make building on top a joy\n\n## \ud83d\udee0\ufe0f What You Can Build\n\nTransform your ideas into reality with Vexa's powerful API:\n\n- **Meeting Assistant Apps**: Like Otter.ai, Fireflies.ai, Fathom\n- **CRM Integrations**: Auto-populate meeting notes in Salesforce, HubSpot\n- **Compliance Tools**: Automatically record and transcribe important business calls\n- **Language Learning**: Real-time translation for international meetings\n- **Accessibility Tools**: Live captions for hearing-impaired participants\n- **Analytics Dashboards**: Extract insights from meeting conversations\n\n\n## \ud83d\udccb API Operations Overview\n\n### \ud83c\udfaf User Operations\nThese are the primary operations for API users who want to integrate Vexa's transcription capabilities into their applications. This includes bot management, accessing transcripts, and configuring webhooks.\n\n### \ud83d\udd27 Admin Operations (Self-hosting only)\nThese operations are exclusively for users who self-host Vexa and need to manage user accounts, create API tokens, and perform administrative tasks. Most API users will not need these operations.\n\n## \ud83d\ude80 Get Started in 5 Minutes\n\n### 1. Get Your API Key\nGet your API key in 3 clicks at [www.vexa.ai](https://www.vexa.ai) - no waiting, no approval process!\n\n### 2. Install the Client\n\n```bash\npip install vexa-client\n```\n\n\n\n## \ud83c\udfaf Quick Start Example\n\n```python\nfrom vexa_client import VexaClient\n\n# Initialize the client\nclient = VexaClient(\n api_key=\"your-api-key-here\", # For user operations\n)\n\nmeeting_id = \"abc-def-ghi\"\n\n# Request a bot to join a meeting\nmeeting = client.request_bot(\n platform=\"google_meet\",\n native_meeting_id=meeting_id,\n bot_name=\"Vexa Bot\",\n language=\"en\" # Optional - auto-detected if not provided\n)\n\n# get meeting transcript during or after the meeting\n\ntranscript = client.get_transcript(\"google_meet\",meeting_id)\n\n\n# switch to translation to a different language instead of transcription during meeting\nclient.update_bot_config(\n platform=\"google_meet\",\n native_meeting_id=meeting_id,\n language='es'\n)\n\n\n#stop the bot\nclient.stop_bot(platform=\"google_meet\",native_meeting_id=meeting_id)\n\n# delete meeting transcription for vexa\nclient.delete_meeting(\n platform=\"google_meet\",\n native_meeting_id=meeting_id,\n)\n```\n\n## \ud83c\udf0d Language Detection & Translation Workflows\n\n### Auto Language Detection\n```python\n# No language specified - Vexa automatically detects what's being spoken\nmeeting = client.request_bot(\n platform=\"google_meet\",\n native_meeting_id=\"abc-def-ghi\",\n bot_name=\"Smart Bot\"\n # language not specified - auto-detection enabled!\n)\n```\n\n### \ud83d\udcdd Transcription in Specific Language\n```python\n# Transcribe in specific language (if you know what will be spoken)\nmeeting = client.request_bot(\n platform=\"google_meet\",\n native_meeting_id=\"abc-def-ghi\",\n language=\"es\", # Spanish transcription\n task=\"transcribe\"\n)\n```\n\n### \ud83d\udd04 Real-time Translation\n```python\n# Translate everything to English in real-time\nmeeting = client.request_bot(\n platform=\"google_meet\",\n native_meeting_id=\"abc-def-ghi\",\n language=\"pt\", # Target language (Portuguese)\n task=\"translate\" # Translation mode\n)\n```\n\n## \ud83d\udd14 Webhook Automation for Post-Meeting Workflows\n\nSet up webhooks to get notified instantly when meetings end - perfect for automated post-meeting processing:\n\n```python\n# Set up webhook to receive meeting completion notifications\nclient.set_webhook_url(\"https://your-server.com/webhook/vexa\")\n```\n\n\n## \ud83d\udcda Full API Reference https://github.com/Vexa-ai/vexa/blob/main/docs/user_api_guide.md\n\n\n### User Profile\n\n#### `set_webhook_url(webhook_url)`\nSet the webhook URL for the authenticated user.\n\n### Admin Operations (Self-hosting Only)\n\n\u26a0\ufe0f **Note**: Admin operations are only available for self-hosted Vexa deployments. Most API users will only need the User Operations above.\n\n#### `create_user(email, name=None, image_url=None, max_concurrent_bots=None)`\nCreate a new user (Self-hosting admin only).\n\n#### `list_users(skip=0, limit=100)`\nList users in the system (Self-hosting admin only).\n\n#### `update_user(user_id, name=None, image_url=None, max_concurrent_bots=None)`\nUpdate user information (Self-hosting admin only).\n\n#### `get_user_by_email(email)`\nRetrieve a user by email address (Self-hosting admin only).\n\n#### `create_token(user_id)`\nGenerate a new API token for a user (Self-hosting admin only).\n\n## \ud83d\udccb Requirements\n\n- Python 3.7+\n- requests >= 2.25.0\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\n## \ud83c\udf1f Join the Vexa Community\n\n\ud83d\ude80 **Help us reach 1000 stars!** Current: [GitHub stars](https://github.com/vexa/vexa) \u2192 Goal: 1000 \u2b50\ufe0f\n\nJoin hundreds of developers building the future of meeting intelligence:\n\n- \ud83d\udcac **[Discord Community](https://discord.gg/vexa)** - Get help, share projects, connect with other builders\n- \ud83c\udf10 **[Vexa Website](https://www.vexa.ai)** - Get your API key and explore features\n- \ud83d\udcbc **[LinkedIn](https://linkedin.com/company/vexa-ai)** - Follow for updates and announcements\n- \ud83d\udc26 **[X (@grankin_d)](https://x.com/grankin_d)** - Connect with the founder\n\n## \ud83d\udcac What Developers Are Saying\n\n> \"Built our meeting assistant MVP in 3 hours with Vexa. The API is incredibly clean and the real-time transcription is spot-on.\" - Open Source Developer\n\n> \"Finally, a privacy-first alternative to proprietary solutions. Perfect for our enterprise needs.\" - Enterprise Developer\n\n> \"The 109-language support is a game changer for our international team meetings.\" - Startup Founder\n\n## \ud83c\udd98 Support\n\nFor support and questions:\n\n- \ud83d\udcac **[Discord Community](https://discord.gg/vexa)** - Fastest way to get help\n- \ud83d\udcda **[Documentation](https://docs.vexa.ai)** - Comprehensive guides and tutorials\n- \ud83d\udc1b **[Issues](https://github.com/vexa/vexa-client-python/issues)** - Report bugs and request features\n- \u2709\ufe0f **Email**: support@vexa.ai\n\n---\n\n**Ready to build the future of meeting intelligence?** [Get started with Vexa today!](https://www.vexa.ai) \n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python client library for Vexa - privacy-first, open-source API for real-time meeting transcription",
"version": "0.5.0",
"project_urls": {
"Bug Tracker": "https://github.com/Vexa-ai/vexa/issues",
"Discord": "https://discord.com/invite/Ga9duGkVz9",
"Documentation": "https://github.com/Vexa-ai/vexa/blob/main/docs/user_api_guide.md",
"Homepage": "https://github.com/Vexa-ai/vexa",
"Website": "https://www.vexa.ai"
},
"split_keywords": [
"meeting",
"transcription",
"translation",
"real-time",
"api",
"client",
"vexa"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2a6000e57bb64f0cda8f4fd418ba4483ae3130ff56eb1315bf9595149534d7c3",
"md5": "e79fa037957aac4798fba831aba88c09",
"sha256": "5084cd6228f82f9fdaebeb0542e981422408161e9f81b8ab986dfcbf18eafcc6"
},
"downloads": -1,
"filename": "vexa_client-0.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e79fa037957aac4798fba831aba88c09",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 9319,
"upload_time": "2025-07-15T12:37:25",
"upload_time_iso_8601": "2025-07-15T12:37:25.222025Z",
"url": "https://files.pythonhosted.org/packages/2a/60/00e57bb64f0cda8f4fd418ba4483ae3130ff56eb1315bf9595149534d7c3/vexa_client-0.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cd40b2c209ce72f53c113805fa52d672d7e7c0ab06c4100fd167b71f3e7cbbe2",
"md5": "9e377c7b8aee059a2c85e7670239488f",
"sha256": "752a11e60fd1220019488c1cfc7298d11be398d1aafcbe1e9783592b2a15c636"
},
"downloads": -1,
"filename": "vexa_client-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "9e377c7b8aee059a2c85e7670239488f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 12109,
"upload_time": "2025-07-15T12:37:26",
"upload_time_iso_8601": "2025-07-15T12:37:26.446800Z",
"url": "https://files.pythonhosted.org/packages/cd/40/b2c209ce72f53c113805fa52d672d7e7c0ab06c4100fd167b71f3e7cbbe2/vexa_client-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-15 12:37:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Vexa-ai",
"github_project": "vexa",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "av",
"specs": [
[
"==",
"14.4.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2025.4.26"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.2"
]
]
},
{
"name": "coloredlogs",
"specs": [
[
"==",
"15.0.1"
]
]
},
{
"name": "ctranslate2",
"specs": [
[
"==",
"4.6.0"
]
]
},
{
"name": "faster-whisper",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "filelock",
"specs": [
[
"==",
"3.18.0"
]
]
},
{
"name": "flatbuffers",
"specs": [
[
"==",
"25.2.10"
]
]
},
{
"name": "fsspec",
"specs": [
[
"==",
"2025.3.2"
]
]
},
{
"name": "huggingface-hub",
"specs": [
[
"==",
"0.31.2"
]
]
},
{
"name": "humanfriendly",
"specs": [
[
"==",
"10.0"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "mpmath",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"2.2.5"
]
]
},
{
"name": "onnxruntime",
"specs": [
[
"==",
"1.22.0"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"25.0"
]
]
},
{
"name": "protobuf",
"specs": [
[
"==",
"6.31.0"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"80.7.1"
]
]
},
{
"name": "sympy",
"specs": [
[
"==",
"1.14.0"
]
]
},
{
"name": "tokenizers",
"specs": [
[
"==",
"0.21.1"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.67.1"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.13.2"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.4.0"
]
]
}
],
"lcname": "vexa-client"
}