{"id":21406700,"url":"https://github.com/ringcentral/engage-voice-python","last_synced_at":"2025-07-14T00:32:43.563Z","repository":{"id":72054113,"uuid":"260326185","full_name":"ringcentral/engage-voice-python","owner":"ringcentral","description":"RingCentral Engage Voice API wrapper for Python","archived":false,"fork":false,"pushed_at":"2023-07-06T02:08:00.000Z","size":39,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-07T20:41:28.874Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://engage-voice-api-docs.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ringcentral.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-30T21:53:28.000Z","updated_at":"2024-06-12T02:35:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac6298e1-c843-4b45-8c3a-0893eb1a07b2","html_url":"https://github.com/ringcentral/engage-voice-python","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ringcentral/engage-voice-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fengage-voice-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fengage-voice-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fengage-voice-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fengage-voice-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ringcentral","download_url":"https://codeload.github.com/ringcentral/engage-voice-python/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fengage-voice-python/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265227898,"owners_count":23731059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T16:41:58.174Z","updated_at":"2025-07-14T00:32:43.545Z","avatar_url":"https://github.com/ringcentral.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [RingCentral Engage Voice Python SDK](https://github.com/ringcentral/engage-voice-python)\n\n[![Build Status](https://travis-ci.com/ringcentral/engage-voice-python.svg?branch=test)](https://travis-ci.com/ringcentral/engage-voice-python)\n[![Coverage Status](https://coveralls.io/repos/github/ringcentral/engage-voice-python/badge.svg?branch=test)](https://coveralls.io/github/ringcentral/engage-voice-python?branch=test)\n\n[API docs](https://engage-voice-api-docs.readthedocs.io/en/latest/).\n\n## Installation\n\n### PIP\n\n```sh\npip3 install ringcentral_engage_voice\n# or\npip install ringcentral_engage_voice\n```\n\n## Usage\n\n```python\nfrom ringcentral_engage_voice import RingCentralEngageVoice\n# create from ringcentral app client id /secret\n# you can create app from https://developer.ringcentral.com\nev = RingCentralEngageVoice(\n  'RINGCENTRAL_CLIENT_ID',\n  'RINGCENTRAL_CLIENT_SECRET'\n)\n\n# Recommended - auth  with jwt\nev.authorize(\n  jwt = process.env.RINGCENTRAL_JWT\n)\n\n# auth with password flow\nev.authorize(\n  username = 'USERNAME',\n  password = 'PASSWORD',\n  extension = 'EXTENSION' # optional\n)\n# // can also auth with auth code flow\n# // check https://developers.ringcentral.com/guide/authentication for more detail\nev.authorize(\n  code = 'xxxx',\n  redirectUri = 'yyyyyy'\n)\n\n# get access token, will expire in 5 minutes\ntoken = ev.token['accessToken']\n\n# // api request\n# // check all api doc from https://engage-voice-api-docs.readthedocs.io/en/latest/\nr = ev.get('/api/v1/admin/accounts')\nassertEqual(len(r.json()) \u003e 0, True)\n```\n\nFor legacy server use:\n\n```python\nfrom ringcentral_engage_voice import RingCentralEngageVoice\n\n# LEGACY_SERVER could be\n# 'https://portal.vacd.biz',\n# or  'https://portal.virtualacd.biz'\nev = RingCentralEngageVoice(\n  server = process.env.LEGACY_SERVER\n)\n\n# only support username/password auth\nawait ev.authorize({\n  username = process.env.LEGACY_USERNAME,\n  password = process.env.LEGACY_PASSWORD\n})\n\n# api request\n# check all api doc from https://engage-voice-api-docs.readthedocs.io/en/latest/\nlet r = ev.get('/api/v1/admin/accounts')\nr = r.json()\nexpect(len(r) \u003e 0).toBe(true)\n\n```\n\n## Instance methods\n\n```python\nev._request(\n    method,\n    endpoint,\n    params = None,\n    json = None,\n    data = None,\n    files = None,\n    multipart_mixed = False,\n    headers = None\n)\n\nev.get(endpoint, params = None)\n\nev.post(endpoint, json = None, params = None, data = None, files = None, multipart_mixed = False)\n\nev.put(endpoint, json = None, params = None, data = None, files = None, multipart_mixed = False)\n\nev.patch(endpoint, json = None, params = None, data = None, files = None, multipart_mixed = False)\n\nev.delete(endpoint, params = None)\n```\n\n## Virtual Environment\n\nThe venv module allows you to create a lightweight \"virtual environment\" within your own site directory, isolated from system site directories. The virtual environment has it's own Python binary and can have its own independent set of installed Python packages in its site directories. This is a good way to to create an isolated test environment to test out this code\n\n## Test\n\nTo use the virtual environments, make sure you have pip3 and python3.6+ setup, then execute the following:\n\n```bash\nbin/init\nsource venv/bin/activate\npip install -r requirements.txt\ncp env-sample.env .env\n# edit .env fill all fields\n\n# now test\n./bin/test\n\n# test non-lagecy API\npython3 test/engage_voice_spec.py\n\n# test lagecy API only\npython3 test/engage_voice_lagecy_spec.py\n```\n\nTo test without virtual environments and in your system directory, make sure you have pip3 and python3.6+, then execute the following:\n\n```sh\npip3 install -r requirements-dev.txt\npip3 install -r requirements.txt\ncp env-sample.env .env\n# edit .env fill all\n\n# now test\n./bin/test\n```\n\n## Credits\n\nBased on [Tyler](https://github.com/tylerlong)'s [https://github.com/tylerlong/ringcentral-python](https://github.com/tylerlong/ringcentral-python).\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fringcentral%2Fengage-voice-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fringcentral%2Fengage-voice-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fringcentral%2Fengage-voice-python/lists"}