Chilkat Online Tools

DataFlex / Plivo REST API / Search Phone Numbers

Back to Collection Items

Use ChilkatAx-9.5.0-win32.pkg

Procedure Test
    Handle hoHttp
    Boolean iSuccess
    Variant vQueryParams
    Handle hoQueryParams
    Variant vResp
    Handle hoResp
    Variant vSbResponseBody
    Handle hoSbResponseBody
    Handle hoJResp
    Integer iRespStatusCode
    String sCity
    String sBusiness
    String sIndividual
    String sCountry
    Integer iLata
    Boolean iMms_enabled
    String sMms_rate
    String sMonthly_rental_rate
    String sV_number
    String sPrefix
    String sRate_center
    String sRegion
    String sResource_uri
    String sRestriction
    String sRestriction_text
    String sSetup_rate
    Boolean iSms_enabled
    String sSms_rate
    String sSub_type
    String sV_type
    Boolean iVoice_enabled
    String sVoice_rate
    Integer j
    Integer iCount_j
    String sApi_id
    Integer iLimit
    String sV_Next
    Integer iOffset
    String sPrevious
    Integer iTotal_count
    Integer i
    Integer iCount_i
    String sTemp1
    Boolean bTemp1

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    Set ComBasicAuth Of hoHttp To True
    Set ComLogin Of hoHttp To "{{auth_id}}"
    Set ComPassword Of hoHttp To "password"

    Get Create (RefClass(cComChilkatJsonObject)) To hoQueryParams
    If (Not(IsComObjectCreated(hoQueryParams))) Begin
        Send CreateComObject of hoQueryParams
    End
    Get ComUpdateString Of hoQueryParams "country_iso" "US" To iSuccess
    Get ComUpdateString Of hoQueryParams "type" "local" To iSuccess
    Get ComUpdateInt Of hoQueryParams "limit" 3 To iSuccess

    Get pvComObject of hoQueryParams to vQueryParams
    Get ComQuickRequestParams Of hoHttp "GET" "https://api.plivo.com/v1/Account/<auth_id>/PhoneNumber/" vQueryParams To vResp
    If (IsComObject(vResp)) Begin
        Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
        Set pvComObject Of hoResp To vResp
    End
    Get ComLastMethodSuccess Of hoHttp To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
    If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
        Send CreateComObject of hoSbResponseBody
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess

    Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
    If (Not(IsComObjectCreated(hoJResp))) Begin
        Send CreateComObject of hoJResp
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
    Set ComEmitCompact Of hoJResp To False

    Showln "Response Body:"
    Get ComEmit Of hoJResp To sTemp1
    Showln sTemp1

    Get ComStatusCode Of hoResp To iRespStatusCode
    Showln "Response Status Code = " iRespStatusCode
    If (iRespStatusCode >= 400) Begin
        Showln "Response Header:"
        Get ComHeader Of hoResp To sTemp1
        Showln sTemp1
        Showln "Failed."
        Send Destroy of hoResp
        Procedure_Return
    End

    Send Destroy of hoResp

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // {
    //   "api_id": "1a75dad2-5ef4-11eb-91fe-0242ac110003",
    //   "meta": {
    //     "limit": 3,
    //     "next": "/v1/Account/MAMDC1NTE3ZGQ4NWNJNM/PhoneNumber/?limit=3&offset=3&type=local&country_iso=US",
    //     "offset": 0,
    //     "previous": null,
    //     "total_count": 14227
    //   },
    //   "objects": [
    //     {
    //       "city": "Saddleback Valley",
    //       "compliance_requirement": {
    //         "business": null,
    //         "individual": null
    //       },
    //       "country": "UNITED STATES",
    //       "lata": 730,
    //       "mms_enabled": true,
    //       "mms_rate": "0.00400",
    //       "monthly_rental_rate": "0.18000",
    //       "number": "19496031645",
    //       "prefix": "949",
    //       "prerequisites": [
    //       ],
    //       "rate_center": "Saddleback Valley",
    //       "region": "California",
    //       "resource_uri": "/v1/Account/MAMDC1NTE3ZGQ4NWNJNM/PhoneNumber/19496031645/",
    //       "restriction": "",
    //       "restriction_text": "",
    //       "setup_rate": "0.00000",
    //       "sms_enabled": true,
    //       "sms_rate": "0.00000",
    //       "sub_type": "local",
    //       "type": "fixed",
    //       "voice_enabled": true,
    //       "voice_rate": "0.00300"
    //     },
    //     {
    //       "city": "Elwin",
    //       "compliance_requirement": {
    //         "business": null,
    //         "individual": null
    //       },
    //       "country": "UNITED STATES",
    //       "lata": 374,
    //       "mms_enabled": true,
    //       "mms_rate": "0.00400",
    //       "monthly_rental_rate": "0.18000",
    //       "number": "12177674383",
    //       "prefix": "217",
    //       "prerequisites": [
    //       ],
    //       "rate_center": "Elwin",
    //       "region": "Illinois",
    //       "resource_uri": "/v1/Account/MAMDC1NTE3ZGQ4NWNJNM/PhoneNumber/12177674383/",
    //       "restriction": "",
    //       "restriction_text": "",
    //       "setup_rate": "0.00000",
    //       "sms_enabled": true,
    //       "sms_rate": "0.00000",
    //       "sub_type": "local",
    //       "type": "fixed",
    //       "voice_enabled": true,
    //       "voice_rate": "0.00300"
    //     },
    //     {
    //       "city": "Westwood",
    //       "compliance_requirement": {
    //         "business": null,
    //         "individual": null
    //       },
    //       "country": "UNITED STATES",
    //       "lata": 224,
    //       "mms_enabled": true,
    //       "mms_rate": "0.00400",
    //       "monthly_rental_rate": "0.18000",
    //       "number": "15513105271",
    //       "prefix": "551",
    //       "prerequisites": [
    //       ],
    //       "rate_center": "Westwood",
    //       "region": "New Jersey",
    //       "resource_uri": "/v1/Account/MAMDC1NTE3ZGQ4NWNJNM/PhoneNumber/15513105271/",
    //       "restriction": "",
    //       "restriction_text": "",
    //       "setup_rate": "0.00000",
    //       "sms_enabled": true,
    //       "sms_rate": "0.00000",
    //       "sub_type": "local",
    //       "type": "fixed",
    //       "voice_enabled": true,
    //       "voice_rate": "0.00300"
    //     }
    //   ]
    // }

    // Sample code for parsing the JSON response...
    // Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

    Get ComStringOf Of hoJResp "api_id" To sApi_id
    Get ComIntOf Of hoJResp "meta.limit" To iLimit
    Get ComStringOf Of hoJResp "meta.next" To sV_Next
    Get ComIntOf Of hoJResp "meta.offset" To iOffset
    Get ComStringOf Of hoJResp "meta.previous" To sPrevious
    Get ComIntOf Of hoJResp "meta.total_count" To iTotal_count
    Move 0 To i
    Get ComSizeOfArray Of hoJResp "objects" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Get ComStringOf Of hoJResp "objects[i].city" To sCity
        Get ComStringOf Of hoJResp "objects[i].compliance_requirement.business" To sBusiness
        Get ComStringOf Of hoJResp "objects[i].compliance_requirement.individual" To sIndividual
        Get ComStringOf Of hoJResp "objects[i].country" To sCountry
        Get ComIntOf Of hoJResp "objects[i].lata" To iLata
        Get ComBoolOf Of hoJResp "objects[i].mms_enabled" To iMms_enabled
        Get ComStringOf Of hoJResp "objects[i].mms_rate" To sMms_rate
        Get ComStringOf Of hoJResp "objects[i].monthly_rental_rate" To sMonthly_rental_rate
        Get ComStringOf Of hoJResp "objects[i].number" To sV_number
        Get ComStringOf Of hoJResp "objects[i].prefix" To sPrefix
        Get ComStringOf Of hoJResp "objects[i].rate_center" To sRate_center
        Get ComStringOf Of hoJResp "objects[i].region" To sRegion
        Get ComStringOf Of hoJResp "objects[i].resource_uri" To sResource_uri
        Get ComStringOf Of hoJResp "objects[i].restriction" To sRestriction
        Get ComStringOf Of hoJResp "objects[i].restriction_text" To sRestriction_text
        Get ComStringOf Of hoJResp "objects[i].setup_rate" To sSetup_rate
        Get ComBoolOf Of hoJResp "objects[i].sms_enabled" To iSms_enabled
        Get ComStringOf Of hoJResp "objects[i].sms_rate" To sSms_rate
        Get ComStringOf Of hoJResp "objects[i].sub_type" To sSub_type
        Get ComStringOf Of hoJResp "objects[i].type" To sV_type
        Get ComBoolOf Of hoJResp "objects[i].voice_enabled" To iVoice_enabled
        Get ComStringOf Of hoJResp "objects[i].voice_rate" To sVoice_rate
        Move 0 To j
        Get ComSizeOfArray Of hoJResp "objects[i].prerequisites" To iCount_j
        While (j < iCount_j)
            Set ComJ Of hoJResp To j
            Move (j + 1) To j
        Loop

        Move (i + 1) To i
    Loop



End_Procedure

Curl Command

curl -G -d "country_iso=US"
	-d "type=local"
	-d "limit=3"
	-u '{{auth_id}}:password'
https://api.plivo.com/v1/Account/<auth_id>/PhoneNumber/

Postman Collection Item JSON

{
  "name": "Search Phone Numbers",
  "protocolProfileBehavior": {
    "disableBodyPruning": true
  },
  "request": {
    "method": "GET",
    "header": [
    ],
    "body": {
      "mode": "raw",
      "raw": "",
      "options": {
        "raw": {
          "language": "json"
        }
      }
    },
    "url": {
      "raw": "https://api.plivo.com/v1/Account/{{auth_id}}/PhoneNumber/?country_iso=US&type=local&limit=3",
      "protocol": "https",
      "host": [
        "api",
        "plivo",
        "com"
      ],
      "path": [
        "v1",
        "Account",
        "{{auth_id}}",
        "PhoneNumber",
        ""
      ],
      "query": [
        {
          "key": "country_iso",
          "value": "US",
          "description": "The ISO country code of the country."
        },
        {
          "key": "type",
          "value": "local",
          "description": "Filters by the type of the phone number. Possible values are tollfree, local, mobile, national and fixed."
        },
        {
          "key": "pattern",
          "value": "615",
          "description": "A pattern to match the phone number with. Phone numbers starting with (country calling code + pattern) are filtered in.",
          "disabled": true
        },
        {
          "key": "region",
          "value": "California",
          "description": "You could use the exact name of the region, for instance region=Frankfurt for a phone number in Frankfurt.",
          "disabled": true
        },
        {
          "key": "services",
          "value": "voice",
          "description": "Filters phone numbers which provide the selected services such as voice, sms & mms",
          "disabled": true
        },
        {
          "key": "city",
          "value": "New York",
          "description": "Filter phone number based on the city name. This filter is only applicable when the type is Local.",
          "disabled": true
        },
        {
          "key": "lata",
          "value": "722",
          "description": "Filters phone numbers in a LATA. This filter is applicable only for US and Canada",
          "disabled": true
        },
        {
          "key": "rate_center",
          "value": "310615",
          "description": "Filters phone numbers based on the rate center. This filter is applicable only for US and Canada.",
          "disabled": true
        },
        {
          "key": "limit",
          "value": "3",
          "description": "A limit on the number phone numbers to be returned. limit can range between 1 and 20, and the default is 20."
        },
        {
          "key": "offset",
          "value": "0",
          "description": "Denotes the number of value items by which the results should be offset. Defaults to 0",
          "disabled": true
        }
      ]
    },
    "description": "Returns a list of phone numbers that are available for purchase. You can search for tollfree, mobile, local, national and fixed phone numbers. The API allows you to filter phone numbers based on the country_iso, pattern, type and region.\n\nBelow is the list of arguments that can be passed in this API request, more information can be found [here](https://www.plivo.com/docs/numbers/api/phone-number#search-phone-numbers)\n\n| Arguments   | Description | Required/Conditional/Optional     |\n| :---        |    :----:   |          ---: |\n| country_iso      | The [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country. For more information on supported countries, refer to our incoming [Voice](https://www.plivo.com/voice/coverage/us/) and [SMS](https://www.plivo.com/sms/coverage/us/) coverage.| Required  |\n| type      | Filters by the type of the phone number. Possible values are tollfree, local, mobile, national and fixed.| Optional  |\n| pattern      | A pattern to match the phone number with. Phone numbers starting with (country calling code + pattern) are filtered in. The allowed values are A-Z, 0-9, *, and ?.For example, in order to search for phone numbers in the US starting with 415 prefix, Pattern = 415. Filtered results will be of form '1415XXXXXXX'.| Optional  |\n| region      | This filter is only applicable when the type is fixed. If the type is not provided, it is assumed to be fixed. You could use the exact name of the region, for instance region=Frankfurt for a phone number in Frankfurt.| Optional  |\n| services      | Filters phone numbers which provide the selected services . Possible values are:<br />voice: Indicates that phone numbers which can receive calls are to be returned.<br />sms: Indicates that phone numbers which can receive SMS are to be returned.<br />mms: Indicates that phone numbers that can receive MMS are to be returned.<br />voice,sms: Indicates that phone numbers which can receive both calls and SMS are to be returned.<br />voice,sms,mms: Indicates that phone numbers that can receive calls, SMS and MMS are to be returned.| Optional  |\n| city      | Filter phone number based on the city name. This filter is only applicable when the type is Local.| Optional  |\n| lata      | Filters phone numbers in a [LATA](https://en.wikipedia.org/wiki/Local_access_and_transport_area). This filter is applicable only for US and Canada.| Optional  |\n| rate_center      | Filters phone numbers based on the [rate center](https://www.plivo.com/docs/numbers/api/phone-number/). This filter is applicable only for US and Canada.| Optional  |\n| limit | A limit on the number phone numbers to be returned. limit can range between 1 and 20, and the default is 20.| Optional  |\n| offset | Denotes the number of value items by which the results should be offset. Defaults to 0. Read more about offset based pagination [here](https://www.plivo.com/docs/numbers/api/request/pagination/).| Optional  |"
  },
  "response": [
    {
      "name": "Search Phone Numbers",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "https://api.plivo.com/v1/Account/{{auth_id}}/PhoneNumber/?country_iso=US&type=local&limit=3",
          "protocol": "https",
          "host": [
            "api",
            "plivo",
            "com"
          ],
          "path": [
            "v1",
            "Account",
            "{{auth_id}}",
            "PhoneNumber",
            ""
          ],
          "query": [
            {
              "key": "country_iso",
              "value": "US",
              "description": "The ISO country code of the country."
            },
            {
              "key": "type",
              "value": "local",
              "description": "Filters by the type of the phone number. Possible values are tollfree, local, mobile, national and fixed."
            },
            {
              "key": "pattern",
              "value": "615",
              "description": "A pattern to match the phone number with. Phone numbers starting with (country calling code + pattern) are filtered in.",
              "disabled": true
            },
            {
              "key": "region",
              "value": "California",
              "description": "You could use the exact name of the region, for instance region=Frankfurt for a phone number in Frankfurt.",
              "disabled": true
            },
            {
              "key": "services",
              "value": "voice",
              "description": "Filters phone numbers which provide the selected services such as voice, sms & mms",
              "disabled": true
            },
            {
              "key": "city",
              "value": "New York",
              "description": "Filter phone number based on the city name. This filter is only applicable when the type is Local.",
              "disabled": true
            },
            {
              "key": "lata",
              "value": "722",
              "description": "Filters phone numbers in a LATA. This filter is applicable only for US and Canada",
              "disabled": true
            },
            {
              "key": "rate_center",
              "value": "310615",
              "description": "Filters phone numbers based on the rate center. This filter is applicable only for US and Canada.",
              "disabled": true
            },
            {
              "key": "limit",
              "value": "3",
              "description": "A limit on the number phone numbers to be returned. limit can range between 1 and 20, and the default is 20."
            },
            {
              "key": "offset",
              "value": "0",
              "description": "Denotes the number of value items by which the results should be offset. Defaults to 0",
              "disabled": true
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Mon, 25 Jan 2021 10:00:07 GMT"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        },
        {
          "key": "Content-Length",
          "value": "2570"
        },
        {
          "key": "Connection",
          "value": "keep-alive"
        },
        {
          "key": "Server",
          "value": "nginx"
        },
        {
          "key": "X-Plivo-Signature",
          "value": "rFbFXY06oMSqyKlhf3Q/V7gady8="
        },
        {
          "key": "X-Plivo-Signature-V2",
          "value": "sYe601dE/b7eGEzwEiXOW1ygErn3SFdEmNxu6/hNubw="
        },
        {
          "key": "X-Plivo-Signature-MA-V2",
          "value": "sYe601dE/b7eGEzwEiXOW1ygErn3SFdEmNxu6/hNubw="
        },
        {
          "key": "X-Plivo-Signature-V2-Nonce",
          "value": "98286916815782313309"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"api_id\": \"1a75dad2-5ef4-11eb-91fe-0242ac110003\",\n    \"meta\": {\n        \"limit\": 3,\n        \"next\": \"/v1/Account/MAMDC1NTE3ZGQ4NWNJNM/PhoneNumber/?limit=3&offset=3&type=local&country_iso=US\",\n        \"offset\": 0,\n        \"previous\": null,\n        \"total_count\": 14227\n    },\n    \"objects\": [\n        {\n            \"city\": \"Saddleback Valley\",\n            \"compliance_requirement\": {\n                \"business\": null,\n                \"individual\": null\n            },\n            \"country\": \"UNITED STATES\",\n            \"lata\": 730,\n            \"mms_enabled\": true,\n            \"mms_rate\": \"0.00400\",\n            \"monthly_rental_rate\": \"0.18000\",\n            \"number\": \"19496031645\",\n            \"prefix\": \"949\",\n            \"prerequisites\": [],\n            \"rate_center\": \"Saddleback Valley\",\n            \"region\": \"California\",\n            \"resource_uri\": \"/v1/Account/MAMDC1NTE3ZGQ4NWNJNM/PhoneNumber/19496031645/\",\n            \"restriction\": \"\",\n            \"restriction_text\": \"\",\n            \"setup_rate\": \"0.00000\",\n            \"sms_enabled\": true,\n            \"sms_rate\": \"0.00000\",\n            \"sub_type\": \"local\",\n            \"type\": \"fixed\",\n            \"voice_enabled\": true,\n            \"voice_rate\": \"0.00300\"\n        },\n        {\n            \"city\": \"Elwin\",\n            \"compliance_requirement\": {\n                \"business\": null,\n                \"individual\": null\n            },\n            \"country\": \"UNITED STATES\",\n            \"lata\": 374,\n            \"mms_enabled\": true,\n            \"mms_rate\": \"0.00400\",\n            \"monthly_rental_rate\": \"0.18000\",\n            \"number\": \"12177674383\",\n            \"prefix\": \"217\",\n            \"prerequisites\": [],\n            \"rate_center\": \"Elwin\",\n            \"region\": \"Illinois\",\n            \"resource_uri\": \"/v1/Account/MAMDC1NTE3ZGQ4NWNJNM/PhoneNumber/12177674383/\",\n            \"restriction\": \"\",\n            \"restriction_text\": \"\",\n            \"setup_rate\": \"0.00000\",\n            \"sms_enabled\": true,\n            \"sms_rate\": \"0.00000\",\n            \"sub_type\": \"local\",\n            \"type\": \"fixed\",\n            \"voice_enabled\": true,\n            \"voice_rate\": \"0.00300\"\n        },\n        {\n            \"city\": \"Westwood\",\n            \"compliance_requirement\": {\n                \"business\": null,\n                \"individual\": null\n            },\n            \"country\": \"UNITED STATES\",\n            \"lata\": 224,\n            \"mms_enabled\": true,\n            \"mms_rate\": \"0.00400\",\n            \"monthly_rental_rate\": \"0.18000\",\n            \"number\": \"15513105271\",\n            \"prefix\": \"551\",\n            \"prerequisites\": [],\n            \"rate_center\": \"Westwood\",\n            \"region\": \"New Jersey\",\n            \"resource_uri\": \"/v1/Account/MAMDC1NTE3ZGQ4NWNJNM/PhoneNumber/15513105271/\",\n            \"restriction\": \"\",\n            \"restriction_text\": \"\",\n            \"setup_rate\": \"0.00000\",\n            \"sms_enabled\": true,\n            \"sms_rate\": \"0.00000\",\n            \"sub_type\": \"local\",\n            \"type\": \"fixed\",\n            \"voice_enabled\": true,\n            \"voice_rate\": \"0.00300\"\n        }\n    ]\n}"
    }
  ]
}