# Import a Phone Number POST https://YOUR_SPACE.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/ImportedPhoneNumbers Content-Type: application/x-www-form-urlencoded Import a phone number you already own to your SignalWire Space to use with SignalWire APIs. **Note:** This is a **Partner API**. To enable it on your SignalWire Space, contact [Sales](https://signalwire.com/company/contact?utm_campaign=devex_sent_em). #### Permissions The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Numbers_. [Learn more about API scopes](/docs/platform/your-signalwire-api-space). Reference: https://signalwire.com/docs/compatibility-api/rest/imported-phone-numbers/create-imported-phone-number ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: compatibility version: 1.0.0 paths: /Accounts/{AccountSid}/ImportedPhoneNumbers: post: operationId: create-imported-phone-number summary: Import a Phone Number description: >- Import a phone number you already own to your SignalWire Space to use with SignalWire APIs. **Note:** This is a **Partner API**. To enable it on your SignalWire Space, contact [Sales](https://signalwire.com/company/contact?utm_campaign=devex_sent_em). #### Permissions The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Numbers_. [Learn more about API scopes](/docs/platform/your-signalwire-api-space). tags: - subpackage_importedPhoneNumbers parameters: - name: AccountSid in: path description: >- The unique identifier for the account that is associated with this phone number. required: true schema: type: string format: uuid - name: Authorization in: header description: >- SignalWire Basic Authentication using Project ID and API Token. The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password. Example: ``` Authorization: Basic base64(project_id:token) ``` required: true schema: type: string responses: '201': description: >- The request has succeeded and a new resource has been created as a result. content: application/json: schema: $ref: '#/components/schemas/IncomingPhoneNumber' '400': description: >- The request was invalid or cannot be processed. Check the error details for more information. content: application/json: schema: $ref: '#/components/schemas/CompatibilityErrorResponse' '401': description: Authentication failed. Please verify your credentials and try again. content: application/json: schema: $ref: '#/components/schemas/CompatibilityErrorResponse' '422': description: >- The phone number import request could not be processed due to validation errors. Check the error details for more information. content: application/json: schema: $ref: '#/components/schemas/CompatibilityImportedPhoneNumberError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ImportPhoneNumberRequest' servers: - url: https://YOUR_SPACE.signalwire.com/api/laml/2010-04-01 components: schemas: NumberType: type: string enum: - longcode - tollfree description: The type of phone number being imported. title: NumberType PhoneNumberCapability: type: string enum: - sms - voice - fax - mms description: Phone number capabilities. title: PhoneNumberCapability ImportPhoneNumberRequest: type: object properties: number: type: string description: >- The phone number to import in E.164 format. Must start with `+` followed by 5-30 digits. number_type: $ref: '#/components/schemas/NumberType' description: The type of phone number being imported. capabilities: type: array items: $ref: '#/components/schemas/PhoneNumberCapability' description: >- The capabilities to enable for this phone number. If not provided, defaults to all capabilities (`sms`, `voice`, `fax`, `mms`). If provided, must include at least one capability. required: - number - number_type description: Request body for importing a phone number. title: ImportPhoneNumberRequest AddressRequirements: type: string enum: - none - any - local - foreign description: Address requirements. title: AddressRequirements IncomingPhoneNumberCapabilities: type: object properties: voice: type: boolean description: Whether or not voice is enabled. sms: type: boolean description: Whether or not SMS is enabled. mms: type: boolean description: Whether or not MMS is enabled. fax: type: boolean description: Whether or not fax is enabled. required: - voice - sms - mms - fax description: Phone number capabilities. title: IncomingPhoneNumberCapabilities PhoneNumberOrigin: type: string enum: - signalwire - hosted description: Phone number origin. title: PhoneNumberOrigin IncomingPhoneNumber: type: object properties: account_id: type: string format: uuid description: >- The unique identifier for the account that is associated with this phone number. account_sid: type: string format: uuid description: >- The unique identifier for the account that is associated with this phone number. address_requirements: $ref: '#/components/schemas/AddressRequirements' description: >- Whether or not a registered address with SignalWire is required. Always 'none'. address_sid: type: - string - 'null' description: >- The unique identifier for the address associated with this phone number. Always null. api_version: type: string description: The version of the SignalWire API. beta: type: boolean description: New numbers on SignalWire are marked as beta. Always false. capabilities: $ref: '#/components/schemas/IncomingPhoneNumberCapabilities' description: Whether or not a number can receive calls and messages. country_code: type: string description: The ISO 3166-1 alpha-2 country code for this phone number. date_created: type: string description: The date, in RFC 2822 format, this phone number was created. date_updated: type: string description: The date, in RFC 2822 format, this phone number was updated. emergency_address_sid: type: - string - 'null' description: >- The unique identifier of the address associated with E911 for this phone number, or null if not set. emergency_status: type: string description: >- Whether the phone route has an active E911 address associated. 'Active' or 'Inactive'. friendly_name: type: string description: A formatted version of the number. identity_sid: type: - string - 'null' description: >- The unique identifier for the identity associated with this phone number. Always null. origin: $ref: '#/components/schemas/PhoneNumberOrigin' description: The origin of the phone number. phone_number: type: string description: The incoming number in E.164 format. sid: type: string description: The unique identifier for this phone number. sms_application_sid: type: - string - 'null' description: >- The unique identifier for the application associated with SMS handling on this phone number, or null if not set. sms_fallback_method: type: string description: Whether the request to `SmsFallbackUrl` is a `GET` or a `POST`. sms_fallback_url: type: - string - 'null' description: >- The URL to request if errors occur when fetching SmsUrl, or null if not set. sms_method: type: string description: Whether the request to SmsUrl is a `GET` or a `POST`. sms_url: type: - string - 'null' description: >- The URL to request when an incoming SMS is received, or null if not set. status_callback: type: - string - 'null' description: The URL to request to pass status updates to, or null if not set. status_callback_method: type: string description: Whether the request to StatusCallback is a `GET` or a `POST`. trunk_sid: type: - string - 'null' description: >- The unique identifier for the Trunk associated with this phone number. Always null. uri: type: string description: The URI for this number. verification_status: type: string description: >- The verification status for toll-free numbers. Only present for toll-free numbers. voice_application_sid: type: - string - 'null' description: >- The unique identifier for the application associated with call handling on this phone number, or null if not set. voice_caller_id_lookup: type: - boolean - 'null' description: >- Whether or not to look up a caller's name in the database. Always null. voice_fallback_method: type: string description: Whether the request to VoiceFallbackUrl is a `GET` or a `POST`. voice_fallback_url: type: - string - 'null' description: >- The URL to request if errors occur when fetching `Url`, or null if not set. voice_method: type: string description: Whether the request to Url is a `GET` or a `POST`. voice_url: type: - string - 'null' description: >- The URL to request when an incoming call is received, or null if not set. required: - account_id - account_sid - address_requirements - address_sid - api_version - beta - capabilities - country_code - date_created - date_updated - emergency_address_sid - emergency_status - friendly_name - identity_sid - origin - phone_number - sid - sms_application_sid - sms_fallback_method - sms_fallback_url - sms_method - sms_url - status_callback - status_callback_method - trunk_sid - uri - voice_application_sid - voice_caller_id_lookup - voice_fallback_method - voice_fallback_url - voice_method - voice_url description: Incoming phone number model. title: IncomingPhoneNumber CompatibilityErrorResponse: type: object properties: code: type: integer description: Error code. message: type: string description: Error message. more_info: type: string description: URL for more information about the error. status: type: integer description: HTTP status code. required: - code - message - more_info - status description: Error response model. title: CompatibilityErrorResponse CompatibilityImportedPhoneNumberError: type: object properties: code: type: string description: The error code. message: type: string description: A human-readable error message. more_info: type: string description: A URL to more information about the error. status: type: integer description: The HTTP status code. description: Error response model with string code for ImportedPhoneNumbers. title: CompatibilityImportedPhoneNumberError securitySchemes: SignalWireBasicAuth: type: http scheme: basic description: >- SignalWire Basic Authentication using Project ID and API Token. The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password. Example: ``` Authorization: Basic base64(project_id:token) ``` ``` ## SDK Code Examples ```python import requests url = "https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/ImportedPhoneNumbers" payload = "" headers = { "Authorization": "Basic :", "Content-Type": "application/x-www-form-urlencoded" } response = requests.post(url, data=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/ImportedPhoneNumbers'; const options = { method: 'POST', headers: { Authorization: 'Basic :', 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams('') }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/ImportedPhoneNumbers" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("Authorization", "Basic :") req.Header.Add("Content-Type", "application/x-www-form-urlencoded") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/ImportedPhoneNumbers") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Basic :' request["Content-Type"] = 'application/x-www-form-urlencoded' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/ImportedPhoneNumbers") .header("Authorization", "Basic :") .header("Content-Type", "application/x-www-form-urlencoded") .asString(); ``` ```php request('POST', 'https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/ImportedPhoneNumbers', [ 'form_params' => null, 'headers' => [ 'Authorization' => 'Basic :', 'Content-Type' => 'application/x-www-form-urlencoded', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/ImportedPhoneNumbers"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Basic :"); request.AddHeader("Content-Type", "application/x-www-form-urlencoded"); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Basic :", "Content-Type": "application/x-www-form-urlencoded" ] let request = NSMutableURLRequest(url: NSURL(string: "https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/ImportedPhoneNumbers")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```