# Search for a virtual number using Python Use this guide to setup your Python application for use with the Numbers API to search for an available Sinch virtual number. Note: Before you can get started, you need the following already set up: - - [Python](https://www.python.org/) and a familiarity with how to create a new file. - [PIP (package installer for Python)](https://pypi.org/project/pip/) and a familiarity with how to install Python modules. Steps: 1. [Install](#install-the-sdk) the Sinch Python SDK. 2. [Set up](#set-up-your-python-application) your Python application 3. [Search for an available virtual number](#search-for-an-available-virtual-number) for SMS, Voice or both. ## Installing the SDK The easiest way to install the SDK is using [`pip`](https://pypi.org/project/pip/): 1. Open a command prompt or terminal to the local repository folder. 2. Execute the following command: ```shell pip install sinch ``` ## Set up your Python application Create a new file named `search-number.py` and paste the provided code found on this page into the file. search-number.py from sinch import SinchClient sinch_client = SinchClient( key_id="YOUR_key_id", key_secret="YOUR_key_secret", project_id="YOUR_project_id" ) available_numbers_response = sinch_client.numbers.available.list( region_code="YOUR_region_code", number_type="YOUR_number_type" ) print(available_numbers_response) ### Modify your application The code provided includes placeholder parameters. You'll need to update the parameters detailed in the following subsections with your values. #### Initialize the client Before initializing a client using this SDK, you'll need three pieces of information: - Your Project ID - An access key ID - An access key Secret These values can be found on the [Access Keys](https://dashboard.sinch.com/settings/access-keys) page of the Sinch Build Dashboard. You can also [create new access key IDs and Secrets](https://community.sinch.com/t5/Conversation-API/How-to-get-your-access-key-for-Conversation-API/ta-p/8120), if required. Note If you have trouble accessing the above link, ensure that you have gained access to the [Conversation API](https://dashboard.sinch.com/convapi/overview) by accepting the corresponding terms and conditions. #### Fill in remaining parameters 1. Assign your values to the following required parameters: | Parameter | Your value | | --- | --- | | `YOUR_region_code` | The two letter abbreviation of the country for which you'd like a number. Must be in the [ISO 3166-1 alpha-2.](https://en.wikipedia.org/wiki/ISO_3166-2) format. For example, `US`. | | `YOUR_number_type` | The type of number you would like to rent. Available options are: `MOBILE`, `LOCAL`, or `TOLL_FREE`. Note that 10DLC numbers should be set to `LOCAL`. | 1. Save the file. ## Search for an available virtual number Execute the code to search for an available number. Open a command prompt or terminal to the location where your Python file is saved and run the following command: ```shell python search-number.py ``` ### Response These steps should return a JSON list of numbers available to rent. ```python AvailableNumbersResponse(available_numbers= [SinchNumber( phone_number='YOUR_response_phone_number', region_code='US', type='LOCAL', capability=['SMS','VOICE'], setup_price={ 'currencyCode': 'USD', 'amount': '2.00' }, monthly_price={ 'currencyCode': 'USD', 'amount': '2.00' }, payment_interval_months=1, supporting_documentation_required=True)]) ``` ## Next steps Copy the `phoneNumber` you would like to use and [rent your virtual number using the Numbers API](/docs/numbers/getting-started/python-sdk/rentandconfig). ## Additional resources - Explore the [API specification](/docs/numbers/api-reference/numbers) to test more endpoints. - Prefer a UI to search for a number? Follow the entire number searching and renting process [in the Sinch Build Dashboard](https://dashboard.sinch.com/numbers/buy-numbers).