vexa-client


Namevexa-client JSON
Version 0.5.0 PyPI version JSON
download
home_pagehttps://github.com/Vexa-ai/vexa
SummaryPython client library for Vexa - privacy-first, open-source API for real-time meeting transcription
upload_time2025-07-15 12:37:26
maintainerNone
docs_urlNone
authorVexa Team
requires_python>=3.7
licenseMIT
keywords meeting transcription translation real-time api client vexa
VCS
bugtrack_url
requirements av certifi charset-normalizer coloredlogs ctranslate2 faster-whisper filelock flatbuffers fsspec huggingface-hub humanfriendly idna mpmath numpy onnxruntime packaging protobuf python-dotenv pyyaml requests setuptools sympy tokenizers tqdm typing-extensions urllib3
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Vexa Client Python

[![PyPI version](https://badge.fury.io/py/vexa-client.svg)](https://badge.fury.io/py/vexa-client)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](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[![PyPI version](https://badge.fury.io/py/vexa-client.svg)](https://badge.fury.io/py/vexa-client)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](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"
}
        
Elapsed time: 0.82616s