Navbar
Logo icon Name
  • LaML REST API
  • API Reference
  • LaML REST API

    Overview

    The SignalWire LaML REST API is a comprehensive REST API that enables easy management of all aspects of the SignalWire LaML functionality including calls, conferences, messaging and account maintenance.

    This API may look similar to other, existing APIs you've used before -- on purpose! The LaML REST API is designed to make migrating your existing phone or messaging application easy and quick, while giving you access to our next generation APIs and endpoints to help you take your application to the next level.

    Introduction

    SignalWire's REST API allows you to manage and modify calls and messages made to or from your SignalWire phone numbers. You also have the ability to retrieve and update your account information, retrieve your entire history of calls, messages, transcriptions, media and more.

    This can all be achieved by sending HTTP requests to the SignalWire REST API.

    Base URL

    Each space on SignalWire gets its own subdomain and each space will have its own URLs for accessing the REST API.

    All calls in the provided examples use the following as the base URL:

    https://example.signalwire.com/api/laml/2010-04-01
    

    However, please note that the actual base URL you will use will differ for each space, since it will be customized to include your unique space name. For your own custom URL, replace example with your unique subdomain.

    Authentication

        curl https://example.signalwire.com/api/laml/2010-04-01/Accounts \
          -X GET \
          -u "YourProjectID:YourAuthToken"
    
    

    Almost all the LaML REST API endpoints are protected with HTTP Basic Authentication. HTTP Basic Authentication requires you to send an Authorization header of your Project ID and Authentication Token. This should be supported in almost all HTTP clients.

    Each project has its own Project ID and Authentication Tokens you will need to use when making each request to the API. You can find your Project ID and Authentication Tokens in your SignalWire Dashboard.

    Data Formats

    Dates and Times

    All dates and times in requests to and from SignalWire LaML API are UTC, and presented in RFC 2822 format.

    For example, the date and time of 8:01 AM CDT on July 23rd, 2018 is presented as: Mon, 23 Jul 2018 13:01:00 +0000

    Phone Numbers

    All phone numbers in requests to or from the SignalWire LaML API are in E.164 format, an unambiguous general format for specifying international phone numbers. Numbers in this format start with a plus sign ("+") and the country code.

    For example, a US-based phone number like (555) 123-4567 would be formatted like: +15551234567.

    If a number cannot be represented in E.164 format, then SignalWire uses the raw Caller ID string that was received.

    Client Libraries and SDKs

    SignalWire has clients in a number of different languages that make using the LaML REST API simple and easy. They are also built to make migrating from other service providers to SignalWire as easy as possible.

    C#

    Coming Soon!

    Java

    Coming Soon!

    NodeJS

    Install the package using NPM:

    npm install signalwire
    

    In order to use the NodeJS client you must set up a few environment variables to point to your specific space.

    SIGNALWIRE_API_HOSTNAME=example.signalwire.com
    SIGNALWIRE_API_PROJECT=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    SIGNALWIRE_API_TOKEN=PTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    

    Use the SignalWire project and token variables to set up the Client:

    const RestClient = require('signalwire').RestClient
    const client = new RestClient(process.env.SIGNALWIRE_API_PROJECT, process.env.SIGNALWIRE_API_TOKEN)
    

    You can then use the client to make requests.

    PHP

    Install the packaging using Composer:

    composer require signalwire/signalwire
    

    If your environment does not handle autoloading you must require the autoload file generated by Composer:

    <?php
      require 'path-to/vendor/autoload.php';
    ?>
    

    In order to use the SignalWire\Rest\Client namespace you must set the environment variable SIGNALWIRE_API_HOSTNAME:

    Using $_ENV:

    <?php
      $_ENV['SIGNALWIRE_API_HOSTNAME'] = "example.signalwire.com";
    ?>
    

    Using putenv:

    <?php
      putenv("SIGNALWIRE_API_HOSTNAME=example.signalwire.com");
    ?>
    

    Once you have set up the environment, use the SignalWire project and token variables to set up the Client:

    <?php
      use SignalWire\Rest\Client;
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    ?>
    

    You can then use the $client to make requests.

    Python

    Install the package:

    pip install signalwire
    

    Use the SignalWire project and token variables to set up the Client:

    from signalwire.rest import Client as signalwire_client
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(account, token, signalwire_space_url = 'example.signalwire.com')
    

    You can then use the client to make requests.

    Ruby

    Install the package via rubygems:

    gem install signalwire
    

    Configure your SignalWire subdomain. You can either set the environment with the host variable SIGNALWIRE_API_HOSTNAME=example.signalwire.com or with an initializer:

    require "signalwire/sdk"
    Signalwire::Sdk.configure do |config|
      config.hostname = "example.signalwire.com"
    end
    

    Once you have set up the environment, use the SignalWire project and token variables to set up the Client:

    @client = Signalwire::REST::Client.new("YourProjectID", "YourAuthToken")
    

    You can then use the @client to make requests.

    Paging Information

    Example paged result of messages, with one message per page.

    {
      "uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages?Page=0&PageSize=1",
      "first_page_uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages?Page=0&PageSize=1",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages?Page=1&PageSize=1&PageToken=PA95f7fba1-aeb7-4750-9092-47525b7a7cad",
      "previous_page_uri": null,
      "page": 0,
      "page_size": 1,
      "messages": [
        {
          "account_sid": "446e9986-0848-4d46-a617-48793c5f5e07",
          "api_version": "2010-04-01",
          "body": "Hello World!",
          "num_segments": 1,
          "num_media": 0,
          "date_created": "Tue, 14 Aug 2018 19:37:39 +0000",
          "date_sent": "Tue, 14 Aug 2018 19:37:41 +0000",
          "date_updated": "Tue, 14 Aug 2018 19:37:44 +0000",
          "direction": "outbound-api",
          "error_code": null,
          "error_message": null,
          "from": "+15551234567",
          "price": 0.005,
          "price_unit": "USD",
          "sid": "8a8e5ec4-071a-408e-948c-2429da869cc9",
          "status": "delivered",
          "to": "+15557654321",
          "uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/8a8e5ec4-071a-408e-948c-2429da869cc9",
          "subresource_uris": {
            "media": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/8a8e5ec4-071a-408e-948c-2429da869cc9/Media"
          }
        }
      ]
    }
    

    For resources that return many instances, the API will return partial "pages" of results. These results will contain meta information about the entire list of results you can use to see more of the list.

    Attribute
    uri string The current page's URI.
    first_page_uri string The first page in the result set's URI.
    next_page_uri string The next page in the result set's URI.
    previous_page_uri string The previous page in the result set's URI.
    page integer The current page number, using zero-based number (so the first page would be 0).
    page_size string The number of results per page. The last page may have fewer items.

    API Reference

    Accounts

    Accounts allow you to list and update your SignalWire Projects. You can create any number of projects on the SignalWire Dashboard and use the Accounts endpoint to list or update them.

    Properties

    A sample account returned from the API.

    {
      "auth_token": "redacted",
      "date_created": "Sat, 15 Sept 2018 10:00:00 +0000",
      "date_updated": "Sun, 16 Sept 2018 20:00:00 +0000",
      "friendly_name": "My Project",
      "sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "status": "active",
      "subresource_uris": {
        "available_phone_numbers": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers.json",
        "calls": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls.json",
        "conferences": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences.json",
        "incoming_phone_numbers": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/IncomingPhoneNumbers.json",
        "notifications": null,
        "outgoing_caller_ids": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/OutgoingCallerIds.json",
        "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Recordings.json",
        "transcriptions": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Transcriptions.json",
        "addresses": null,
        "signing_keys": null,
        "connect_apps": null,
        "sip": null,
        "authorized_connect_apps": null,
        "usage": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Usage.json",
        "keys": null,
        "applications": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications.json",
        "short_codes": null,
        "queues": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Queues.json",
        "messages": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Messages.json"
      },
      "type": "Full",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af.json"
    }
    
    Attribute
    auth_token string The authorization token for this account. This token should be kept a secret and is not returned in a normal request.
    date_created datetime The date, in RFC 2822 GMT format, this account was created.
    date_updated datetime The date, in RFC 2822 GMT format, this account was updated.
    friendly_name string The description, up to 64 characters long, of the account. Default is the email address this account is associated with.
    sid string The unique identifier for the account.
    status string The status of the account. Possible values are: active, suspended, or closed.
    subresource_uris object A Map of sub-accounts that are linked to the given account.
    type string The type of the account. Possible values are: Trial and Full.
    uri string The URI for the account.

    Retrieve an Account

    Retrieve an Account

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{Sid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.api.accounts('YourProjectID')
              .fetch()
              .then(account => console.log(account.friendlyName))
              .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var account = AccountResource.Fetch(pathSid: "YourProjectID");
    
            Console.WriteLine(account.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    account = client.api.accounts('YourProjectID').fetch()
    
    print(account.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    account = @client.api.accounts('YourProjectID').fetch
    
    puts account.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $account = $client->api->v2010->accounts("YourProjectID")
                                    ->fetch();
    
      print($account->friendlyName);
    ?>
    

    Response 200 OK

    {
      "auth_token": "redacted",
      "date_created": "Sat, 15 Sept 2018 10:00:00 +0000",
      "date_updated": "Sun, 16 Sept 2018 20:00:00 +0000",
      "friendly_name": "SubAccount",
      "sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "status": "active",
      "subresource_uris": {
        "available_phone_numbers": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers.json",
        "calls": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls.json",
        "conferences": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences.json",
        "incoming_phone_numbers": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/IncomingPhoneNumbers.json",
        "notifications": null,
        "outgoing_caller_ids": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/OutgoingCallerIds.json",
        "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Recordings.json",
        "transcriptions": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Transcriptions.json",
        "addresses": null,
        "signing_keys": null,
        "connect_apps": null,
        "sip": null,
        "authorized_connect_apps": null,
        "usage": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Usage.json",
        "keys": null,
        "applications": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications.json",
        "short_codes": null,
        "queues": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Queues.json",
        "messages": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Messages.json"
      },
      "type": "Full",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af.json"
    }
    

    Retrieve a single account.

    Parameter
    Sid required The Account Sid that uniquely identifies the account to retrieve.

    List All Accounts

    List All Accounts

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.api.accounts.each(accounts => console.log(accounts.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var accounts = AccountResource.Read();
    
            foreach(var record in accounts)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    accounts = client.api.accounts.list()
    
    for record in accounts:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    accounts = @client.api.accounts.list
    
    accounts.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $accounts = $client->api->v2010->accounts
                                     ->read();
    
      foreach ($accounts as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "first_page_uri": "/api/laml/2010-04-01/Accounts.json?PageSize=40&Page=0",
      "end": 0,
      "previous_page_uri": "/api/laml/2010-04-01/Accounts.json?PageSize=40&Page=0",
      "accounts": [
        {
          "auth_token": "redacted",
          "date_created": "Sat, 15 Sept 2018 10:00:00 +0000",
          "date_updated": "Sun, 16 Sept 2018 20:00:00 +0000",
          "friendly_name": "SubAccount",
          "sid": "b3877c40-da60-4998-90ad-b792e98472af",
          "status": "active",
          "subresource_uris": {
            "available_phone_numbers": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers.json",
            "calls": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls.json",
            "conferences": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences.json",
            "incoming_phone_numbers": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/IncomingPhoneNumbers.json",
            "notifications": null,
            "outgoing_caller_ids": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/OutgoingCallerIds.json",
            "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Recordings.json",
            "transcriptions": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Transcriptions.json",
            "addresses": null,
            "signing_keys": null,
            "connect_apps": null,
            "sip": null,
            "authorized_connect_apps": null,
            "usage": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Usage.json",
            "keys": null,
            "applications": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications.json",
            "short_codes": null,
            "queues": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Queues.json",
            "messages": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Messages.json"
          },
          "type": "Full",
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af.json"
        }
      ],
      "uri": "/api/laml/2010-04-01/Accounts.json?PageSize=40&Page=0",
      "page_size": 40,
      "start": 0,
      "next_page_uri": "/api/laml/2010-04-01/Accounts.json?PageSize=40&Page=40",
      "page": 0
    }
    

    The ability to read all of the accounts that are associated with the master account. This list will include the master account along with all the sub-accounts that were created from it.

    Parameter
    FriendlyName optional Returns the accounts whose FriendlyName exactly matches the one provided.

    Update an Account

    Update an Account's Friendly Name

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{Sid}.json \
      -X POST \
      --data-urlencode "FriendlyName=Project Skynet" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.api.accounts('YourProjectID')
              .update({FriendlyName: 'Project Skynet'})
              .then(account => console.log(account.friendlyName))
              .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var account = AccountResource.Update(
                friendlyName: "Project Skynet",
                pathSid: "YourProjectID"
            );
    
            Console.WriteLine(account.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    account = client.api.accounts('YourProjectID') \
                        .update(friendlyName="Project Skynet")
    
    print(account.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    account = @client.api.accounts('YourProjectID')
                         .update(friendly_name: 'Project Skynet')
    
    puts account.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $account = $client->api->v2010->accounts("YourProjectID")
                                    ->update(array("FriendlyName" => "Project Skynet"));
    
      print($account->friendlyName);
    ?>
    

    Response 200 OK

    {
      "auth_token": "redacted",
      "date_created": "Sat, 15 Sept 2018 10:00:00 +0000",
      "date_updated": "Sun, 16 Sept 2018 20:00:00 +0000",
      "friendly_name": "Project Skynet",
      "sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "status": "active",
      "subresource_uris": {
        "available_phone_numbers": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers.json",
        "calls": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls.json",
        "conferences": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences.json",
        "incoming_phone_numbers": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/IncomingPhoneNumbers.json",
        "notifications": null,
        "outgoing_caller_ids": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/OutgoingCallerIds.json",
        "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Recordings.json",
        "transcriptions": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Transcriptions.json",
        "addresses": null,
        "signing_keys": null,
        "connect_apps": null,
        "sip": null,
        "authorized_connect_apps": null,
        "usage": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Usage.json",
        "keys": null,
        "applications": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications.json",
        "short_codes": null,
        "queues": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Queues.json",
        "messages": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Messages.json"
      },
      "type": "Full",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af.json"
    }
    

    Allows you to modify the properties of an account.

    Parameter
    FriendlyName optional Ability to update the description of this account.

    Applications

    An application contains a set of URLs and other data that tells SignalWire how to behave when calls and messages are received. They are useful for creating a single configuration that is shared between many numbers.

    Properties

    A sample application returned from the API.

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "api_version": "2010-04-01",
      "date_created": "Sun, 16 Sept 2018 10:00:00 +0000",
      "date_updated": "Mon, 17 Sept 2018 20:00:00 +0000",
      "friendly_name": "Application1",
      "message_status_callback": "http://www.example.com/sms-status-callback",
      "sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "sms_fallback_method": "GET",
      "sms_fallback_url": "http://www.example.com/sms-fallback",
      "sms_method": "GET",
      "sms_status_callback": "http://www.example.com/sms-status-callback",
      "sms_url": "http://example.com",
      "status_callback": "http://example.com",
      "status_callback_method": "GET",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications/b3877c40-da60-4998-90ad-b792e98472af.json",
      "voice_caller_id_lookup": false,
      "voice_fallback_method": "GET",
      "voice_fallback_url": "http://www.example.com/voice-callback",
      "voice_method": "GET",
      "voice_url": "http://example.com"
    }
    
    Attribute
    account_sid string The unique identifier for the account that created this application.
    api_version string The version of the SignalWire API.
    date_created datetime The date, in RFC 2822 GMT format, this application was created.
    date_updated datetime The date, in RFC 2822 GMT format, this application was updated.
    friendly_name string The description, up to 64 characters long, of the account.
    message_status_callback string If a message's ApplicationSid is set to this application's Sid, when a message receives a status change, SignalWire will send a POST request to this URL with the message's details.
    sid string The unique identifier for the account.
    sms_fallback_method string Whether the request to SmsFallbackUrl is a GET or a POST.
    sms_fallback_url string The URL SignalWire will request if errors occur when fetching the SmsUrl.
    sms_method string Whether the request to SmsUrl is a GET or a POST.
    sms_status_callback string If a message's ApplicationSid is set to this application's Sid, when a message receives a status change, SignalWire will send a POST request to this URL with the message's details.
    sms_url string The URL to request when an SMS is received.
    status_callback string The URL to pass status updates to the application.
    status_callback_method string Whether the request to StatusCallback is a GET or a POST.
    uri string The URI for this application.
    voice_caller_id_lookup boolean Whether or not to look up a caller's ID from the database. Possible values are true or false.
    voice_fallback_method string Whether the request to VoiceFallbackUrl is a GET or POST.
    voice_fallback_url string The URL SignalWire will request if errors occur when fetching the Url.
    voice_method string Whether the request to VoiceUrl is a GET or a POST.
    voice_url string The URL to request when a call is received.

    Create an Application

    Create an Application

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Applications.json \
      -X POST \
      --data-urlencode "FriendlyName=Application1" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.applications
          .create({
             friendlyName: 'Application1'
           })
          .then(application => console.log(application.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var application = ApplicationResource.Create(
                friendlyName: "Application1"
            );
    
            Console.WriteLine(application.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    application = client.applications \
                        .create(
                             friendly_name='Application1'
                         )
    
    print(application.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    application = @client.applications
                         .create(
                            friendly_name: 'Application1'
                          )
    
    puts application.sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $application = $client->applications
                            ->create("Application1");
    
      print($application->sid);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "api_version": "2010-04-01",
      "date_created": "Sun, 16 Sept 2018 10:00:00 +0000",
      "date_updated": "Mon, 17 Sept 2018 20:00:00 +0000",
      "friendly_name": "Application1",
      "message_status_callback": "http://www.example.com/sms-status-callback",
      "sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "sms_fallback_method": "GET",
      "sms_fallback_url": "http://www.example.com/sms-fallback",
      "sms_method": "GET",
      "sms_status_callback": "http://www.example.com/sms-status-callback",
      "sms_url": "http://example.com",
      "status_callback": "http://example.com",
      "status_callback_method": "GET",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications/b3877c40-da60-4998-90ad-b792e98472af.json",
      "voice_caller_id_lookup": false,
      "voice_fallback_method": "GET",
      "voice_fallback_url": "http://www.example.com/voice-callback",
      "voice_method": "GET",
      "voice_url": "http://example.com"
    }
    

    Creates a new application within your account.

    Parameter
    FriendlyName required The description, up to 64 characters long, of the account.
    MessageStatusCallback optional If a message's ApplicationSid is set to this application's Sid, when a message receives a status change, SignalWire will send a POST request to this URL with the message's details.
    SmsFallbackMethod optional Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.
    SmsFallbackUrl optional The URL SignalWire will request if errors occur when fetching the SmsUrl.
    SmsMethod optional Whether the request to SmsUrl is a GET or a POST. Default is POST.
    SmsStatusCallback optional If a message's ApplicationSid is set to this application's Sid, when a message receives a status change, SignalWire will send a POST request to this URL with the message's details.
    SmsUrl optional The URL to request when an SMS is received.
    StatusCallback optional The URL to pass status updates to the application.
    StatusCallbackMethod optional Whether the request to the StatusCallback URL is a GET or a POST. Default is POST.
    VoiceCallerIdLookup optional Whether or not to look up a caller's ID from the database. Possible values are true or false. Default is false.
    VoiceFallbackMethod optional Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.
    VoiceFallbackUrl optional The URL SignalWire will request if errors occur when fetching the Url.
    VoiceMethod optional Whether the request to VoiceUrl is a GET or POST. Default is POST.
    VoiceUrl optional The URL to request when a call is received.

    Retrieve an Application

    Retrieve an Application

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Applications/{Sid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.applications('Sid')
          .fetch()
          .then(application => console.log(application.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var application = ApplicationResource.Fetch(
                pathSid: "Sid"
            );
    
            Console.WriteLine(application.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    application = client.applications('Sid').fetch()
    
    print(application.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    application = @client.applications('Sid').fetch
    
    puts application.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $application = $client->applications("Sid")
                            ->fetch();
    
      print($application->friendlyName);
    ?>
    

    Retrieve a single application.

    Parameter
    Sid required The Application Sid that uniquely identifies the application to retrieve.

    List All Applications

    List All Applications

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Applications.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.applications.each(applications => console.log(applications.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var applications = ApplicationResource.Read();
    
            foreach(var record in applications)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    applications = client.applications.list()
    
    for record in applications:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    applications = @client.applications.list
    
    applications.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $applications = $client->applications
                             ->read();
    
      foreach ($applications as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "applications": [
        {
          "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
          "api_version": "2010-04-01",
          "date_created": "Mon, 17 Sept 2018 20:00:00 +0000",
          "date_updated": "Tue, 18 Sept 2018 10:00:00 +0000",
          "friendly_name": "Application1",
          "message_status_callback": null,
          "sid": "b3877c40-da60-4998-90ad-b792e98472af",
          "sms_fallback_method": "POST",
          "sms_fallback_url": null,
          "sms_method": "POST",
          "sms_status_callback": null,
          "sms_url": null,
          "status_callback": null,
          "status_callback_method": "POST",
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications/b3877c40-da60-4998-90ad-b792e98472af.json",
          "voice_caller_id_lookup": false,
          "voice_fallback_method": "POST",
          "voice_fallback_url": null,
          "voice_method": "POST",
          "voice_url": null
        }
      ],
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications.json?PageSize=1&Page=0",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications.json?PageSize=1&Page=1",
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications.json?PageSize=1&Page=0",
      "page_size": 1,
      "page": 0,
      "start": 0,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications.json?PageSize=1&Page=0",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af"
    }
    

    The ability to read all of the applications that are associated with your account. This will be returned as a list of applications.

    Parameter
    FriendlyName optional Returns the applications whose FriendlyName exactly matches the one provided.

    Update an Application

    Update an Application

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Applications/{Sid}.json \
      -X POST \
      --data-urlencode "SmsUrl=http://your-application.com/docs/sms.xml" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.applications('Sid')
          .update({smsUrl: 'http://your-application.com/docs/sms.xml'})
          .then(application => console.log(application.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var application = ApplicationResource.Update(
                smsUrl: new Uri("http://your-application.com/docs/sms.xml"),
                pathSid: "Sid"
            );
    
            Console.WriteLine(application.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    application = client.applications('Sid') \
                        .update(sms_url='http://your-application.com/docs/sms.xml')
    
    print(application.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    application = @client.applications('Sid')
                         .update(
                            sms_url: 'http://your-application.com/docs/sms.xml'
                          )
    
    puts application.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $application = $client->applications("Sid")
                            ->update();
    
      print($application->friendlyName);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "api_version": "2010-04-01",
      "date_created": "Sun, 16 Sept 2018 10:00:00 +0000",
      "date_updated": "Mon, 17 Sept 2018 20:00:00 +0000",
      "friendly_name": "Application1",
      "message_status_callback": "http://www.example.com/sms-status-callback",
      "sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "sms_fallback_method": "GET",
      "sms_fallback_url": "http://www.example.com/sms-fallback",
      "sms_method": "GET",
      "sms_status_callback": "http://www.example.com/sms-status-callback",
      "sms_url": "http://your-application.com/docs/sms.xml",
      "status_callback": "http://example.com",
      "status_callback_method": "GET",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications/b3877c40-da60-4998-90ad-b792e98472af.json",
      "voice_caller_id_lookup": false,
      "voice_fallback_method": "GET",
      "voice_fallback_url": "http://www.example.com/voice-callback",
      "voice_method": "GET",
      "voice_url": "http://example.com"
    }
    

    Allows you to modify the properties of an application.

    Parameter
    FriendlyName required The description, up to 64 characters long, of the application.
    MessageStatusCallback optional If a message's ApplicationSid is set to this application's Sid, when a message receives a status change, SignalWire will send a POST request to this URL with the message's details.
    SmsFallbackMethod optional Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.
    SmsFallbackUrl optional The URL SignalWire will request if errors occur when fetching the SmsUrl.
    SmsMethod optional Whether the request to SmsUrl is a GET or a POST. Default is POST.
    SmsStatusCallback optional If a message's ApplicationSid is set to this application's Sid, when a message receives a status change, SignalWire will send a POST request to this URL with the message's details.
    SmsUrl optional The URL to request when an SMS is received.
    StatusCallback optional The URL to pass call status updates to the application.
    StatusCallbackMethod optional Whether the request to the StatusCallback URL is a GET or a POST. Default is POST.
    VoiceFallbackMethod optional Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.
    VoiceFallbackUrl optional The URL SignalWire will request if errors occur when fetching the Url.
    VoiceMethod optional Whether the request to VoiceUrl is a GET or POST. Default is POST.
    VoiceUrl optional The URL to request when a call is received.

    Example: Update an Application's VoiceUrl

    Update an Application's VoiceUrl

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Applications/{Sid}.json \
      -X POST \
      --data-urlencode "VoiceUrl=http://your-application.com/docs/voice.xml"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.applications('Sid')
          .update({
             voiceUrl: 'http://your-application.com/docs/voice.xml'
           })
          .then(application => console.log(application.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var application = ApplicationResource.Update(
                voiceUrl: new Uri("http://your-application.com/docs/voice.xml"),
                pathSid: "Sid"
            );
    
            Console.WriteLine(application.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    application = client.applications('Sid') \
                        .update(
                             voice_url='http://your-application.com/docs/voice.xml'
                         )
    
    print(application.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    application = @client.applications('Sid')
                         .update(
                            voice_url: 'http://your-application.com/docs/voice.xml'
                          )
    
    puts application.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $application = $client->applications("Sid")
                            ->update(array("voiceUrl" => "http://your-application.com/docs/voice.xml"));
    
      print($application->friendlyName);
    ?>
    

    Update the URL that SignalWire will request when a call to your account is received.

    Delete an Application

    Delete an Application

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Applications/{Sid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.applications('Sid')
          .remove()
          .then(application => console.log(application.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            ApplicationResource.Delete(pathSid: "YourProjectID");
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.applications('Sid').delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.applications('Sid').delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->applications("Sid")
             ->delete();
    ?>
    

    Response 204 No Content

    Delete an application. If the delete is successful, a 204 response, with no body, will be returned.

    Parameter
    Sid required The Application Sid that uniquely identifies the application to delete.

    Available Phone Numbers

    The ability to search for local, toll-free, and mobile phone numbers to purchase.

    Properties

    A sample AvailablePhoneNumber returned from the API.

    {
      "friendly_name": "253-218-6751",
      "phone_number": "+12532186751",
      "lata": null,
      "rate_center": "AUBURN",
      "latitude": null,
      "longitude": null,
      "region": "WA",
      "postal_code": null,
      "iso_country": "US",
      "capabilities": {
        "voice": true,
        "SMS": true,
        "MMS": true
      },
      "beta": false
    }
    

    The properties listed below apply to local, toll-free, and mobile phone numbers.

    Attribute
    beta boolean New numbers on SignalWire are marked as beta. Possible values are true or false.
    capabilities object Whether or not a number can receive calls and messages. Possible values are Voice, SMS, MMS, and Fax. Each of these values have a boolean value of true or false.
    friendly_name string A formatted version of the number.
    iso_country string The ISO country code of the number.
    lata string The LATA of the number. Only available for numbers in US and Canada.
    latitude string The latitude of the number. Only available for numbers in US and Canada.
    longitude string The longitude of the number. Only available for numbers in US and Canada.
    phone_number string The number in E.164 format.
    postal_code string The postal/zip code of the number. Only available for numbers in US and Canada.
    rate_center string The rate center of the number. Only available for numbers in US and Canada.
    region string The state or province abbreviation of the number. Only available for numbers in US and Canada.

    Search for Local AvailablePhoneNumbers

    Search for Numbers within Washington region.

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/US/Local.json \
      -X GET \
      -d "InRegion=WA" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client
      .availablePhoneNumbers('US')
      .local.list({
        inRegion: 'WA',
      })
      .then(availablePhoneNumbers => {
        const number = availablePhoneNumbers[0];
        return client.incomingPhoneNumbers.create({
          phoneNumber: number.phoneNumber,
        });
      })
      .then(purchasedNumber => console.log(purchasedNumber.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    using Twilio.Rest.Api.V2010.Account.AvailablePhoneNumberCountry;
    using System.Linq;
    
    class Example
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
            TwilioClient.Init(project, token);
    
            var localAvailableNumbers = LocalResource.Read("US", inRegion: "WA");
    
            var firstNumber = localAvailableNumbers.First();
            var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
                phoneNumber: firstNumber.PhoneNumber);
    
            Console.WriteLine(incomingPhoneNumber.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    numbers = client.available_phone_numbers("US") \
                    .local \
                    .list(in_region="WA")
    
    number = client.incoming_phone_numbers \
                   .create(phone_number=numbers[0].phone_number)
    
    print(number.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @numbers = @client.api.available_phone_numbers('US').local
                      .list(in_region: 'WA')
    
    @number = @numbers[0].phone_number
    
    @client.incoming_phone_numbers.create(phone_number: @number)
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $numbers = $client->availablePhoneNumbers('US')->local->read(
          array("inRegion" => "WA")
      );
    
      $number = $client->incomingPhoneNumbers
          ->create(
              array("phoneNumber" => $numbers[0]->phoneNumber)
          );
    
      echo $number->sid;
    ?>
    

    Response 200 OK

    {
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers/US/Local?InRegion=WA",
      "available_phone_numbers": [
        {
          "friendly_name": "253-218-6751",
          "phone_number": "+12532186751",
          "lata": null,
          "rate_center": "AUBURN",
          "latitude": null,
          "longitude": null,
          "region": "WA",
          "postal_code": null,
          "iso_country": "US",
          "capabilities": {
            "voice": true,
            "SMS": true,
            "MMS": true
          },
          "beta": false
        },
        {
          "friendly_name": "253-218-6752",
          "phone_number": "+12532186752",
          "lata": null,
          "rate_center": "AUBURN",
          "latitude": null,
          "longitude": null,
          "region": "WA",
          "postal_code": null,
          "iso_country": "US",
          "capabilities": {
            "voice": true,
            "SMS": true,
            "MMS": true
          },
          "beta": false
        }
      ]
    }
    

    Search for available phone numbers that match your criteria.

    Attribute
    AreaCode optional Find numbers in the provided area code. Only available for numbers in US and Canada.
    Beta optional Whether or not to specify if a number is a new SignalWire number or not. Possible values are true or false. Default is true.
    Contains optional Find numbers based off of a pattern. Valid characters are * and [0-9a-zA-Z].
    Distance optional Search radius for distance away in miles. Max value is 500 miles. Default is 25 miles.
    ExcludeAllAddressRequired optional Whether or not to exclude numbers that require an address anywhere in the world. Possible values are true or false, default is false.
    ExcludeForeignAddressRequired optional Whether or not to exclude numbers that require a foreign address. Possible values are true or false, default is false.
    ExcludeLocalAddressRequired optional Whether or not to exclude numbers that require a local address. Possible values are true or false, default is false.
    FaxEnabled optional Whether or not a number can receive faxes. Possible values are true or false.
    InLata optional Limits search to same LATA as number.
    InLocality optional Limits search to same locality as number.
    InPostalCode optional Limits search to same postal code as number.
    InRateCenter optional Limits search to same rate center as number.
    InRegion optional Limits search to same region as number.
    MmsEnabled optional Whether or not a number can receive MMS messages. Possible values are true or false.
    NearLatLong optional Find numbers close to the provided latitude and longitude. Only available for numbers in US and Canada.
    NearNumber optional Find numbers close to the provided number. Distance defaulted to 25 miles. Only available in US and Canada.
    SmsEnabled optional Whether or not a number can receive SMS messages. Possible values are true or false.
    VoiceEnabled optional Whether or not a number can receive calls. Possible values are true or false.

    Example: Find Local Numbers by Number Pattern

    Find Numbers by Number Pattern

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountry}/Local.json \
      -X GET \
      -d "Contains=555" \
      -d "AreaCode=510"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client
      .availablePhoneNumbers('US')
      .local.list({
        contains: '555',
        areaCode: '510',
      })
      .then(availablePhoneNumbers => {
        const number = availablePhoneNumbers[0];
        return client.incomingPhoneNumbers.create({
          phoneNumber: number.phoneNumber,
        });
      })
      .then(purchasedNumber => console.log(purchasedNumber.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    using Twilio.Rest.Api.V2010.Account.AvailablePhoneNumberCountry;
    using System.Linq;
    
    class Example
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
            TwilioClient.Init(project, token);
    
            var localAvailableNumbers = LocalResource.Read("US", contains: "555", areaCode: "510");
    
            var firstNumber = localAvailableNumbers.First();
            var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
                phoneNumber: firstNumber.PhoneNumber);
    
            Console.WriteLine(incomingPhoneNumber.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    numbers = client.available_phone_numbers("US") \
                    .local \
                    .list(contains="555", area_code="510")
    
    number = client.incoming_phone_numbers \
                   .create(phone_number=numbers[0].phone_number)
    
    print(number.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @numbers = @client.api.available_phone_numbers('US').local
                      .list(contains: '555', area_code: '510')
    
    @number = @numbers[0].phone_number
    
    @client.incoming_phone_numbers.create(phone_number: @number)
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $numbers = $client->availablePhoneNumbers('US')->local->read(
          array("contains" => "555", "areaCode" => "510")
      );
    
      $number = $client->incomingPhoneNumbers
          ->create(
              array(
                  "phoneNumber" => $numbers[0]->phoneNumber
              )
          );
    
      echo $number->sid;
    ?>
    

    Find all local numbers in the United States, with area code 510, that contain the pattern '555'.

    Find All Toll-Free Numbers

    Find All Toll-Free Numbers

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountry}/TollFree.json \
      -X GET \
      -d "AreaCode=310"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client
      .availablePhoneNumbers('US')
      .tollFree.list({
        areaCode: '310',
      })
      .then(availablePhoneNumbers => {
        const number = availablePhoneNumbers[0];
        return client.incomingPhoneNumbers.create({
          phoneNumber: number.phoneNumber,
        });
      })
      .then(purchasedNumber => console.log(purchasedNumber.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    using Twilio.Rest.Api.V2010.Account.AvailablePhoneNumberCountry;
    using System.Linq;
    
    class Example
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
            TwilioClient.Init(project, token);
    
            var tollFreeAvailableNumbers = TollFreeResource.Read("US", areaCode: "310");
    
            var firstNumber = tollFreeAvailableNumbers.First();
            var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
                phoneNumber: firstNumber.PhoneNumber);
    
            Console.WriteLine(incomingPhoneNumber.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    numbers = client.available_phone_numbers("US") \
                    .toll_free \
                    .list(area_code="310")
    
    number = client.incoming_phone_numbers \
                   .create(phone_number=numbers[0].phone_number)
    
    print(number.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @numbers = @client.api.available_phone_numbers('US').toll_free
                      .list(area_code: '310')
    
    @number = @numbers[0].phone_number
    
    @client.incoming_phone_numbers.create(phone_number: @number)
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $numbers = $client->availablePhoneNumbers('US')->tollFree->read(array("areaCode" => "310"));
    
      $number = $client->incomingPhoneNumbers
          ->create(
              array(
                  "phoneNumber" => $numbers[0]->phoneNumber
              )
          );
    
      echo $number->sid;
    ?>
    

    Response 200 OK

    {
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers/US/TollFree",
      "available_phone_numbers": [
        {
          "friendly_name": "310-218-6751",
          "phone_number": "+13102186751",
          "iso_country": "US",
          "capabilities": {
            "voice": true,
            "SMS": true,
            "MMS": true
          },
          "beta": false
        },
        {
          "friendly_name": "310-218-6752",
          "phone_number": "+13102186752",
          "iso_country": "US",
          "capabilities": {
            "voice": true,
            "SMS": true,
            "MMS": true
          },
          "beta": false
        }
      ]
    }
    

    Find all numbers in the United States, with area code 310, that are toll-free.

    Example: Find a Toll-Free Number by String

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/{IsoCountry}/TollFree.json \
      -X GET \
      -d "Contains=WIN"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client
      .availablePhoneNumbers('US')
      .tollFree.list({
        contains: 'WIN',
      })
      .then(availablePhoneNumbers => {
        const number = availablePhoneNumbers[0];
        return client.incomingPhoneNumbers.create({
          phoneNumber: number.phoneNumber,
        });
      })
      .then(purchasedNumber => console.log(purchasedNumber.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    using Twilio.Rest.Api.V2010.Account.AvailablePhoneNumberCountry;
    using System.Linq;
    
    class Example
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
            TwilioClient.Init(project, token);
    
            var tollFreeAvailableNumbers = TollFreeResource.Read("US", contains: "WIN");
    
            var firstNumber = tollFreeAvailableNumbers.First();
            var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
                phoneNumber: firstNumber.PhoneNumber);
    
            Console.WriteLine(incomingPhoneNumber.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    numbers = client.available_phone_numbers("US") \
                    .toll_free \
                    .list(contains="WIN")
    
    number = client.incoming_phone_numbers \
                   .create(phone_number=numbers[0].phone_number)
    
    print(number.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @numbers = @client.api.available_phone_numbers('US').toll_free
                      .list(contains: 'WIN')
    
    @number = @numbers[0].phone_number
    
    @client.incoming_phone_numbers.create(phone_number: @number)
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $numbers = $client->availablePhoneNumbers('US')->tollFree->read(
          array("contains" => "WIN")
      );
    
      $number = $client->incomingPhoneNumbers
          ->create(
              array(
                  "phoneNumber" => $numbers[0]->phoneNumber
              )
          );
    
      echo $number->sid;
    ?>
    

    Find all toll-free numbers that contain WIN, or 946. Some examples of this include: 946-338-3456 or 310-946-3456.

    List of AvailablePhoneNumbers

    List of AvailablePhoneNumbers

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client
      .availablePhoneNumbers()
      .then(availablePhoneNumbers => {
        const number = availablePhoneNumbers[0];
        return client.incomingPhoneNumbers.create({
          phoneNumber: number.phoneNumber,
        });
      })
      .then(purchasedNumber => console.log(purchasedNumber.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    using Twilio.Rest.Api.V2010.Account.AvailablePhoneNumberCountry;
    using System.Linq;
    
    class Example
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
            TwilioClient.Init(project, token);
    
            var availablePhoneNumbers = AvailablePhoneNumbers.Read();
    
            var firstNumber = availablePhoneNumbers.First();
            var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
                phoneNumber: firstNumber.PhoneNumber);
    
            Console.WriteLine(incomingPhoneNumber.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    numbers = client.available_phone_numbers() \
                    .list()
    
    number = client.incoming_phone_numbers \
                   .create(phone_number=numbers[0].phone_number)
    
    print(number.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @numbers = @client.api.available_phone_numbers()
                      .list()
    
    @number = @numbers[0].phone_number
    
    @client.incoming_phone_numbers.create(phone_number: @number)
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $numbers = $client->availablePhoneNumbers()->read();
    
      $number = $client->incomingPhoneNumbers
          ->create(
              array(
                  "phoneNumber" => $numbers[0]->phoneNumber
              )
          );
    
      echo $number->sid;
    ?>
    

    Response 200 OK

    {
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers",
      "available_phone_numbers": [
        {
          "friendly_name": "310-338-4590",
          "phone_number": "+13103384590",
          "country_code": 1,
          "capabilities": {
            "voice": true,
            "SMS": true,
            "MMS": false
          },
          "beta": false
        },
        {
          "friendly_name": "253-218-6752",
          "phone_number": "+12532186752",
          "country_code": 1,
          "capabilities": {
            "voice": true,
            "SMS": true,
            "MMS": false
          },
          "beta": false
        }
      ]
    }
    

    Returns a list of all available phone numbers that can be purchased by your account. This list is organized by ISO Country.

    Attribute
    beta boolean When true, all available numbers in this country are new to SignalWire. When false, all numbers in this country are not new to SignalWire.
    country_code integer The ISO Country code used for number lookup.

    Example: List of AvailablePhoneNumbers in US

    List of AvailablePhoneNumbers in US

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/US.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client
      .availablePhoneNumbers('US')
      .then(availablePhoneNumbers => {
        const number = availablePhoneNumbers[0];
        return client.incomingPhoneNumbers.create({
          phoneNumber: number.phoneNumber,
        });
      })
      .then(purchasedNumber => console.log(purchasedNumber.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    using Twilio.Rest.Api.V2010.Account.AvailablePhoneNumberCountry;
    using System.Linq;
    
    class Example
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
            TwilioClient.Init(project, token);
    
            var availablePhoneNumbers = AvailablePhoneNumbers.Read("US");
    
            var firstNumber = availablePhoneNumbers.First();
            var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
                phoneNumber: firstNumber.PhoneNumber);
    
            Console.WriteLine(incomingPhoneNumber.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    numbers = client.available_phone_numbers("US") \
                    .list()
    
    number = client.incoming_phone_numbers \
                   .create(phone_number=numbers[0].phone_number)
    
    print(number.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @numbers = @client.api.available_phone_numbers('US')
                      .list()
    
    @number = @numbers[0].phone_number
    
    @client.incoming_phone_numbers.create(phone_number: @number)
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $numbers = $client->availablePhoneNumbers('US')->read();
    
      $number = $client->incomingPhoneNumbers
          ->create(
              array(
                  "phoneNumber" => $numbers[0]->phoneNumber
              )
          );
    
      echo $number->sid;
    ?>
    

    Response 200 OK

    {
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers/US",
      "available_phone_numbers": [
        {
          "friendly_name": "310-338-4590",
          "phone_number": "+13103384590",
          "country_code": 1,
          "capabilities": {
            "voice": true,
            "SMS": true,
            "MMS": false
          },
          "beta": false
        },
        {
          "friendly_name": "253-218-6752",
          "phone_number": "+12532186752",
          "country_code": 1,
          "capabilities": {
            "voice": true,
            "SMS": true,
            "MMS": false
          },
          "beta": false
        }
      ]
    }
    

    Returns a list of all available phone numbers, in the United States, that can be purchased by your account.

    Calls

    A call is a connection between SignalWire and another phone. Outbound calls are made from SignalWire numbers to other phone numbers. Inbound calls are made from other phone numbers to SignalWire numbers.

    Properties

    A sample call returned from the API.

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "annotation": null,
      "answered_by": null,
      "api_version": "2010-04-01",
      "caller_name": null,
      "date_created": "Wed, 19 Sept 2018 20:00:00 +0000",
      "date_updated": "Thur, 20 Sept 2018 10:00:00 +0000",
      "direction": "inbound",
      "duration": 20,
      "end_time": "Fri, 21 Sept 2018 10:00:00 +0000",
      "forwarded_from": "+13102259067",
      "from": "+13103384645",
      "formatted_from": "(310) 338-4645",
      "parent_call_sid": "b3877c40-da60-4998-90ad-b792e98472pa",
      "phone_number_sid": "b3877c40-da60-4998-90ad-b792e98472ph",
      "price": -0.00500,
      "price_unit": "USD",
      "sid": "b3877c40-da60-4998-90ad-b792e98472pa",
      "start_time": "Wed, 19 Sept 2018 20:00:01 +0000",
      "status": "completed",
      "subresource_uris": {
        "notifications": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa/Notifications.json",
        "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa/Recordings.json"
      },
      "to": "+13105678901",
      "formatted_to": "(310) 567-8901",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa.json",
      "url": "http://your-application.com/docs/voice.xml"
    }
    
    Attribute
    account_sid string The unique identifier for the account that created this call.
    annotation string The annotation for the call.
    answered_by string Who/what the call was answered by. Possible values are human or machine.
    api_version string The version of the SignalWire API.
    caller_name string The name of the caller. Only available if Caller ID lookup is enabled.
    date_created datetime The date, in RFC 2822 GMT format, this call was created.
    date_updated datetime The date, in RFC 2822 GMT format, this call was updated.
    direction string The direction of the call. Possible values are inbound or outbound.
    duration string The duration, in seconds, of the call.
    end_time datetime The time, in RFC 2822 GMT format, the call was terminated.
    forwarded_from string The number this call was forwarded from.
    from string The number, in E.164 format, that initiated the call.
    formatted_from string The formatted number that initiated the call.
    parent_call_sid string The unique identifier for the call that created this leg.
    phone_number_sid string Outbound call: the unique identifier for OutgoingCallerId. Inbound call: the unique identifier for IncomingPhoneNumber.
    price integer The charge for the call.
    price_unit string The currency, in ISO 4127 format, for the price of the call.
    sid string The unique identifier for the call.
    start_time datetime The time, in RFC 2822 GMT format, the call began.
    status string The status of the call. See below for all possible values.
    subresource_uris object A Map of available sub-resources.
    to string The number, in E.164 format, that received the call.
    formatted_to string The formatted number that received the call.
    uri string The URI for the call.



    The status attribute has the following values:

    Value
    queued The call is ready and waiting in line.
    ringing The call is ringing.
    in-progress The call was picked up and is in progress.
    canceled The call was terminated when ringing or queued.
    completed The call was picked up and terminated with no issues.
    busy The caller received a busy signal.
    failed The call was not completed because of a failure.

    Create a Call

    Create a Call

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Calls.json \
      -X POST \
      --data-urlencode "Url=http://your-application.com/docs/voice.xml" \
      --data-urlencode "To=+13105678901" \
      --data-urlencode "From=+13103384645" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.calls
          .create({
             url: 'http://your-application.com/docs/voice.xml',
             to: '+13105678901',
             from: '+13103384645'
           })
          .then(call => console.log(call.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var call = CallResource.Create(
                url: new Uri("http://your-application.com/docs/voice.xml"),
                to: new Twilio.Types.PhoneNumber("+13105678901"),
                from: new Twilio.Types.PhoneNumber("+13103384645")
            );
    
            Console.WriteLine(call.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    call = client.calls.create(
                            url='http://your-application.com/docs/voice.xml',
                            to='+13105678901',
                            from_='+13103384645'
                        )
    
    print(call.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    call = @client.calls.create(
                           url: 'http://your-application.com/docs/voice.xml',
                           to: '+13105678901',
                           from: '+13103384645'
                         )
    
    puts call.sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $call = $client->calls
                     ->create("+13105678901", // to
                              "+13103384645", // from
                              array("url" => "http://your-application.com/docs/voice.xml")
                     );
    
      print($call->sid);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "annotation": null,
      "answered_by": null,
      "api_version": "2010-04-01",
      "caller_name": null,
      "date_created": "Wed, 19 Sept 2018 20:00:00 +0000",
      "date_updated": "Thur, 20 Sept 2018 10:00:00 +0000",
      "direction": "inbound",
      "duration": "20",
      "end_time": "Fri, 21 Sept 2018 10:00:00 +0000",
      "forwarded_from": "+13102259067",
      "from": "+13103384645",
      "from_formatted": "(310) 338-4645",
      "group_sid": "b3877c40-da60-4998-90ad-b792e98472pg",
      "parent_call_sid": "b3877c40-da60-4998-90ad-b792e98472pa",
      "phone_number_sid": "b3877c40-da60-4998-90ad-b792e98472ph",
      "price": -0.02000,
      "price_unit": "USD",
      "sid": "b3877c40-da60-4998-90ad-b792e98472pa",
      "start_time": "Wed, 19 Sept 2018 20:00:01 +0000",
      "status": "completed",
      "subresource_uris": {
        "notifications": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa/Notifications.json",
        "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa/Recordings.json",
        "feedback": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa/Feedback.json",
        "feedback_summaries": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/FeedbackSummary.json"
      },
      "to": "+13105678901",
      "to_formatted": "(310) 567-8901",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa.json",
      "url": "http://your-application.com/docs/voice.xml"
    }
    
    Parameter
    ApplicationSid required*if Url is not present The unique identifier of the application used to handle the call.
    From required The number that initiated the call.
    To required The number that received the call.
    Url required*if ApplicationSid is not present The URL of the call.
    CallerId optional The number, in E.164 format, or identifier of the caller.
    FallbackMethod optional Whether the request to FallbackUrl is a GET or a POST. Default is POST. If ApplicationSid is present, this parameter is ignored.
    FallbackUrl optional The URL SignalWire will request if errors occur when fetching the Url. If ApplicationSid is present, this parameter is ignored.
    MachineDetection optional Whether a human or machine picked up the call.
    MachineDetectionTimeout optional The time SignalWire will wait for machine detection before timing out.
    Method optional Whether the request to Url is a GET or a POST. Default is POST. Ignored if ApplicationSid is present.
    Record optional Whether or not to record a call. Possible values are true or false. Default is false.
    RecordingChannels optional The number of channels in the recording. Can be mono (both legs of call recorded under one channel into one recording file) or dual (each leg of call recorded in separate channels into one recording file).
    RecordingStatusCallback optional The URL to request to when recording is available.
    RecordingStatusCallbackEvent optional The different recording statuses. Possible values are completed, in-progress, and failed. Defaults are completed and failed.
    RecordingStatusCallbackMethod optional Whether the request to RecordingStatusCallback URL is a GET or a POST. Default is POST.
    SendDigits optional The digits to press after a call is connected. Possible values are (0-9), #, *, and w. Each w gives a 0.5 second pause before moving on to the next instruction.
    StatusCallback optional The URL SignalWire will send webhooks to on every RecordingStatusCallbackEvent event.
    StatusCallbackEvent optional The status events that trigger a SignalWire webhook. Possible values are initiated, ringing, answered, and completed.
    StatusCallbackMethod optional Whether the request to StatusCallback URL is a GET or a POST. Default is POST. Ignored if ApplicationSid is present.
    Timeout optional The time SignalWire will wait before assuming the call has no answer. Max wait time is 600 seconds. Default is 60 seconds.
    Trim optional Whether leading and trailing silence is trimmed from a recording. Possible values are trim-silence and do-not-trim. Default is trim-silence.

    StatusCallback Parameters

    In addition to the standard request parameters, the following are parameters passed back to your application when SignalWire makes a request to the StatusCallback URL.

    Parameter
    ForwardedFrom The number this call was forwarded from.
    CallerName The name of the caller. Only available if Caller ID lookup is enabled.
    CallDuration The duration, in seconds, of the call.
    RecordingUrl The URL of the recorded audio call.
    RecordingSid The unique identifier for the audio recording.
    RecordingDuration The duration, in seconds of the recording.
    Timestamp The timestamp, in RFC 2822 format, an event occurred.
    CallbackSource The source of the webhook.
    SequenceNumber The order in which events occur. Starts at 0. Although events are fired in order, they each take time and may not appear in the order you expect.



    The standard parameter, CallStatus, has the following values:

    Value
    queued The call is ready and waiting in line.
    ringing The call is ringing.
    in-progress The call was picked up and is in progress.
    canceled The call was terminated when ringing or queued.
    completed The call was picked up and terminated with no issues.
    busy The caller received a busy signal.
    failed The call was not completed because of a failure.

    RecordingStatusCallback Parameters

    In addition to the standard request parameters, the following are parameters passed back to your application when SignalWire makes a request to the RecordingStatusCallback URL.

    Parameter
    RecordingSid The unique identifier for the audio recording.
    RecordingUrl The URL of the recorded audio call.
    RecordingStatus The status of the recording. See below for all possible values.
    RecordingDuration The duration, in seconds of the recording.
    RecordingChannels The number of channels in the recording. Possible values are 1 and 2.
    RecordingSource The type of call that made the recording.



    The RecordingStatus attribute has the following values:

    Value
    in-progress The recording of the call has begun.
    completed The recording of the call is completed and ready to access.
    failed The recording of the call is not accessible because of a failure.

    Retrieve a Call

    Retrieve a Call

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Calls/{Sid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.calls('Sid')
          .fetch()
          .then(call => console.log(call.to))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var call = CallResource.Fetch(pathSid: "Sid");
    
            Console.WriteLine(call.To);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    call = client.calls('Sid').fetch()
    
    print(call.to)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    call = @client.calls('Sid').fetch
    
    puts call.to
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $call = $client->calls("Sid")
                     ->fetch();
    
      print($call->to);
    ?>
    

    Retrieve a single call.

    Parameter
    Sid required The Call Sid that uniquely identifies the call to retrieve.

    List All Calls

    List All Calls

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Calls.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.calls.each(calls => console.log(calls.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var calls = CallResource.Read();
    
            foreach(var record in calls)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    calls = client.calls.list()
    
    for record in calls:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    calls = @client.calls.list
    
    calls.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $calls = $client->calls
                      ->read();
    
      foreach ($calls as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "calls": [
        {
          "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
          "annotation": null,
          "answered_by": null,
          "api_version": "2010-04-01",
          "caller_name": null,
          "date_created": "Wed, 19 Sept 2018 20:00:00 +0000",
          "date_updated": "Thur, 20 Sept 2018 10:00:00 +0000",
          "direction": "inbound",
          "duration": "20",
          "end_time": "Fri, 21 Sept 2018 10:00:00 +0000",
          "forwarded_from": "+13102259067",
          "from": "+13103384645",
          "from_formatted": "(310) 338-4645",
          "parent_call_sid": "b3877c40-da60-4998-90ad-b792e98472pa",
          "phone_number_sid": "b3877c40-da60-4998-90ad-b792e98472ph",
          "price": -0.00500,
          "price_unit": "USD",
          "sid": "b3877c40-da60-4998-90ad-b792e98472pa",
          "start_time": "Wed, 19 Sept 2018 20:00:01 +0000",
          "status": "completed",
          "subresource_uris": {
            "notifications": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa/Notifications.json",
            "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa/Recordings.json"
          },
          "to": "+13105678901",
          "to_formatted": "(310) 567-8901",
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls/b3877c40-da60-4998-90ad-b792e98472pa.json"
        }
      ],
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls.json?PageSize=1&Page=0",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls.json?PageSize=1&Page=1",
      "page": 0,
      "page_size": 1,
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls.json?PageSize=1&Page=0",
      "start": 0,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls.json?PageSize=1&Page=0",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af"
    }
    

    The ability to read all of the calls that are associated with your account. This will be returned as a list of calls.

    Parameter
    EndTime optional Returns calls that ended on the specified date.
    From optional Returns calls that are from a specified number.
    ParentCallSid optional Returns calls that created the leg of the call.
    StartTime optional Returns calls that started on the specified date. You can also append < or > to return a range of calls. For example, use StartTime< to return calls started on or before midnight of the date, or StartTime> to return calls started on or after midnight of the date.
    Status optional Returns calls with the specified status.
    To optional Returns calls that were made to the specified number.

    Update a Call

    Update a Call

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Calls/{Sid}.json \
      -X POST \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.calls('Sid')
          .update()
          .then(call => console.log(call.to))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var call = CallResource.Update(
                pathSid: "Sid"
            );
    
            Console.WriteLine(call.To);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    call = client.calls('Sid') \
                 .update()
    
    print(call.to)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    call = @client.calls('Sid')
                  .update()
    
    puts call.to
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $call = $client->calls("Sid")
                     ->update();
    
      print($call->to);
    ?>
    

    Allows you to modify the properties of an active call.

    Parameter
    Sid required The unique identifier for the call to update.
    FallbackMethod optional Whether the request to FallbackUrl is a GET or a POST. Default is POST. Ignored if ApplicationSid is available.
    FallbackUrl optional The URL SignalWire will request if errors occur when fetching the Url.
    Method optional Whether the request to Url is a GET or a POST. Default is POST. Ignored if ApplicationSid is available.
    Status optional The status of the call. Possible values are cancelled and completed.
    StatusCallback optional The URL SignalWire will send webhooks to on every RecordingStatusCallbackEvent event. Default is completed if no events are present.
    StatusCallbackMethod optional Whether the request to StatusCallback URL is a GET or a POST. Default is POST. Ignored if ApplicationSid is available.
    Url optional The URL of the call.

    Example: Terminate a Call

    Terminate a Call

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Calls/{Sid}.json \
      -X POST \
      --data-urlencode "Status=completed"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.calls('Sid')
          .update({status: 'completed'})
          .then(call => console.log(call.to))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var call = CallResource.Update(
                status: CallResource.UpdateStatusEnum.Completed,
                pathSid: "Sid"
            );
    
            Console.WriteLine(call.To);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    call = client.calls('Sid') \
                 .update(status='completed')
    
    print(call.to)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    call = @client.calls('Sid')
                  .update(status: 'completed')
    
    puts call.to
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $call = $client->calls("Sid")
                     ->update(array("status" => "completed"));
    
      print($call->to);
    ?>
    

    Terminate a call in progress by specifying the call status as completed.

    Delete a Call

    Delete a Call

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Calls/{Sid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.calls('Sid')
          .remove()
          .then(call => console.log(call.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            CallResource.Delete(pathSid: "Sid");
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.calls('Sid').delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.calls('Sid').delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->calls("Sid")
             ->delete();
    ?>
    

    Response 204 No Content

    Delete a call. If the delete is successful, a 204 response, with no body, will be returned.

    Parameter
    Sid required The Call Sid that uniquely identifies the call to delete.

    Conference Participants

    Conference participants refer to the participants that are actively connected to a conference call. You can mute or remove participants from a conference as well as retrieve a list of all participants, along with detailed information about each participant, in an active conference.

    Properties

    A sample participant returned from the API

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "conference_sid": "b3877c40-da60-4998-90ad-b792e98472pa",
      "date_created": "Mon, 24 Sept 2018 21:00:00 +0000",
      "date_updated": "Tue, 25 Sept 2018 20:00:00 +0000",
      "end_conference_on_exit": false,
      "muted": false,
      "hold": false,
      "status": "complete",
      "start_conference_on_enter": true,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472pa/Participants/b3877c40-da60-4998-90ad-b792e98472ca.json"
    }
    
    Attribute
    account_sid string The unique identifier for the account that created this conference.
    call_sid string The unique identifier for the Participant call connected to this conference.
    conference_sid string The unique identifier for the conference this participant is in.
    date_created datetime The date, in RFC 2822 format, this conference participant was created.
    date_updated datetime The date, in RFC 2822 format, this conference participant was updated.
    end_conference_on_exit boolean Whether or not a conference ends when a participant leaves the conference call. Possible values are true or false.
    muted boolean Whether or not a participant is muted. Possible values are true or false.
    hold boolean Whether or not a participant is on hold. Possible values are true or false.
    start_conference_on_enter boolean Whether or not a conference will begin when this participant enters the conference call. Possible values are true or false.
    uri string The URI for this conference participant.

    Retrieve a Participant

    Retrieve a Participant

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants/{CallSid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('ConferenceSid')
          .participants('CallSid')
          .fetch()
          .then(participant => console.log(participant.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Conference;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var participant = ParticipantResource.Fetch(
                pathConferenceSid: "ConferenceSid",
                pathCallSid: "CallSid"
            );
    
            Console.WriteLine(participant.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    participant = client.conferences('ConferenceSid') \
                        .participants('CallSid') \
                        .fetch()
    
    print(participant.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    participant = @client.conferences('ConferenceSid')
                         .participants('CallSid')
                         .fetch
    
    puts participant.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $participant = $client->conferences("ConferenceSid")
                            ->participants("CallSid")
                            ->fetch();
    
      print($participant->callSid);
    ?>
    

    Retrieve a single participant.

    Parameter
    AccountSid required The unique identifier for the account that created this conference.
    CallSid required The unique identifier for the Participant call connected to this conference.
    ConferenceSid required The unique identifier for the conference this participant is in.

    List All Active Participants

    List All Active Participants

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('ConferenceSid')
          .participants
          .each(participants => console.log(participants.callSid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Conference;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var participants = ParticipantResource.Read(
                pathConferenceSid: "ConferenceSid"
            );
    
            foreach(var record in participants)
            {
               Console.WriteLine(record.CallSid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    participants = client.conferences('ConferenceSid') \
                         .participants \
                         .list()
    
    for record in participants:
        print(record.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    participants = @client.conferences('ConferenceSid')
                          .participants
                          .list
    
    participants.each do |record|
      puts record.call_sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $participants = $client->conferences("ConferenceSid")
                             ->participants
                             ->read();
    
      foreach ($participants as $record) {
          print($record->callSid);
      }
    ?>
    

    Response 200 OK

    {
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472pa/Participants.json?Page=0&PageSize=50",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472pa/Participants.json?Page=50",
      "page": 0,
      "page_size": 50,
      "participants": [
        {
          "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
          "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
          "conference_sid": "b3877c40-da60-4998-90ad-b792e98472pa",
          "date_created": "Mon, 24 Sept 2018 21:00:00 +0000",
          "date_updated": "Tue, 25 Sept 2018 20:00:00 +0000",
          "end_conference_on_exit": false,
          "muted": false,
          "hold": false,
          "status": "complete",
          "start_conference_on_enter": true,
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472pa/Participants/b3877c40-da60-4998-90ad-b792e98472ca.json"
        }
      ],
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472pa/Participants.json?Page=0&PageSize=50",
      "start": 0,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472pa/Participants.json",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "conference_sid": "b3877c40-da60-4998-90ad-b792e98472pa"
    }
    

    The ability to read all of the active participants that are associated with this conference call. This will be returned as a list of participants.

    Parameter
    AccountSid required The unique identifier for the account that created this conference.
    ConferenceSid required The unique identifier for the conference this participant is in.
    Muted optional Whether or not the participant is muted. Possible values are true or false.
    Hold optional Whether or not the participant is on hold. Possible values are true or false.

    Add a Participant

    In order to add a participant to a conference call, from the LaML REST API, create an outbound call to the participant's phone number and specify a LaML document that consists of something similar to:

    <?xml version="1.0" encoding="UTF-8"?>
    <Response>
      <Dial>
        <Conference>your-conference-name</Conference>
      </Dial>
    </Response>
    

    When the call is connected, the desired participant will be added to the conference call.

    Update a Participant

    Update a Participant

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants/{CallSid}.json \
      -X POST \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('ConferenceSid')
          .participants('CallSid')
          .update()
          .then(participant => console.log(participant.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Conference;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var participant = ParticipantResource.Update(
                pathConferenceSid: "ConferenceSid",
                pathCallSid: "CallSid"
            );
    
            Console.WriteLine(participant.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    participant = client.conferences('ConferenceSid') \
                        .participants('CallSid') \
                        .update()
    
    print(participant.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    participant = @client.conferences('ConferenceSid')
                         .participants('CallSid')
                         .update()
    
    puts participant.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $participant = $client->conferences("ConferenceSid")
                            ->participants("CallSid")
                            ->update();
    
      print($participant->callSid);
    ?>
    

    Allows you to modify the properties of participant in an active conference call.

    Parameter
    AccountSid required The unique identifier for the account that created this conference.
    CallSid required The unique identifier for the Participant call connected to this conference.
    ConferenceSid required The unique identifier for the conference this participant is in.
    AnnounceMethod optional Whether the request to AnnounceUrl is a GET or a POST. Default is POST.
    AnnounceUrl optional The URL to send participant announcements to.
    Hold optional Whether or not the participant is on hold. Possible values are true or false.
    HoldMethod optional Whether the request to HoldUrl is a GET or a POST. Default is POST.
    HoldUrl optional The URL to send hold music to that will be played when participant is on hold.
    Muted optional Whether or not the participant is muted. Possible values are true or false.

    Example: Mute a Participant

    Mute a Participant

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants/{CallSid}.json \
      -X POST \
      --data-urlencode "Muted=True"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('ConferenceSid')
          .participants('CallSid')
          .update({muted: true})
          .then(participant => console.log(participant.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Conference;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var participant = ParticipantResource.Update(
                muted: true,
                pathConferenceSid: "ConferenceSid",
                pathCallSid: "CallSid"
            );
    
            Console.WriteLine(participant.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    participant = client.conferences('ConferenceSid') \
                        .participants('CallSid') \
                        .update(muted=True)
    
    print(participant.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    participant = @client.conferences('ConferenceSid')
                         .participants('CallSid')
                         .update(muted: true)
    
    puts participant.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $participant = $client->conferences("ConferenceSid")
                            ->participants("CallSid")
                            ->update(array("muted" => True));
    
      print($participant->callSid);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "conference_sid": "b3877c40-da60-4998-90ad-b792e98472pa",
      "date_created": "Mon, 24 Sept 2018 21:00:00 +0000",
      "date_updated": "Tue, 25 Sept 2018 20:00:00 +0000",
      "end_conference_on_exit": false,
      "muted": true,
      "hold": false,
      "status": "complete",
      "start_conference_on_enter": true,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472pa/Participants/b3877c40-da60-4998-90ad-b792e98472ca.json"
    }
    

    Example: Put a Participant on Hold

    Put a Participant on Hold

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants/{CallSid}.json \
      -X POST \
      --data-urlencode "Hold=True"
      --data-urlencode "HoldUrl=http://www.your-application.com/hold"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('ConferenceSid')
          .participants('CallSid')
          .update({hold: true, holdUrl: 'http://www.your-application.com/hold'})
          .then(participant => console.log(participant.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Conference;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var participant = ParticipantResource.Update(
                hold: true,
                holdUrl: new Uri("http://www.your-application.com/hold"),
                pathConferenceSid: "ConferenceSid",
                pathCallSid: "CallSid"
            );
    
            Console.WriteLine(participant.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    participant = client.conferences('ConferenceSid') \
                        .participants('CallSid') \
                        .update(hold=True, hold_url='http://www.your-application.com/hold')
    
    print(participant.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    participant = @client.conferences('ConferenceSid')
                         .participants('CallSid')
                         .update(hold: true, hold_url: 'http://www.your-application.com/hold')
    
    puts participant.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $participant = $client->conferences("ConferenceSid")
                            ->participants("CallSid")
                            ->update(array("hold" => True, "holdUrl" => "http://www.your-application.com/hold"));
    
      print($participant->callSid);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "conference_sid": "b3877c40-da60-4998-90ad-b792e98472pa",
      "date_created": "Mon, 24 Sept 2018 21:00:00 +0000",
      "date_updated": "Tue, 25 Sept 2018 20:00:00 +0000",
      "end_conference_on_exit": false,
      "muted": false,
      "hold": true,
      "hold_url": "http://www.your-application.com/hold",
      "status": "complete",
      "start_conference_on_enter": true,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472pa/Participants/b3877c40-da60-4998-90ad-b792e98472ca.json"
    }
    

    This will place a participant, who is in an active conference, on hold and will play hold music.

    Delete a Participant

    Delete a Participant

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants/{CallSid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('ConferenceSid')
          .participants('CallSid')
          .remove()
          .then(participant => console.log(participant.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Conference;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            ParticipantResource.Delete(
                pathConferenceSid: "ConferenceSid",
                pathCallSid: "CallSid"
            );
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.conferences('ConferenceSid') \
          .participants('CallSid') \
          .delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.conferences('ConferenceSid')
           .participants('CallSid')
           .delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->conferences("ConferenceSid")
             ->participants("CallSid")
             ->delete();
    ?>
    

    Response 204 No Content

    Deleting a participant will take them out of a conference call. If the delete is successful, a 204 response, with no body, will be returned.

    Parameter
    AccountSid required The unique identifier for the account that created this conference.
    CallSid required The unique identifier for the Participant call connected to this conference.
    ConferenceSid required The unique identifier for the conference this participant is in.

    Conferences

    The Conference resource permits you to search, modify, and manage conferences in your SignalWire account.

    Properties

    A sample conference returned from the API

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "api_version": "2010-04-01",
      "date_created": "Mon, 24 Sept 2018 21:00:00 +0000",
      "date_updated": "Tue, 25 Sept 2018 20:00:00 +0000",
      "friendly_name": "Conference1",
      "sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "region": "us1",
      "status": "completed",
      "subresource_uris": {
        "participants": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca/Participants.json",
        "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca/Recordings.json"
      },
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca.json"
    }
    
    Attribute
    account_sid string The unique identifier for the account that created this conference.
    date_created datetime The date, in RFC 2822 format, this conference was created.
    date_updated datetime The date, in RFC 2822 format, this conference was updated.
    friendly_name string A description, up to 64 characters, of the conference room.
    region string The region where this conference audio was mixed. Possible values are us1, us2, ie1, de1, sg1, br1, au1, and jp1.
    sid string The unique identifier for this conference.
    status string The status of this conference.
    uri string The URI for this conference.

    Retrieve a Conference

    Retrieve a Conference

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{Sid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('Sid')
          .fetch()
          .then(conference => console.log(conference.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var conference = ConferenceResource.Fetch(
                pathSid: "Sid"
            );
    
            Console.WriteLine(conference.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    conference = client.conferences('Sid').fetch()
    
    print(conference.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    conference = @client.conferences('Sid').fetch
    
    puts conference.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $conference = $client->conferences("Sid")
                           ->fetch();
    
      print($conference->friendlyName);
    ?>
    

    Retrieve a single conference.

    Parameter
    Sid required The unique identifier for this conference.

    List All Conferences

    List All Conferences

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences.each(conferences => console.log(conferences.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var conferences = ConferenceResource.Read();
    
            foreach(var record in conferences)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    conferences = client.conferences.list()
    
    for record in conferences:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    conferences = @client.conferences.list
    
    conferences.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $conferences = $client->conferences
                            ->read();
    
      foreach ($conferences as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "conferences": [
        {
          "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
          "api_version": "2010-04-01",
          "date_created": "Mon, 24 Sept 2018 21:00:00 +0000",
          "date_updated": "Tue, 25 Sept 2018 20:00:00 +0000",
          "friendly_name": null,
          "region": "us1",
          "sid": "b3877c40-da60-4998-90ad-b792e98472ca",
          "status": "in-progress",
          "subresource_uris": {
            "participants": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca/Participants.json",
            "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca/Recordings.json"
          },
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca.json"
        }
      ],
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences.json?PageSize=1&Page=0",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences.json?PageSize=1&Page=1",
      "page": 0,
      "page_size": 1,
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences.json?PageSize=1&Page=0",
      "start": 0,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences.json?PageSize=1",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af"
    }
    

    The ability to read all of the conferences that are associated with your SignalWire account. This will be returned as a list of conferences.

    Parameter
    DateCreated optional Shows conferences that were created on the date provided. Format as YYYY-MM-DD in UTC. You can also append < or > to return a range of conferences. For example, use DateCreated< to return conferences created on or before midnight of the date, or DateCreated> to return conferences created on or after midnight of the date.
    DateUpdated optional Shows conferences that were updated on the date provided. Format as YYYY-MM-DD in UTC. You can also append < or > to return a range of conferences. For example, use DateCreated< to return conferences updated on or before midnight of the date, or DateCreated> to return conferences updated on or after midnight of the date.
    FriendlyName optional Shows conferences that exactly match the friendly name provided.
    Status optional The status of the conference. Possible values are init, in-progress, or completed.

    Update a Conference

    Update a Conference

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{Sid}.json \
      -X POST \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('Sid')
          .update()
          .then(conference => console.log(conference.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var conference = ConferenceResource.Update(
                pathSid: "Sid"
            );
    
            Console.WriteLine(conference.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    conference = client.conferences('Sid') \
                       .update()
    
    print(conference.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    conference = @client.conferences('Sid')
                        .update()
    
    puts conference.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $conference = $client->conferences("Sid")
                           ->update();
    
      print($conference->friendlyName);
    ?>
    

    Allows you to modify the properties of a conference.

    Parameter
    AnnounceMethod optional Whether the request to AnnounceUrl is a GET or a POST. Default is POST.
    AnnounceUrl optional The URL to send conference announcements to.
    Status optional The status of the conference. If set to completed, the conference will end and all participants will be removed.

    Example: Terminate a Conference

    Terminate a Conference

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Conferences/{Sid}.json \
      -X POST \
      --data-urlencode "Status=completed"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.conferences('Sid')
          .update({status: 'completed'})
          .then(conference => console.log(conference.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var conference = ConferenceResource.Update(
                status: ConferenceResource.UpdateStatusEnum.Completed,
                pathSid: "Sid"
            );
    
            Console.WriteLine(conference.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    conference = client.conferences('Sid') \
                       .update(status='completed')
    
    print(conference.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    conference = @client.conferences('Sid')
                        .update(status: 'completed')
    
    puts conference.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $conference = $client->conferences("Sid")
                           ->update(array("status" => "completed"));
    
      print($conference->friendlyName);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472af",
      "api_version": "2010-04-01",
      "date_created": "Mon, 4 Oct 2018 20:00:45 +0000",
      "date_updated": "Mon, 4 Oct 2018 20:00:46 +0000",
      "friendly_name": null,
      "region": "us1",
      "sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "status": "completed",
      "subresource_uris": {
        "participants": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca/Participants.json",
        "recordings": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca/Recordings.json"
      },
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences/b3877c40-da60-4998-90ad-b792e98472ca.json"
    }
    

    End an active conference call by setting the status to completed.

    Incoming Phone Numbers

    IncomingPhoneNumbers represent an account's phone numbers that were purchased through SignalWire.

    Properties

    A sample IncomingPhoneNumber returned from the API

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "address_requirements": "none",
      "address_sid": "b3877c40-da60-4998-90ad-b792e98472ad",
      "api_version": "2010-04-01",
      "beta": false,
      "capabilities": {
        "mms": true,
        "sms": false,
        "voice": true
      },
      "date_created": "Tue, 25 Sept 2018 23:00:00 +0000",
      "date_updated": "Wed, 26 Sept 2018 22:00:00 +0000",
      "friendly_name": "310-338-6745",
      "identity_sid": "b3877c40-da60-4998-90ad-b792e98472ri",
      "origin": "origin",
      "phone_number": "+13103386745",
      "sid": "b3877c40-da60-4998-90ad-b792e98472pn",
      "sms_application_sid": null,
      "sms_fallback_method": "POST",
      "sms_fallback_url": "",
      "sms_method": "POST",
      "sms_url": "",
      "status_callback": "",
      "status_callback_method": "POST",
      "trunk_sid": "b3877c40-da60-4998-90ad-b792e98472tr",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers/b3877c40-da60-4998-90ad-b792e98472pn.json",
      "voice_application_sid": null,
      "voice_caller_id_lookup": false,
      "voice_fallback_method": "POST",
      "voice_fallback_url": null,
      "voice_method": "GET",
      "voice_url": "http://your-application.com/docs/voice.xml"
    }
    
    Attribute
    account_sid string The unique identifier for the account that is associated with this phone number.
    address_requirements string Whether or not a registered address with SignalWire is required. See below for possible values.
    address_sid string The unique identifier for the address associated with this phone number.
    api_version string The version of the SignalWire API.
    beta boolean New numbers on SignalWire are marked as beta. Possible values are true or false.
    capabilities object Whether or not a number can receive calls and messages. Possible values are Voice, SMS, MMS, and Fax. Each of these values have a boolean value of true or false.
    date_created datetime The date, in RFC 2822 format, this phone number was created.
    date_updated datetime The date, in RFC 2822 format, this phone number was updated.
    friendly_name string A formatted version of the number.
    identity_sid string The unique identifier for the identity associated with this phone number.
    origin string The origin of the phone number. SignalWire numbers are denoted as signalwire while hosted numbers are denoted as hosted.
    phone_number string The incoming number in E.164 format.
    sid string The unique identifier for this phone number.
    sms_application_sid string The unique identifier for the application associated with SMS handling on this phone number. If SmsApplicationSid is present, the URLs on the application will be used and all other URLs will be ignored.
    sms_fallback_method string Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.
    sms_fallback_url string The URL to request if errors occur when fetching SmsUrl.
    sms_method string Whether the request to SmsUrl is a GET or a POST. Default is POST.
    sms_url string The URL to request when an incoming SMS is received.
    status_callback string The URL to request to pass status updates to.
    status_callback_method string Whether the request to StatusCallback is a GET or a POST. Default is POST.
    trunk_sid string The unique identifier for the Trunk associated with this phone number.
    uri string The URI for this number.
    voice_application_sid string The unique identifier for the application associated with call handling on this phone number. If VoiceApplicationSid is present, the URLs on the application will be used and all other URLs will be ignored.
    voice_caller_id_lookup boolean Whether or not to look up a caller's name in the database. Possible values are true or false.
    voice_fallback_method string Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.
    voice_fallback_url string The URL to request if errors occur when fetching Url.
    voice_method string Whether the request to Url is a GET or a POST. Default is POST.
    voice_url string The URL to request when an incoming call is received.



    The address_requirements attribute has the following values:

    Value
    none No address is required.
    any An address is required, but can be anywhere in the world.
    local An address is required and must be in the same country as the number.
    foreign An address is required and must be outside the country of the number.

    Create an IncomingPhoneNumber

    Create an IncomingPhoneNumber

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers.json \
      -X POST \
      --data-urlencode "FriendlyName=IncomingPhoneNumber1" \
      --data-urlencode "PhoneNumber=+13103386745" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.incomingPhoneNumbers
          .create({
             friendlyName: 'IncomingPhoneNumber1',
             phoneNumber: '+13103386745'
           })
          .then(incoming_phone_number => console.log(incoming_phone_number.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var incomingPhoneNumber = IncomingPhoneNumberResource.Create(
                friendlyName: "IncomingPhoneNumber1",
                phoneNumber: new Twilio.Types.PhoneNumber("+13103386745")
            );
    
            Console.WriteLine(incomingPhoneNumber.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    incoming_phone_number = client.incoming_phone_numbers \
        .create(
             friendly_name='IncomingPhoneNumber1',
             phone_number='+13103386745'
         )
    
    print(incoming_phone_number.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    incoming_phone_number = @client.incoming_phone_numbers
      .create(
         friendly_name: 'IncomingPhoneNumber1',
         phone_number: '+13103386745'
       )
    
    puts incoming_phone_number.sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $incoming_phone_number = $client->incomingPhoneNumbers
                                      ->create(array(
                                                   "friendlyName" => "IncomingPhoneNumber1",
                                                   "phoneNumber" => "+13103386745"
                                               )
                                      );
    
      print($incoming_phone_number->sid);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "address_requirements": "none",
      "address_sid": "b3877c40-da60-4998-90ad-b792e98472ad",
      "api_version": "2010-04-01",
      "beta": false,
      "capabilities": {
        "mms": true,
        "sms": false,
        "voice": true
      },
      "date_created": "Tue, 25 Sept 2018 23:00:00 +0000",
      "date_updated": "Wed, 26 Sept 2018 22:00:00 +0000",
      "friendly_name": "IncomingPhoneNumber1",
      "identity_sid": "b3877c40-da60-4998-90ad-b792e98472ri",
      "origin": "origin",
      "phone_number": "+13103386745",
      "sid": "b3877c40-da60-4998-90ad-b792e98472pn",
      "sms_application_sid": null,
      "sms_fallback_method": "POST",
      "sms_fallback_url": "",
      "sms_method": "POST",
      "sms_url": "",
      "status_callback": "",
      "status_callback_method": "POST",
      "trunk_sid": "b3877c40-da60-4998-90ad-b792e98472tr",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers/b3877c40-da60-4998-90ad-b792e98472pn.json",
      "voice_application_sid": null,
      "voice_caller_id_lookup": false,
      "voice_fallback_method": "POST",
      "voice_fallback_url": null,
      "voice_method": "GET",
      "voice_url": "http://your-application.com/docs/voice.xml"
    }
    
    Parameter
    AccountSid required The unique identifier of the account associated with this phone number.
    AreaCode required*if PhoneNumber is not present The area code of your new number. A new number within this area code will be generated for you.
    PhoneNumber required*if AreaCode is not present The new number, in E.164 format, you would like to buy.
    AddressSid optional The unique identifier for the address associated with this phone number.
    FriendlyName optional The formatted version of the phone number.
    IdentitySid optional The unique identifier for the identity associated with this phone number.
    SmsApplicationSid optional The unique identifier for the application associated with SMS handling on this phone number. If SmsApplicationSid is present, the URLs on the application will be used and all other URLs will be ignored.
    SmsFallbackMethod optional Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.
    SmsFallbackUrl optional The URL to request if errors occur when fetching SmsUrl.
    SmsMethod optional Whether the request to SmsUrl is a GET or a POST. Default is POST.
    SmsUrl optional The URL to request when an incoming SMS is received.
    StatusCallback optional The URL to request to pass status updates to.
    StatusCallbackMethod optional Whether the request to StatusCallback is a GET or a POST. Default is POST.
    TrunkSid optional The unique identifier for the Trunk associated with this phone number.
    VoiceApplicationSid optional The unique identifier for the application associated with call handling on this phone number. If VoiceApplicationSid is present, the URLs on the application will be used and all other URLs will be ignored.
    VoiceCallerIdLookup optional Whether or not to look up a caller's name in the database. Possible values are true or false.
    VoiceFallbackMethod optional Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.
    VoiceFallbackUrl optional The URL to request if errors occur when fetching Url.
    VoiceMethod optional Whether the request to Url is a GET or a POST. Default is POST.
    VoiceReceiveMode optional Whether this number can receive calls or fax. Possible values are voice or fax. Default is voice.
    VoiceUrl optional The URL to request when an incoming call is received.

    Retrieve an IncomingPhoneNumber

    Retrieve an IncomingPhoneNumber

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{IncomingPhoneNumberSid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.incomingPhoneNumbers('IncomingPhoneNumberSid')
          .fetch()
          .then(incoming_phone_number => console.log(incoming_phone_number.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var incomingPhoneNumber = IncomingPhoneNumberResource.Fetch(
                pathSid: "IncomingPhoneNumberSid"
            );
    
            Console.WriteLine(incomingPhoneNumber.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    incoming_phone_number = client \
        .incoming_phone_numbers('IncomingPhoneNumberSid') \
        .fetch()
    
    print(incoming_phone_number.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    incoming_phone_number = @client
      .incoming_phone_numbers('IncomingPhoneNumberSid')
      .fetch
    
    puts incoming_phone_number.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $incoming_phone_number = $client->incomingPhoneNumbers("IncomingPhoneNumberSid")
                                      ->fetch();
    
      print($incoming_phone_number->friendlyName);
    <?
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "address_requirements": "none",
      "address_sid": "b3877c40-da60-4998-90ad-b792e98472ad",
      "api_version": "2010-04-01",
      "beta": false,
      "capabilities": {
        "mms": true,
        "sms": false,
        "voice": true
      },
      "date_created": "Tue, 25 Sept 2018 23:00:00 +0000",
      "date_updated": "Wed, 26 Sept 2018 22:00:00 +0000",
      "friendly_name": "310-338-6745",
      "identity_sid": "b3877c40-da60-4998-90ad-b792e98472ri",
      "origin": "origin",
      "phone_number": "+13103386745",
      "sid": "b3877c40-da60-4998-90ad-b792e98472pn",
      "sms_application_sid": null,
      "sms_fallback_method": "POST",
      "sms_fallback_url": "",
      "sms_method": "POST",
      "sms_url": "",
      "status_callback": "",
      "status_callback_method": "POST",
      "trunk_sid": "b3877c40-da60-4998-90ad-b792e98472tr",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers/b3877c40-da60-4998-90ad-b792e98472pn.json",
      "voice_application_sid": null,
      "voice_caller_id_lookup": false,
      "voice_fallback_method": "POST",
      "voice_fallback_url": null,
      "voice_method": "GET",
      "voice_url": "http://your-application.com/docs/voice.xml"
    }
    

    Retrieve a single IncomingPhoneNumber.

    Parameter
    AccountSid required The unique identifier of the account associated with this phone number.
    Sid required The unique identifier of the incoming phone number.

    List All IncomingPhoneNumbers

    List All IncomingPhoneNumbers

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.incomingPhoneNumbers.each(incomingPhoneNumbers => console.log(incomingPhoneNumbers.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var incomingPhoneNumbers = IncomingPhoneNumberResource.Read();
    
            foreach(var record in incomingPhoneNumbers)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    incoming_phone_numbers = client.incoming_phone_numbers.list()
    
    for record in incoming_phone_numbers:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    incoming_phone_numbers = @client.incoming_phone_numbers.list
    
    incoming_phone_numbers.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $incomingPhoneNumbers = $client->incomingPhoneNumbers
                                     ->read();
    
      foreach ($incomingPhoneNumbers as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers.json?PageSize=1&Page=0",
      "incoming_phone_numbers": [
        {
          "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
          "address_requirements": "none",
          "address_sid": "b3877c40-da60-4998-90ad-b792e98472ad",
          "api_version": "2010-04-01",
          "beta": false,
          "capabilities": {
            "mms": true,
            "sms": false,
            "voice": true
          },
          "date_created": "Tue, 25 Sept 2018 23:00:00 +0000",
          "date_updated": "Wed, 26 Sept 2018 22:00:00 +0000",
          "friendly_name": "310-338-6745",
          "identity_sid": "b3877c40-da60-4998-90ad-b792e98472ri",
          "origin": "origin",
          "phone_number": "+13103386745",
          "sid": "b3877c40-da60-4998-90ad-b792e98472pn",
          "sms_application_sid": null,
          "sms_fallback_method": "POST",
          "sms_fallback_url": "",
          "sms_method": "POST",
          "sms_url": "",
          "status_callback": "",
          "status_callback_method": "POST",
          "trunk_sid": "b3877c40-da60-4998-90ad-b792e98472tr",
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers/b3877c40-da60-4998-90ad-b792e98472pn.json",
          "voice_application_sid": null,
          "voice_caller_id_lookup": false,
          "voice_fallback_method": "POST",
          "voice_fallback_url": null,
          "voice_method": "GET",
          "voice_url": "http://your-application.com/docs/voice.xml"
        }
      ],
      "last_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers.json?PageSize=1&Page=2",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers.json?PageSize=1&Page=1",
      "num_pages": 3,
      "page": 0,
      "page_size": 1,
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers.json?PageSize=1&Page=0",
      "start": 0,
      "total": 3,
      "uri": "/api/lmal/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers.json?PageSize=1",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac"
    }
    

    The ability to read all of the IncomingPhoneNumbers that are associated with your SignalWire account. This will be returned as a list of IncomingPhoneNumbers.

    Parameter
    AccountSid required The unique identifier of the account associated with this phone number.
    Beta optional Shows new SignalWire numbers. Possible values are true or false. Default is true.
    FriendlyName optional Shows numbers that exactly match the provided friendly name.
    Origin optional Shows numbers that have the provided origin. SignalWire numbers are denoted as signalwire while hosted numbers are denoted as hosted.
    PhoneNumber optional Shows the numbers that exactly match the provided pattern.

    Update an IncomingPhoneNumber

    Update an IncomingPhoneNumber

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{IncomingPhoneNumberSid}.json \
      -X POST \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.incomingPhoneNumbers('IncomingPhoneNumberSid')
          .update()
          .then(incoming_phone_number => console.log(incoming_phone_number.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var incomingPhoneNumber = IncomingPhoneNumberResource.Update(
                accountSid: "YourProjectID",
                pathSid: "IncomingPhoneNumberSid"
            );
    
            Console.WriteLine(incomingPhoneNumber.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    incoming_phone_number = client \
        .incoming_phone_numbers('IncomingPhoneNumberSid') \
        .update()
    
    print(incoming_phone_number.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    incoming_phone_number = @client
      .incoming_phone_numbers('IncomingPhoneNumberSid')
      .update()
    
    puts incoming_phone_number.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $incoming_phone_number = $client->incomingPhoneNumbers("IncomingPhoneNumberSid")
                                      ->update();
    
      print($incoming_phone_number->friendlyName);
    ?>
    

    Allows you to modify the properties of an incoming phone number.

    Parameter
    AccountSid required The unique identifier of the account associated with this phone number.
    AddressSid optional The unique identifier for the address associated with this phone number.
    FriendlyName optional The formatted version of the phone number.
    IdentitySid optional The unique identifier for the identity associated with this phone number.
    SmsApplicationSid optional The unique identifier for the application associated with SMS handling on this phone number. If SmsApplicationSid is present, the URLs on the application will be used and all other URLs will be ignored.
    SmsFallbackMethod optional Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.
    SmsFallbackUrl optional The URL to request if errors occur when fetching SmsUrl.
    SmsMethod optional Whether the request to SmsUrl is a GET or a POST. Default is POST.
    SmsUrl optional The URL to request when an incoming SMS is received.
    StatusCallback optional The URL to request to pass status updates to.
    StatusCallbackMethod optional Whether the request to StatusCallback is a GET or a POST. Default is POST.
    TrunkSid optional The unique identifier for the Trunk associated with this phone number.
    VoiceApplicationSid optional The unique identifier for the application associated with call handling on this phone number. If VoiceApplicationSid is present, the URLs on the application will be used and all other URLs will be ignored.
    VoiceCallerIdLookup optional Whether or not to look up a caller's name in the database. Possible values are true or false.
    VoiceFallbackMethod optional Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.
    VoiceFallbackUrl optional The URL to request if errors occur when fetching Url.
    VoiceMethod optional Whether the request to Url is a GET or a POST. Default is POST.
    VoiceReceiveMode optional Whether this number can receive calls or fax. Possible values are voice or fax. Default is voice.
    VoiceUrl optional The URL to request when an incoming call is received.

    Example: Update an IncomingPhoneNumber's VoiceUrl

    Update an IncomingPhoneNumber's VoiceUrl

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{IncomingPhoneNumberSid}.json \
      -X POST \
      --data-urlencode "AccountSid=b3877c40-da60-4998-90ad-b792e98472ac"
      --data-urlencode "VoiceUrl=http://your-application.com/docs/voice.xml"
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.incomingPhoneNumbers('IncomingPhoneNumberSid')
          .update({
             accountSid: 'b3877c40-da60-4998-90ad-b792e98472ac',
             voiceUrl: 'http://your-application.com/docs/voice.xml'
           })
          .then(incoming_phone_number => console.log(incoming_phone_number.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var incomingPhoneNumber = IncomingPhoneNumberResource.Update(
                accountSid: "b3877c40-da60-4998-90ad-b792e98472ac",
                voiceUrl: new Uri("http://your-application.com/docs/voice.xml"),
                pathSid: "IncomingPhoneNumberSid"
            );
    
            Console.WriteLine(incomingPhoneNumber.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    incoming_phone_number = client \
        .incoming_phone_numbers('IncomingPhoneNumberSid') \
        .update(
             voice_url='http://your-application.com/docs/voice.xml',
             account_sid='b3877c40-da60-4998-90ad-b792e98472ac'
         )
    
    print(incoming_phone_number.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    incoming_phone_number = @client
      .incoming_phone_numbers('IncomingPhoneNumberSid')
      .update(
         account_sid: 'b3877c40-da60-4998-90ad-b792e98472ac',
         voice_url: 'http://your-application.com/docs/voice.xml'
       )
    
    puts incoming_phone_number.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $incoming_phone_number = $client->incomingPhoneNumbers("IncomingPhoneNumberSid")
                                      ->update(array(
                                                   "voiceUrl" => "http://your-application.com/docs/voice.xml"
                                               )
                                      );
    
      print($incoming_phone_number->friendlyName);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "address_requirements": "none",
      "address_sid": "b3877c40-da60-4998-90ad-b792e98472ad",
      "api_version": "2010-04-01",
      "beta": false,
      "capabilities": {
        "mms": true,
        "sms": false,
        "voice": true
      },
      "date_created": "Tue, 25 Sept 2018 23:00:00 +0000",
      "date_updated": "Wed, 26 Sept 2018 22:00:00 +0000",
      "friendly_name": "310-338-6745",
      "identity_sid": "b3877c40-da60-4998-90ad-b792e98472ri",
      "origin": "origin",
      "phone_number": "+13103386745",
      "sid": "b3877c40-da60-4998-90ad-b792e98472pn",
      "sms_application_sid": null,
      "sms_fallback_method": "POST",
      "sms_fallback_url": "",
      "sms_method": "POST",
      "sms_url": "",
      "status_callback": "",
      "status_callback_method": "POST",
      "trunk_sid": "b3877c40-da60-4998-90ad-b792e98472tr",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/IncomingPhoneNumbers/b3877c40-da60-4998-90ad-b792e98472pn.json",
      "voice_application_sid": null,
      "voice_caller_id_lookup": false,
      "voice_fallback_method": "POST",
      "voice_fallback_url": null,
      "voice_method": "GET",
      "voice_url": "http://your-application.com/docs/voice.xml"
    }
    

    Update the URL that SignalWire will request when a call to your account is received.

    Delete an IncomingPhoneNumber

    Delete an IncomingPhoneNumber

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{IncomingPhoneNumberSid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.incomingPhoneNumbers('IncomingPhoneNumberSid')
          .remove()
          .then(incoming_phone_number => console.log(incoming_phone_number.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            IncomingPhoneNumberResource.Delete(pathSid: "IncomingPhoneNumberSid");
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.incoming_phone_numbers('IncomingPhoneNumberSid').delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.incoming_phone_numbers('IncomingPhoneNumberSid').delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->incomingPhoneNumbers("IncomingPhoneNumberSid")
             ->delete();
    ?>
    

    Response 204 No Content

    Delete an IncomingPhoneNumber. If the delete is successful, a 204 response, with no body, will be returned.

    Parameter
    No Parameters

    Messages

    A Message is an inbound or outbound message sent or received by your SignalWire project. Messages are identified by a unique, random ID, and can have attachments, called Media, associated with them. These Media files are managed separately from the Messages themselves, and are stored in Media subresource objects. To retrieve a list of the media associated with a message, use the Media subresource for that Message instance.

    The Message Object

    A sample message returned from the API.

    {
      "account_sid": "ea108133-d6b3-407c-9536-9fad8a929a6a",
      "api_version": "2010-04-01",
      "body": "Hello World!",
      "num_segments": 1,
      "num_media": 1,
      "date_created": "Mon, 13 Aug 2018 21:38:46 +0000",
      "date_sent": null,
      "date_updated": "Mon, 13 Aug 2018 21:38:46 +0000",
      "direction": "outbound-api",
      "error_code": null,
      "error_message": null,
      "from": "+15551234567",
      "price": 0.005,
      "price_unit": "USD",
      "sid": "0a059168-ead0-41af-9d1f-343dae832527",
      "status": "queued",
      "to": "+15557654321",
      "uri": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/0a059168-ead0-41af-9d1f-343dae832527",
      "subresource_uris": {
        "media": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/0a059168-ead0-41af-9d1f-343dae832527/Media"
      }
    }
    
    
    Attribute
    account_sid string The unique identifier of the project that sent or received this message.
    api_version string The version number of the SignalWire LaML REST API used to handle this message.
    body string The text of the message. Up to 1600 characters long and can be null if no message was sent.
    date_created datetime The date and time the message was created in RFC 2822 format.
    date_sent datetime The date and time the message was sent in RFC 2822 format.
    date_updated datetime The date and time the message was last updated in RFC 2822 format.
    direction string The direction of the message:
    • inbound for incoming messages.
    • outbound-api for messages created via the REST API.
    • outbound-call for messages created during a call.
    • outbound-reply for messages created in response to an inbound message.
    error_code string If an error has occurred on the message, the error code will give you a specific code to help lookup more information on the failure. If no error occurred, error_code will be null.
    error_message string A human readable description of the error that occurred. If no error occurred, error_message will be null.
    from string The phone number in E.164 format. For inbound messages, this will be the remote phone number who sent the message. For outbound messages, this will be one of your SignalWire phone numbers.
    num_media integer The number of media files that were included with the message.
    num_segments integer The number of segments that make up the entire message. If the body of the message is larger than 160 GSM-7 characters or 70 UCS-2 characters, it will automatically be broken up into smaller messages and annotated to attempt proper reconstruction on the recipient handset. Not all carriers and handsets support this. SignalWire will recombine inbound messages into a single message. Your project will be charged for each segment sent or received.
    price decimal The cost of the individual message billed to your project.
    price_unit string The currency in which price is charged as.
    sid string A unique ID that identifies this specific message.
    status string Current status of the message. See Message Status for a detailed description of each status.
    subresource_uris object The URIs for any subresources associated with this message.
    to string The phone number in E.164 format that received the message. For inbound messages, this is one of your SignalWire phone numbers; for outbound messages, this is the remote phone number that received the message.
    uri string The URI of this particular message.

    Message Status

    The status attribute of a Message indicates the last known state of the Message.

    State
    queued The API request to send this message was processed successfully, and the message is currently waiting to be sent out.
    sending The message is currently being transmitted by SignalWire to the nearest carrier upstream in the network.
    sent The nearest carrier upstream in the network has accepted the message.
    delivered Confirmation of receipt of the message by the nearest carrier upstream in the network.
    undelivered SignalWire has received notice from the nearest carrier upstream in the network that the message was not delivered.
    failed SignalWire could not send the message. There is no charge for failed messages.
    receiving SignalWire has received and is currently processing an inbound message.
    received The message has been received by one of the numbers in your account. Applies to inbound messages only.

    Create a message

    Send an SMS message

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages.json \
      -X POST \
      --data-urlencode "From=+15551234567" \
      --data-urlencode "Body=Hello World!" \
      --data-urlencode "To=+15557654321" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages
          .create({from: '+15551234567', body: 'Hello World!', to: '+15557654321'})
          .then(message => console.log(message.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var message = MessageResource.Create(
                from: new Twilio.Types.PhoneNumber("+15551234567"),
                body: "Hello World!",
                to: new Twilio.Types.PhoneNumber("+15557654321")
            );
    
            Console.WriteLine(message.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    message = client.messages.create(
                                  from_='+15551234567',
                                  body='Hello World!',
                                  to='+15557654321'
                              )
    
    print(message.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    message = @client.messages.create(
                                 from: '+15551234567',
                                 body: 'Hello World!',
                                 to: '+15557654321'
                               )
    
    puts message.sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $message = $client->messages
                        ->create("+15557654321", // to
                                 array("from" => "+15551234567", "body" => "Hello World!")
                        );
    
      print($message->sid);
    ?>
    

    Response 201 Created

    {
        "account_sid": "ea108133-d6b3-407c-9536-9fad8a929a6a",
        "api_version": "2010-04-01",
        "body": "Hello World",
        "num_segments": 1,
        "num_media": 0,
        "date_created": "Mon, 13 Aug 2018 23:08:35 +0000",
        "date_sent": null,
        "date_updated": "Mon, 13 Aug 2018 23:08:35 +0000",
        "direction": "outbound-api",
        "error_code": null,
        "error_message": null,
        "from": "+15551234567",
        "price": null,
        "price_unit": "USD",
        "sid": "b3877c40-da60-4998-90ad-b792e98472af",
        "status": "queued",
        "to": "+15557654321",
        "uri": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/b3877c40-da60-4998-90ad-b792e98472af",
        "subresource_uris": {
            "media": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/b3877c40-da60-4998-90ad-b792e98472af/Media"
        }
    }
    

    Send an outbound message from one of your SignalWire phone numbers.

    Parameter
    To required The recipient of the outbound message formatted in E.164 format.
    From required One of your SignalWire phone numbers used as the sender of the message. You must use one of your project's purchased phone numbers, you cannot spoof another number.
    Body required*if MediaUrl is not present The body of the message you want to send, up to a maximum of 1600 characters per message.
    MediaUrl required*if Body is not present URL of media you wish to attach and send with the message. Include multiple MediaUrl arguments if you which to send more than one media per message, up to a maximum of 10 media URLs per message. There is a limit of 5MB for the total combined media size per message.
    ApplicationSid optional The SID of a SignalWire LaML application used to configure the message's MessageStatusCallback attribute. If ApplicationSid and StatusCallback are specified, StatusCallback will take precedence.
    MaxPrice optional The maximum price acceptable for the message to be sent. Once your message is queued, the cost to send the message is calculated and if it is greater than MaxPrice, the message will be set as failed and not sent. You will not be charged. If MaxPrice is not set, all messages will be sent.
    StatusCallback optional A URL endpoint to receive callbacks each time the status of the message changes from queued, failed, sent, delivered or undelivered. See detailed information on the status callback parameters sent during the callback.
    ValidityPeriod optional The number of seconds a message will allow being queued before canceling. When sending high volume of messages, messages can sit in your sending queue. If the message should only be sent in in a specific timeframe, use ValidityPeriod to ensure you don't send messages after time-sensitive operations. It is not recommended to set a validity period of less than 5 seconds.

    Retrieve a message

    Retrieve a message

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages('MessageSid')
          .fetch()
          .then(message => console.log(message.to))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var message = MessageResource.Fetch(pathSid: "MessageSid");
    
            Console.WriteLine(message.To);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    message = client.messages('MessageSid').fetch()
    
    print(message.to)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    message = @client.messages('MessageSid').fetch
    
    puts message.to
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $message = $client->messages("MessageSid")
                        ->fetch();
    
      print($message->to);
    ?>
    

    Response 200 OK

    {
        "account_sid": "ea108133-d6b3-407c-9536-9fad8a929a6a",
        "api_version": "2010-04-01",
        "body": "Hello World",
        "num_segments": 1,
        "num_media": 0,
        "date_created": "Mon, 13 Aug 2018 23:08:35 +0000",
        "date_sent": "Mon, 13 Aug 2018 23:08:40 +0000",
        "date_updated": "Mon, 13 Aug 2018 23:08:35 +0000",
        "direction": "outbound-api",
        "error_code": null,
        "error_message": null,
        "from": "+15551234567",
        "price": 0.005,
        "price_unit": "USD",
        "sid": "b3877c40-da60-4998-90ad-b792e98472af",
        "status": "delivered",
        "to": "+15557654321",
        "uri": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/b3877c40-da60-4998-90ad-b792e98472af",
        "subresource_uris": {
            "media": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/b3877c40-da60-4998-90ad-b792e98472af/Media"
        }
    }
    

    Retrieve a single message.

    Parameter
    No Parameters

    Update a message

    Update a message's body

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}.json \
      -X POST \
      --data-urlencode "Body=Overridden" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages('MessageSid')
          .update({body: 'Overridden'})
          .then(message => console.log(message.to))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var message = MessageResource.Update(
                body: "Overridden",
                pathSid: "MessageSid"
            );
    
            Console.WriteLine(message.To);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    message = client.messages('MessageSid') \
                    .update(body='Overridden')
    
    print(message.to)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    message = @client.messages('MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
                     .update(body: 'Overridden')
    
    puts message.to
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $message = $client->messages("MessageSid")
                        ->update(array("body" => "Overridden"));
    
      print($message->to);
    ?>
    

    Response 200 OK

    {
        "account_sid": "ea108133-d6b3-407c-9536-9fad8a929a6a",
        "api_version": "2010-04-01",
        "body": "Overridden",
        "num_segments": 1,
        "num_media": 0,
        "date_created": "Mon, 13 Aug 2018 23:08:35 +0000",
        "date_sent": "Mon, 13 Aug 2018 23:08:40 +0000",
        "date_updated": "Mon, 13 Aug 2018 23:08:45 +0000",
        "direction": "outbound-api",
        "error_code": null,
        "error_message": null,
        "from": "+15551234567",
        "price": 0.005,
        "price_unit": "USD",
        "sid": "b3877c40-da60-4998-90ad-b792e98472af",
        "status": "delivered",
        "to": "+15557654321",
        "uri": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/b3877c40-da60-4998-90ad-b792e98472af",
        "subresource_uris": {
            "media": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/b3877c40-da60-4998-90ad-b792e98472af/Media"
        }
    }
    

    Update a message body after it has been sent. Useful for removing sensitive information from the body after the message has been received.

    Parameter
    Body required The new text with which to replace the body.

    Example: Redact a message

    Redact a message body

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}.json \
      -X POST \
      --data-urlencode "Body=" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages('MessageSid')
          .update({body: ''})
          .then((message) => process.stdout.write(message.body));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Example
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            const string sid = "MessageSid";
            var message = MessageResource.Update(sid, "");
    
            Console.WriteLine(message.Body);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.messages("MessageSid") \
          .update(body="")
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @message = @client.api.messages('MessageSid').fetch
    
    @message.update(body: '')
    
    puts @message.body
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $message = $client
          ->messages("MessageSid")
          ->update(
              array("body" => "")
          );
    ?>
    

    Redact a message body by posting an empty string as the body to a sent message.

    Delete a message

    Delete a message.

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages('MessageSid')
          .remove()
          .then(message => console.log(message.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            MessageResource.Delete(pathSid: "MessageSid");
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.messages('MessageSid').delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.messages('MessageSid').delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->messages("MessageSid")
             ->delete();
    ?>
    

    Response 204 No Content

    Delete a message from your project so it no longer appears in the dashboard or on the API. Any Media files that may be associated with this message are not deleted, and will still be available for access in the usual methods.

    Messages in progress may not be deleted, and attempting to do so results in an error.

    Parameter
    No Parameters

    List all messages

    List all messages on your account

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages.each(messages => console.log(messages.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourAuthToken";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var messages = MessageResource.Read();
    
            foreach(var record in messages)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    messages = client.messages.list()
    
    for record in messages:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    messages = @client.messages.list
    
    messages.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $messages = $client->messages
                         ->read();
    
      foreach ($messages as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "uri": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages?Page=0&PageSize=50",
      "first_page_uri": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages?Page=0&PageSize=50",
      "next_page_uri": null,
      "previous_page_uri": null,
      "page": 0,
      "page_size": 50,
      "messages": [
        {
          "account_sid": "ea108133-d6b3-407c-9536-9fad8a929a6a",
          "api_version": "2010-04-01",
          "body": "Hello World",
          "num_segments": 1,
          "num_media": 0,
          "date_created": "Mon, 13 Aug 2018 23:08:35 +0000",
          "date_sent": "Mon, 13 Aug 2018 23:08:40 +0000",
          "date_updated": "Mon, 13 Aug 2018 23:08:40 +0000",
          "direction": "outbound-api",
          "error_code": null,
          "error_message": null,
          "from": "+15551234567",
          "price": 0.005,
          "price_unit": "USD",
          "sid": "b3877c40-da60-4998-90ad-b792e98472af",
          "status": "delivered",
          "to": "+15557654321",
          "uri": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/b3877c40-da60-4998-90ad-b792e98472af",
          "subresource_uris": {
            "media": "/api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/b3877c40-da60-4998-90ad-b792e98472af/Media"
          }
        }
      ]
    }
    

    Returns a paged list of messages sorted with the most recent messages appearing first.

    Parameter
    DateSent optional Only return messages sent on this particular date, formatted as YYYY-MM-DD in UTC. You can also append < or > to return a range of messages. For example, use DateSent< to return messages sent on or before midnight of the date, or DateSent> to return messages sent on or after midnight of the date.
    From optional Only return messages sent from this phone number.
    To optional Only return messages sent to this phone number.
    PageSize optional Specify the number of results to return on a single page. The default page size is 50 and the maximum is 1000.

    Example: Filter By Date and From

    Filter Messages

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages.json?From=%2b15551234567&DateSent>=2018-08-01 \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages.each({ dateSent: new Date(Date.UTC(2018, 8, 1, 0, 0, 0)), from: '+15551234567' },
                          messages => console.log(messages.sid)
                        );
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var messages = MessageResource.Read(
                dateSent: new DateTime(2018, 8, 1, 0, 0, 0),
                from: new Twilio.Types.PhoneNumber("+15551234567")
            );
    
            foreach(var record in messages)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    messages = client.messages.list(
                                   date_sent=datetime(2018, 8, 1, 0, 0),
                                   from_='+15551234567'
                               )
    
    for record in messages:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    messages = @client.messages.list(
                                  date_sent: Date.new(2018, 8, 1),
                                  from: '+15551234567'
                                )
    
    messages.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $messages = $client->messages
                         ->read(array(
                                    "dateSent" => new \DateTime('2018-8-1'),
                                    "from" => "+15551234567"
                                )
                         );
    
      foreach ($messages as $record) {
          print($record->sid);
      }
    ?>
    

    Filter your messages, returning only those sent from +15551234567 on or after 2018-08-01.

    Subresources : Media

    Any media associated with a message can be listed using the media URI in the Subresources object:

    https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}/Media

    StatusCallback Parameters

    In addition to the standard request parameters, the following are parameters passed back to your application when SignalWire sends an update to a message's StatusCallback URL.

    Parameter
    MessageStatus string The current status of the message at the time of the callback.
    ErrorCode string If your message has failed or is undelivered, the error code may provide you with more information about what went wrong.

    Media

    The Media object represents a single attachment or media file that is associated with a Message.

    To simplify sharing of the media files with external applications, the URLs to the files themselves are made publicly accessible. These URLs are random, long and hard to guess, so the contents of the media should stay private unless you choose to distribute the URL. This means that these URLS can be included in any web application to access the files without needing your credentials.

    A media object is created when an incoming message is received, or an outgoing message is created, that contain one or more attachments.

    The Media Object

    A sample media object from the API.

    {
      "sid": "b51dc3c6-df20-4af6-b774-a99de20d3fd8",
      "date_created": "Fri, 15 Jun 2018 17:59:25 +0000",
      "date_updated": "Fri, 15 Jun 2018 17:59:25 +0000",
      "account_sid": "446e9986-0848-4d46-a617-48793c5f5e07",
      "parent_sid": "3338f508-c98c-45a1-b2e3-1a2c345477a8",
      "content_type": "image/jpeg",
      "uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/3338f508-c98c-45a1-b2e3-1a2c345477a8/Media/b51dc3c6-df20-4af6-b774-a99de20d3fd8.json"
    }
    
    
    Attribute
    account_sid string The unique identifier of the project that sent or received this message.
    content_type string The mime-type of the media file, for example image/gif.
    date_created datetime The date and time the message was sent in RFC 2822 format.
    date_updated datetime The date and time the message was sent in RFC 2822 format.
    parent_sid string The unique identifier of the resource that created this media resource.
    sid string A unique identifier for this media resource.
    uri string The URI for this resource, relative to your base URL.

    Media Size Restrictions

    All messages, both incoming and outgoing, are limited to 5 MB of associated media files.

    Incoming messages with more than 5 MB of media are not accepted.

    Outgoing messages are allowed a maximum of 10 Media files. If the total size of all Media is greater than 5 MB, the message will return an error code.

    Retrieve a media object

    Retrieve a media instance as JSON representation

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}/Media/{MediaSid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages('MessageSid')
          .media('MediaSid')
          .fetch()
          .then(media => console.log(media.contentType))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Message;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var media = MediaResource.Fetch(
                pathMessageSid: "MessageSid",
                pathSid: "MediaSid"
            );
    
            Console.WriteLine(media.ContentType);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    media = client.messages('MessageSid') \
                  .media('MediaSid') \
                  .fetch()
    
    print(media.content_type)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    media = @client.messages('MessageSid')
                   .media('MediaSid')
                   .fetch
    
    puts media.content_type
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $media = $client->messages("MessageSid")
                      ->media("MediaSid")
                      ->fetch();
    
      print($media->contentType);
    ?>
    

    Response 200 OK

    {
      "sid": "b51dc3c6-df20-4af6-b774-a99de20d3fd8",
      "date_created": "Fri, 15 Jun 2018 17:59:25 +0000",
      "date_updated": "Fri, 15 Jun 2018 17:59:25 +0000",
      "account_sid": "446e9986-0848-4d46-a617-48793c5f5e07",
      "parent_sid": "3338f508-c98c-45a1-b2e3-1a2c345477a8",
      "content_type": "image/jpeg",
      "uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/3338f508-c98c-45a1-b2e3-1a2c345477a8/Media/b51dc3c6-df20-4af6-b774-a99de20d3fd8.json"
    }
    
    

    Retrieve a single media record.

    Parameter
    No Parameters

    A media object can be returned in several representations:

    Direct Media

    Without specifying an extension, the media is returned directly using the mime-type detected.

    JSON

    By appending .json to the media URL, the JSON representation of the media will be returned.

    Delete a media object

    Delete a message.

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}/Media/{MediaSid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages('MessageSid')
          .media('MediaSid')
          .remove()
          .then(media => console.log(media.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Message;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            MediaResource.Delete(
                pathMessageSid: "MessageSid",
                pathSid: "MediaSid"
            );
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.messages('MessageSid') \
          .media('MediaSid') \
          .delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.messages('MessageSid')
           .media('MediaSid')
           .delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->messages("MessageSid")
             ->media("MediaSid")
             ->delete();
    ?>
    

    Response 204 No Content

    Delete a media instance from your project so it no longer appears in the dashboard or on the API.

    Parameter
    No Parameters

    List all media

    List all media from a message

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}/Media.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.messages('MessageSid')
          .media
          .each(media => console.log(media.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Message;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var media = MediaResource.Read(
                pathMessageSid: "MessageSid"
            );
    
            foreach(var record in media)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    media = client.messages('MessageSid').media.list()
    
    for record in media:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    media = @client.messages('MessageSid').media.list
    
    media.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $media = $client->messages("MessageSid")
                      ->media
                      ->read();
    
      foreach ($media as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/3338f508-c98c-45a1-b2e3-1a2c345477a8/Media?Page=0&PageSize=50",
      "first_page_uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/3338f508-c98c-45a1-b2e3-1a2c345477a8/Media?Page=0&PageSize=50",
      "next_page_uri": null,
      "previous_page_uri": null,
      "page": 0,
      "page_size": 50,
      "media_list": [
        {
          "sid": "b51dc3c6-df20-4af6-b774-a99de20d3fd8",
          "date_created": "Fri, 15 Jun 2018 17:59:25 +0000",
          "date_updated": "Fri, 15 Jun 2018 17:59:25 +0000",
          "account_sid": "446e9986-0848-4d46-a617-48793c5f5e07",
          "parent_sid": "3338f508-c98c-45a1-b2e3-1a2c345477a8",
          "content_type": "image/jpeg",
          "uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/3338f508-c98c-45a1-b2e3-1a2c345477a8/Media/b51dc3c6-df20-4af6-b774-a99de20d3fd8.json"
        }
      ]
    }
    

    Returns a paged list of media belonging to this message sorted with the most recent media appearing first.

    Parameter
    DateCreated optional Only return media created on this particular date, formatted as YYYY-MM-DD in UTC. You can also append < or > to return a range of media. For example, use DateCreated< to return media created on or before midnight of the date, or DateCreated> to return media created on or after midnight of the date.
    PageSize optional Specify the number of results to return on a single page. The default page size is 50 and the maximum is 1000.

    Recordings

    A Recording represents a recording of a call.

    Properties

    A sample Recording returned from the API

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "api_version": "2010-04-01",
      "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "conference_sid": "b3877c40-da60-4998-90ad-b792e98472cf",
      "channels": 1,
      "date_created": "Tue, 25 Sept 2018 23:00:00 +0000",
      "date_updated": "Wed, 26 Sept 2018 23:00:04 +0000",
      "start_time": "Tue, 25 Sept 2018 23:00:00 +0000",
      "end_time": "Wed, 26 Sept 2018 23:00:04 +0000",
      "price": "-0.0025",
      "price_unit": "USD",
      "duration": "4",
      "sid": "b3877c40-da60-4998-90ad-b792e98472re",
      "source": "StartConferenceRecordingAPI",
      "status": "completed",
      "error_code": null,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings/b3877c40-da60-4998-90ad-b792e98472re.json",
      "subresource_uris": {
        "add_on_results": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings/b3877c40-da60-4998-90ad-b792e98472re/AddOnResults.json",
        "transcriptions": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings/b3877c40-da60-4998-90ad-b792e98472re/Transcriptions.json"
      },
      "encryption_details": {
        "encryption_public_key_sid": "b3877c40-da60-4998-90ad-b792e98472cr",
        "encryption_cek": "OV4h6zrsxMIW7h0Zfqwfn6TI2GCNl54KALlg8wn8YB8KYZhXt6HlgvBWAmQTlfYVeLWydMiCewY0YkDDT1xmNe5huEo9vjuKBS5OmYK4CZkSx1NVv3XOGrZHpd2Pl/5WJHVhUK//AUO87uh5qnUP2E0KoLh1nyCLeGcEkXU0RfpPn/6nxjof/n6m6OzZOyeIRK4Oed5+rEtjqFDfqT0EVKjs6JAxv+f0DCc1xYRHl2yV8bahUPVKs+bHYdy4PVszFKa76M/Uae4jFA9Lv233JqWcxj+K2UoghuGhAFbV/JQIIswY2CBYI8JlVSifSqNEl9vvsTJ8bkVMm3MKbG2P7Q==",
        "encryption_iv": "8I2hhNIYNTrwxfHk"
      }
    }
    
    Attribute
    account_sid string The unique identifier for the account that is associated with this recording.
    api_version string The version of the SignalWire API.
    call_sid string The unique identifier for the call that is associated with this recording.
    channels integer The number of channels in a recording. Possible values are 1 or 2.
    conference_sid string The unique identifier for the conference that is associated with this recording.
    date_created datetime The date, in RFC 2822 format, this recording was created.
    date_updated datetime The date, in RFC 2822 format, this recording was updated.
    duration string The length, in seconds, of the recording.
    encryption_details object How to decrypt a recording.
    error_code Further details about a failed recording.
    price integer The cost for the recording.
    price_unit string The currency of the price of the recording.
    sid string The unique identifier for the recording.
    source string How the recording was made. Possible values are DialVerb, Conference, OutboundAPI, Trunking, RecordVerb, StartCallRecordingAPI, or StartConferenceRecording.
    start_time datetime The time, in RFC 2822 format, this recording began.
    status string The status of the recording.
    uri string The URI of the recording.

    Retrieve a Recording

    Retrieve a Recording

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.recordings('Sid')
          .fetch()
          .then(recording => console.log(recording.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var recording = RecordingResource.Fetch(
                pathSid: "Sid"
            );
    
            Console.WriteLine(recording.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    recording = client.recordings('Sid').fetch()
    
    print(recording.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    recording = @client.recordings('Sid').fetch
    
    puts recording.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $recording = $client->recordings("Sid")
                          ->fetch();
    
      print($recording->callSid);
    ?>
    

    Retrieve a single recording.

    Parameter
    Sid required The unique identifier of the recording.

    List All Recordings of an Account

    List All Recordings of an Account

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.recordings.each(recordings => console.log(recordings.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var recordings = RecordingResource.Read();
    
            foreach(var record in recordings)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    recordings = client.recordings.list()
    
    for record in recordings:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    recordings = @client.recordings.list
    
    recordings.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $recordings = $client->recordings
                           ->read();
    
      foreach ($recordings as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings.json?PageSize=1&Page=0",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings.json?PageSize=1&Page=1",
      "page": 0,
      "page_size": 1,
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings.json?PageSize=1&Page=0",
      "recordings": [
        {
          "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
          "api_version": "2010-04-01",
          "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
          "conference_sid": "b3877c40-da60-4998-90ad-b792e98472cf",
          "channels": 1,
          "date_created": "Tue, 25 Sept 2018 23:00:00 +0000",
          "date_updated": "Wed, 26 Sept 2018 23:00:04 +0000",
          "start_time": "Tue, 25 Sept 2018 23:00:00 +0000",
          "end_time": "Wed, 26 Sept 2018 23:00:04 +0000",
          "price": "-0.0025",
          "price_unit": "USD",
          "duration": "4",
          "sid": "b3877c40-da60-4998-90ad-b792e98472re",
          "source": "StartConferenceRecordingAPI",
          "status": "completed",
          "error_code": null,
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings/b3877c40-da60-4998-90ad-b792e98472re.json",
          "subresource_uris": {
            "add_on_results": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings/b3877c40-da60-4998-90ad-b792e98472re/AddOnResults.json",
            "transcriptions": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings/b3877c40-da60-4998-90ad-b792e98472re/Transcriptions.json"
          },
          "encryption_details": {
            "encryption_public_key_sid": "b3877c40-da60-4998-90ad-b792e98472cr",
            "encryption_cek": "OV4h6zrsxMIW7h0Zfqwfn6TI2GCNl54KALlg8wn8YB8KYZhXt6HlgvBWAmQTlfYVeLWydMiCewY0YkDDT1xmNe5huEo9vjuKBS5OmYK4CZkSx1NVv3XOGrZHpd2Pl/5WJHVhUK//AUO87uh5qnUP2E0KoLh1nyCLeGcEkXU0RfpPn/6nxjof/n6m6OzZOyeIRK4Oed5+rEtjqFDfqT0EVKjs6JAxv+f0DCc1xYRHl2yV8bahUPVKs+bHYdy4PVszFKa76M/Uae4jFA9Lv233JqWcxj+K2UoghuGhAFbV/JQIIswY2CBYI8JlVSifSqNEl9vvsTJ8bkVMm3MKbG2P7Q==",
            "encryption_iv": "8I2hhNIYNTrwxfHk"
          }
        }
      ],
      "start": 0,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Recordings.json?PageSize=1&Page=0",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac"
    }
    

    The ability to read all of the recordings that are associated with your SignalWire account. This will be returned as a list of recordings.

    Parameter
    CallSid optional The unique identifier of the call associated with this recording.
    DateCreated optional Shows recordings that were created on the date provided. Format as YYYY-MM-DD in UTC. You can also append < or > to return a range of recordings. For example, use DateCreated< to return recordings created on or before midnight of the date, or DateCreated> to return recordings created on or after midnight of the date.

    Example: List All Recordings of a Call

    List All Recordings of a Call

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings.json?CallSid=b3877c40-da60-4998-90ad-b792e98472ca \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.recordings.each({ callSid: 'b3877c40-da60-4998-90ad-b792e98472ca' }, recordings => console.log(recordings.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var recordings = RecordingResource.Read(
                callSid: "b3877c40-da60-4998-90ad-b792e98472ca"
            );
    
            foreach(var record in recordings)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    recordings = client.recordings \
                       .list(call_sid='b3877c40-da60-4998-90ad-b792e98472ca')
    
    for record in recordings:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    recordings = @client.recordings
                        .list(call_sid: 'b3877c40-da60-4998-90ad-b792e98472ca')
    
    recordings.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $recordings = $client->recordings
                           ->read(array(
                                      "callSid" => "b3877c40-da60-4998-90ad-b792e98472ca"
                                  )
                           );
    
      foreach ($recordings as $record) {
          print($record->sid);
      }
    ?>
    

    Example: List All Recordings on September 25, 2018

    List All Recordings on September 25, 2018

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings.json?DateCreated=2018-09-25T00%3A00%3A00Z \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.recordings.each({ dateCreated: new Date(Date.UTC(2018, 9, 25, 0, 0, 0)) }, recordings => console.log(recordings.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var recordings = RecordingResource.Read(
                dateCreated: new DateTime(2018, 9, 25, 0, 0, 0)
            );
    
            foreach(var record in recordings)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    recordings = client.recordings.list(date_created=datetime(2018, 9, 25, 0, 0))
    
    for record in recordings:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    recordings = @client.recordings.list(date_created: Date.new(2018, 9, 25))
    
    recordings.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $recordings = $client->recordings
                           ->read(array("dateCreated" => new \DateTime('2018-9-25'))
                           );
    
      foreach ($recordings as $record) {
          print($record->sid);
      }
    ?>
    

    Delete a Recording

    Delete a Recording

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.recordings('Sid')
          .remove()
          .then(recording => console.log(recording.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            RecordingResource.Delete(pathSid: "Sid");
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.recordings('Sid').delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.recordings('Sid').delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->recordings("Sid")
             ->delete();
    ?>
    

    Response 204 No Content

    Delete recording. If the delete is successful, a 204 response, with no body, will be returned.

    Parameter
    Sid required The unique identifier of the recording.

    Recording Transcriptions

    Recording transcriptions are the transcribed texts that were generated from voice call recordings. Transcriptions are audio files that were converted into readable text.

    Properties

    A sample recording transcription returned from the API.

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "api_version": "2010-04-01",
      "date_created": "Thur, 27 Sept 2018 02:00:00 +0000",
      "date_updated": "Fri, 28 Sept 2018 03:00:00 +0000",
      "duration": "1",
      "price": -0.00025,
      "price_unit": "USD",
      "recording_sid": "b3877c40-da60-4998-90ad-b792e98472re",
      "sid": "b3877c40-da60-4998-90ad-b792e98472tr",
      "status": "failed",
      "transcription_text": "(blank)",
      "type": "fast",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions/b3877c40-da60-4998-90ad-b792e98472tr.json"
    }
    
    Attribute
    account_sid string The unique identifier for the account that created this transcription.
    date_created datetime The date, in RFC 2822 GMT format, this transcription was created.
    date_updated datetime The date, in RFC 2822 GMT format, this transcription was updated.
    duration string The time, in seconds, of the transcribed audio.
    price integer The charge for the transcription.
    price_unit string The currency, in ISO 4127 format, for the price of the transcription.
    recording_sid string The unique identifier for the recording that this transcription was created from.
    sid string The unique identifier for the transcription.
    status string The status of the transcription. Possible values are in-progress, completed, or failed.
    transcription_text string The text content of a transcription.
    uri string The URI of the transcription.

    Retrieve a Transcription

    Retrieve a Transcription

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Transcriptions/{Sid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.transcriptions('Sid')
          .fetch()
          .then(transcription => console.log(transcription.dateCreated))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(accountSid, authToken);
    
            var transcription = TranscriptionResource.Fetch(
                pathSid: "Sid"
            );
    
            Console.WriteLine(transcription.DateCreated);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    transcription = client.transcriptions('Sid') \
                          .fetch()
    
    print(transcription.date_created)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    transcription = @client.transcriptions('Sid')
                           .fetch
    
    puts transcription.date_created
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $transcription = $client->transcriptions("Sid")
                              ->fetch();
    
      print($transcription->dateCreated->format());
    ?>
    

    Retrieve a single recording transcription.

    Parameter
    Sid required The Call Sid that uniquely identifies the recording transcription to retrieve.

    List All Transcriptions

    List All Transcriptions

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Transcriptions.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.transcriptions.each(transcriptions => console.log(transcriptions.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var transcriptions = TranscriptionResource.Read();
    
            foreach(var record in transcriptions)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    transcriptions = client.transcriptions.list()
    
    for record in transcriptions:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    transcriptions = @client.transcriptions.list
    
    transcriptions.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $transcriptions = $client->transcriptions
                               ->read();
    
      foreach ($transcriptions as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions.json?PageSize=1&Page=0",
      "last_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions.json?PageSize=1&Page=3",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions.json?PageSize=1&Page=1",
      "num_pages": 4,
      "page": 0,
      "page_size": 1,
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions.json?PageSize=1&Page=0",
      "start": 0,
      "total": 4,
      "transcriptions": [
        {
          "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
          "api_version": "2008-08-01",
          "date_created": "Thu, 27 Sept 2018 20:00:00 +0000",
          "date_updated": "Fri, 28 Sept 2018 21:00:00 +0000",
          "duration": "10",
          "price": "0.0",
          "price_unit": "USD",
          "recording_sid": "b3877c40-da60-4998-90ad-b792e98472re",
          "sid": "b3877c40-da60-4998-90ad-b792e98472tr",
          "status": "completed",
          "transcription_text": null,
          "type": "fast",
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions/b3877c40-da60-4998-90ad-b792e98472tr.json"
        }
      ],
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions.json?PageSize=1&Page=0",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac"
    }
    

    The ability to read all of the recording transcriptions that are associated with your account. This will be returned as a list of transcriptions.

    Example: List All Transcriptions from a Recording

    List All Transcriptions from a Recording

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{RecordingSid}/Transcriptions.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.transcriptions.each({RecordingSid: 'b3877c40-da60-4998-90ad-b792e98472re'}, transcriptions => console.log(transcriptions.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var transcriptions = TranscriptionResource.Read(
                pathSid: "RecordingSid"
            );
    
            foreach(var record in transcriptions)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    transcriptions = client.transcriptions \
                       .list(recording_sid='b3877c40-da60-4998-90ad-b792e98472re')
    
    for record in transcriptions:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    transcriptions = @client.transcriptions
                        .list(recording_sid: 'b3877c40-da60-4998-90ad-b792e98472re')
    
    transcriptions.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $transcriptions = $client->transcriptions
                           ->read(array(
                                      "RecordingSid" => "b3877c40-da60-4998-90ad-b792e98472re"
                                  )
                           );
    
      foreach ($transcriptions as $record) {
          print($transcriptions->sid);
      }
    ?>
    

    The ability to read all of the transcriptions that were generated from a single recording.

    Delete a Recording Transcription

    Delete a Recording Transcription

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Transcriptions/{Sid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.transcriptions('Sid')
          .remove()
          .then(transcription => console.log(transcription.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            TranscriptionResource.Delete(pathSid: "Sid");
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.transcriptions('Sid').delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.transcriptions('Sid').delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->transcriptions("Sid")
             ->delete();
    ?>
    

    Response 204 No Content

    Delete a recording transcription from your account. If the delete is successful, a 204 response, with no body, will be returned.

    Parameter
    Sid required The unique identifier that determines the transcription to delete.

    Queues

    Queue permits you to search and maintain individual call queues.

    Properties

    A sample Queue returned from the API

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "average_wait_time": 0,
      "current_size": 0,
      "date_created": "Wed, 26 Sept 2018 18:00:00 +0000",
      "date_updated": "Thur, 27 Sept 2018 19:00:00 +0000",
      "friendly_name": "0.361280134646222",
      "max_size": 123,
      "sid": "b3877c40-da60-4998-90ad-b792e98472qu",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu.json"
    }
    
    Attribute
    average_wait_time integer The average wait time, in seconds, of callers in a queue.
    current_size integer The number of calls waiting in the queue.
    friendly_name string A description that distinguishes a queue.
    max_size integer The maximum number of calls that are allowed to wait in a queue.
    sid string The unique identifier for the queue.

    Create a Queue

    Create a Queue

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues.json \
      -X POST \
      --data-urlencode "FriendlyName=Queue1" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues.create({friendlyName: 'Queue1'})
                 .then(queue => console.log(queue.sid))
                 .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var queue = QueueResource.Create(friendlyName: "Queue1");
    
            Console.WriteLine(queue.Sid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    queue = client.queues.create(friendly_name='Queue1')
    
    print(queue.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    queue = @client.queues.create(friendly_name: 'Queue1')
    
    puts queue.sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $queue = $client->queues
                      ->create("Queue1");
    
      print($queue->sid);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "average_wait_time": 0,
      "current_size": 0,
      "date_created": "Wed, 26 Sept 2018 18:00:00 +0000",
      "date_updated": "Thur, 27 Sept 2018 19:00:00 +0000",
      "friendly_name": "Queue1",
      "max_size": 123,
      "sid": "b3877c40-da60-4998-90ad-b792e98472qu",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu.json"
    }
    

    Create a new call queue.

    Parameter
    FriendlyName required A description that distinguishes a queue.
    MaxSize optional The maximum number of calls that are allowed to wait in a queue.

    Retrieve a Queue

    Retrieve a Queue

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .fetch()
          .then(queue => console.log(queue.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var queue = QueueResource.Fetch(pathSid: "QueueSid");
    
            Console.WriteLine(queue.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    queue = client.queues('QueueSid').fetch()
    
    print(queue.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    queue = @client.queues('QueueSid').fetch
    
    puts queue.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $queue = $client->queues("QueueSid")
                      ->fetch();
    
      print($queue->friendlyName);
    ?>
    

    Retrieve a single call queue.

    Parameter
    No Parameters

    Update a Queue

    Update a Queue

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}.json \
      -X POST \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .update()
          .then(queue => console.log(queue.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var queue = QueueResource.Update(
                pathSid: "QueueSid"
            );
    
            Console.WriteLine(queue.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    queue = client.queues('QueueSid') \
                  .update()
    
    print(queue.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    queue = @client.queues('QueueSid')
                   .update()
    
    puts queue.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $queue = $client->queues("QueueSid")
                      ->update();
    
      print($queue->friendlyName);
    ?>
    

    Allows you to modify the properties of a single call queue.

    Parameter
    FriendlyName optional Update the description that distinguishes a queue.
    MaxSize optional Update the maximum number of calls that are allowed to wait in a queue.

    Update the Size of a Queue

    Update the Size of a Queue

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}.json \
      -X POST \
      --data-urlencode "MaxSize=200" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .update({ maxSize: 200 })
          .then(queue => console.log(queue.friendlyName))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var queue = QueueResource.Update(
                maxSize: 200,
                pathSid: "QueueSid"
            );
    
            Console.WriteLine(queue.FriendlyName);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    queue = client.queues('QueueSid') \
                  .update(max_size=200)
    
    print(queue.friendly_name)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    queue = @client.queues('QueueSid')
                   .update(max_size: 200)
    
    puts queue.friendly_name
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $queue = $client->queues("QueueSid")
                      ->update(array("maxSize" => 200));
    
      print($queue->friendlyName);
    ?>
    

    Response 200 OK

    {
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "average_wait_time": 0,
      "current_size": 0,
      "date_created": "Wed, 26 Sept 2018 18:00:00 +0000",
      "date_updated": "Thur, 27 Sept 2018 19:00:00 +0000",
      "friendly_name": "Queue1",
      "max_size": 200,
      "sid": "b3877c40-da60-4998-90ad-b792e98472qu",
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu.json"
    }
    

    Change the maximum size of a call queue to 200 queue members.

    Retrieve Members Waiting in a Queue

    Retrieve Members Waiting in a Queue

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}/Members.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .members
          .each(members => console.log(members.callSid));
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $members = $client->queues("QueueSid")
                        ->members
                        ->read();
    
      foreach ($members as $record) {
          print($record->callSid);
      }
    ?>
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Queue;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var members = MemberResource.Read(
                pathSid: "b3877c40-da60-4998-90ad-b792e98472qu"
            );
    
            foreach(var record in members)
            {
               Console.WriteLine(record.CallSid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    members = client.queues('b3877c40-da60-4998-90ad-b792e98472qu').members.list()
    
    for record in members:
        print(record.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    members = @client.queues('b3877c40-da60-4998-90ad-b792e98472qu').members.list
    
    members.each do |record|
      puts record.call_sid
    end
    

    The ability to read the list of members that are currently waiting in a call queue.

    List All Queues

    List All Queues

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues.each(queues => console.log(queues.sid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Queue;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var queues = QueueResource.Read();
    
            foreach(var record in queues)
            {
               Console.WriteLine(record.Sid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    queues = client.queues.list()
    
    for record in queues:
        print(record.sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    queues = @client.queues.list
    
    queues.each do |record|
      puts record.sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $queues = $client->queues
                       ->read();
    
      foreach ($queues as $record) {
          print($record->sid);
      }
    ?>
    

    Response 200 OK

    {
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues.json?PageSize=1&Page=0",
      "last_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues.json?PageSize=1&Page=12857",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues.json?PageSize=1&Page=1",
      "num_pages": 12858,
      "page": 0,
      "page_size": 1,
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues.json?PageSize=1&Page=0",
      "queues": [
        {
          "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
          "average_wait_time": 0,
          "current_size": 0,
          "date_created": "Tue, 04 Aug 2018 18:39:09 +0000",
          "date_updated": "Tue, 04 Aug 2018 18:39:19 +0000",
          "friendly_name": "Queue2",
          "max_size": 100,
          "sid": "b3877c40-da60-4998-90ad-b792e98472qu",
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu.json"
        }
      ],
      "start": 0,
      "total": 12858,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues.json?PageSize=1&Page=0",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac"
    }
    

    The ability to read all of the queues that are associated with your account. This will be returned as a list of queues.

    Parameter
    FriendlyName required Returns queues that exactly match the provided friendly name.
    MaxSize optional Returns queues that have the provided maximum size.

    Delete a Queue

    Delete a Queue

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}.json \
      -X DELETE \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .remove()
          .then(queues => console.log(queues.sid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Queue;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            QueueResource.Delete(pathSid: "QueueSid");
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    client.queues('QueueSid').delete()
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    @client.queues('QueueSid').delete
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $client->queues("QueueSid")
             ->delete();
    ?>
    

    Response 204 No Content

    Delete a single call queue. Only empty queues can be deleted. If the delete is successful, a 204 response, with no body, will be returned.

    Queue Members

    Queue members are the callers who are currently waiting in a call queue.

    Properties

    A sample Queue Member returned from the API

    {
      "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "date_enqueued": "Wed, 26 Sept 2018 22:00:00 +0000",
      "position": 1,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members/b3877c40-da60-4998-90ad-b792e98472ac.json",
      "wait_time": 100,
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "queue_sid": "b3877c40-da60-4998-90ad-b792e98472qu"
    }
    
    Attribute
    call_sid string The unique identifier for the call that is enqueued.
    date_enqueued datetime The date, in RFC 2822 format, the queue member was enqueued.
    position integer The member's current place in the queue.
    wait_time integer The time, in seconds, a member is waiting in a queue.

    Retrieve a Queue Member

    Retrieve a Queue Member

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}/Members/{CallSid}.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .members('CallSid')
          .fetch()
          .then(member => console.log(member.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Queue;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var member = MemberResource.Fetch(
                pathQueueSid: "QueueSid",
                pathCallSid: "CallSid"
            );
    
            Console.WriteLine(member.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    member = client.queues('QueueSid') \
                   .members('CallSid') \
                   .fetch()
    
    print(member.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    member = @client.queues('QueueSid')
                    .members('CallSid')
                    .fetch
    
    puts member.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $member = $client->queues("QueueSid")
                       ->members("CallSid")
                       ->fetch();
    
      print($member->callSid);
    ?>
    

    Retrieve a single queue member.

    Parameter
    CallSid required Retrieve a queue member by their unique identifier.
    Front optional Retrieve the member that is at the front of the queue.

    Update a Queue Member

    Update a Queue Member

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}/Members/{CallSid}.json \
      -X POST \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .members('CallSid')
          .update()
          .then(member => console.log(member.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Queue;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var member = MemberResource.Update(
                pathQueueSid: "QueueSid",
                pathCallSid: "CallSid"
            );
    
            Console.WriteLine(member.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    member = client.queues('QueueSid') \
                   .members('CallSid') \
                   .update()
    
    print(member.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    member = @client.queues('QueueSid')
                    .members('CallSid')
                    .update()
    
    puts member.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $member = $client->queues("QueueSid")
                       ->members("CallSid")
                       ->update();
    
      print($member->callSid);
    ?>
    

    Allows you to modify the properties of a queue member that is actively waiting in a call queue.

    Attribute
    call_sid string The unique identifier for the call that is enqueued.
    date_enqueued datetime The date, in RFC 2822 format, the queue member was enqueued.
    position integer The member's current place in the queue.
    wait_time integer The time, in seconds, a member is waiting in a queue.

    Example: Dequeue From Front of Queue

    Dequeue From Front of Queue

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}/Members/Front.json \
      -X POST \
      --data-urlencode "Url=http://your-application.com/docs/voice.xml" \
      --data-urlencode "Method=POST" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .members('Front')
          .update({url: 'http://your-application.com/docs/voice.xml', method: 'POST'})
          .then(member => console.log(member.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Queue;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var member = MemberResource.Update(
                url: new Uri("http://your-application.com/docs/voice.xml"),
                method: Twilio.Http.HttpMethod.Post,
                pathQueueSid: "QueueSid",
                pathCallSid: "Front"
            );
    
            Console.WriteLine(member.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    member = client.queues('QueueSid') \
                   .members('Front') \
                   .update(
                        url='http://your-application.com/docs/voice.xml',
                        method='POST'
                    )
    
    print(member.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    member = @client.queues('QueueSid')
                    .members('Front')
                    .update(
                      url: 'http://your-application.com/docs/voice.xml',
                      method: 'POST'
                    )
    
    puts member.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $member = $client->queues("QueueSid")
                       ->members("Front")
                       ->update(array("url" => "http://your-application.com/docs/voice.xml", "method" => "POST"));
    
      print($member->callSid);
    ?>
    

    Response 200 OK

    {
      "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "date_enqueued": "Wed, 26 Sept 2018 22:00:00 +0000",
      "position": 1,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members/b3877c40-da60-4998-90ad-b792e98472ca.json",
      "wait_time": 143,
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "method": "POST",
      "queue_sid": "b3877c40-da60-4998-90ad-b792e98472qu",
      "url": "http://your-application.com/docs/voice.xml"
    }
    

    Dequeue the member that is waiting at the front of the queue.

    Example: Dequeue Particular Member

    Dequeue Particular Member

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}/Members/{CallSid}.json \
      -X POST \
      --data-urlencode "Url=http://your-application.com/docs/voice.xml" \
      --data-urlencode "Method=POST" \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .members('CallSid')
          .update({url: 'http://your-application.com/docs/voice.xml', method: 'POST'})
          .then(member => console.log(member.callSid))
          .done();
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Queue;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var member = MemberResource.Update(
                url: new Uri("http://your-application.com/docs/voice.xml"),
                method: Twilio.Http.HttpMethod.Post,
                pathQueueSid: "QueueSid",
                pathCallSid: "CallSid"
            );
    
            Console.WriteLine(member.CallSid);
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    member = client.queues('QueueSid') \
                   .members('CallSid') \
                   .update(
                        url='http://your-application.com/docs/voice.xml',
                        method='POST'
                    )
    
    print(member.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    member = @client.queues('QueueSid')
                    .members('CallSid')
                    .update(
                      url: 'http://your-application.com/docs/voice.xml',
                      method: 'POST'
                    )
    
    puts member.call_sid
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $member = $client->queues("QueueSid")
                       ->members("CallSid")
                       ->update(array("url" => "http://your-application.com/docs/voice.xml", "method" => "POST"));
    
      print($member->callSid);
    ?>
    

    Response 200 OK

    {
      "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
      "date_enqueued": "Wed, 26 Sept 2018 22:00:00 +0000",
      "position": 1,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members/b3877c40-da60-4998-90ad-b792e98472ca.json",
      "wait_time": 143,
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "method": "POST",
      "queue_sid": "b3877c40-da60-4998-90ad-b792e98472qu",
      "url": "http://your-application.com/docs/voice.xml"
    }
    

    Dequeue a particular member by specifying their CallSid. Only the initial dequeue request will return a 200 response. All other dequeue requests on the same CallSid will result in a 400 response.

    List All Queue Members

    List All Queue Members

    curl https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Queues/{QueueSid}/Members.json \
      -X GET \
      -u "YourProjectID:YourAuthToken"
    
    const project = 'YourProjectID'
    const token = 'YourAuthToken';
    const RestClient = require('signalwire').RestClient
    const client = new RestClient(project, token)
    
    client.queues('QueueSid')
          .members
          .each(members => console.log(members.callSid));
    
    using System;
    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Queue;
    
    class Program
    {
        static void Main(string[] args)
        {
            const string project = "YourProjectID";
            const string token = "YourAuthToken";
    
            TwilioClient.Init(project, token);
    
            var members = MemberResource.Read(
                pathQueueSid: "QueueSid"
            );
    
            foreach(var record in members)
            {
               Console.WriteLine(record.CallSid);
            }
        }
    }
    
    from signalwire.rest import Client as signalwire_client
    
    project = "YourProjectID"
    token = "YourAuthToken"
    client = signalwire_client(project, token, signalwire_space_url = 'example.signalwire.com')
    
    members = client.queues('QueueSid').members.list()
    
    for record in members:
        print(record.call_sid)
    
    require 'signalwire/sdk'
    
    PROJECT_KEY = 'YourProjectID'
    TOKEN = 'YourAuthToken'
    @client = Signalwire::REST::Client.new PROJECT_KEY, TOKEN
    
    members = @client.queues('QueueSid').members.list
    
    members.each do |record|
      puts record.call_sid
    end
    
    <?php
      use SignalWire\Rest\Client;
    
      $project = 'YourProjectID';
      $token = 'YourAuthToken';
      $client = new Client($project, $token);
    
      $members = $client->queues("QueueSid")
                        ->members
                        ->read();
    
      foreach ($members as $record) {
          print($record->callSid);
      }
    ?>
    

    Response 200 OK

    {
      "end": 0,
      "first_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members.json?Page=0&PageSize=50",
      "last_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members.json?Page=0&PageSize=50",
      "next_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members.json?Page=50",
      "num_pages": 1,
      "page": 0,
      "page_size": 50,
      "previous_page_uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members.json?Page=0&PageSize=50",
      "queue_members": [
        {
          "call_sid": "b3877c40-da60-4998-90ad-b792e98472ca",
          "date_enqueued": "Wed, 26 Sept 2018 21:00:00 +0000",
          "position": 1,
          "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members/b3877c40-da60-4998-90ad-b792e98472ca.json",
          "wait_time": 100
        }
      ],
      "start": 0,
      "total": 1,
      "uri": "/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Queues/b3877c40-da60-4998-90ad-b792e98472qu/Members.json",
      "account_sid": "b3877c40-da60-4998-90ad-b792e98472ac",
      "queue_sid": "b3877c40-da60-4998-90ad-b792e98472qu"
    }
    

    The ability to read all of the queue members that are waiting in a particular queue. This will be returned as a list of members.

    Parameter
    QueueSid required Returns members of a particular queue.