# Update a SIP Profile PUT https://YOUR_SPACE.signalwire.com/api/relay/rest/sip_profile Content-Type: application/json Updates the SIP profile settings for your project. #### Permissions The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Voice_. [Learn more about API scopes](/docs/platform/your-signalwire-api-space). Reference: https://signalwire.com/docs/apis/relay-rest/sip-profile/update-sip-profile ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: relay-rest version: 1.0.0 paths: /sip_profile: put: operationId: update-sip-profile summary: Update a SIP Profile description: >- Updates the SIP profile settings for your project. #### Permissions The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Voice_. [Learn more about API scopes](/docs/platform/your-signalwire-api-space). tags: - subpackage_sipProfile parameters: - 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/SipProfileResponse' '401': description: Access is unauthorized. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.StatusCode401' '422': description: The request failed validation. See errors for details. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.ValidationError' '500': description: An internal server error occurred. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.StatusCode500' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateSipProfileRequest' servers: - url: https://YOUR_SPACE.signalwire.com/api/relay/rest components: schemas: UpdateSipProfileRequestDefaultEncryption: type: string enum: - required - optional description: >- A string representing whether connections to an endpoint that uses this profile require encryption or if encryption is optional. Encryption will always be used if possible. Possible values are required or optional. title: UpdateSipProfileRequestDefaultEncryption UpdateSipProfileRequest: type: object properties: domain_identifier: type: string description: >- String representing the domain_identifier portion of the profile. Must be unique across your project. default_codecs: type: array items: type: string description: >- A list of codecs this profile will support. Currently supported values are: OPUS, G722, PCMU, PCMA, VP8, H264. default_ciphers: type: array items: type: string description: >- A list of encryption ciphers this profile will support. Currently supported values are: AEAD_AES_256_GCM_8, AES_256_CM_HMAC_SHA1_80, AES_CM_128_HMAC_SHA1_80, AES_256_CM_HMAC_SHA1_32, AES_CM_128_HMAC_SHA1_32. default_encryption: $ref: '#/components/schemas/UpdateSipProfileRequestDefaultEncryption' description: >- A string representing whether connections to an endpoint that uses this profile require encryption or if encryption is optional. Encryption will always be used if possible. Possible values are required or optional. default_send_as: type: string description: >- The e164 formatted number you wish to set as the originating number when dialing PSTN phone numbers from a SIP Endpoint that uses this profile. Specify null or an empty string to randomly choose a purchased or verified number from within the project. description: Request body for updating the SIP profile. title: UpdateSipProfileRequest SipProfileResponseDefaultEncryption: type: string enum: - required - optional description: >- A string representing whether connections to an endpoint that uses this profile require encryption or if encryption is optional. Encryption will always be used if possible. Possible values are required or optional. title: SipProfileResponseDefaultEncryption SipProfileResponse: type: object properties: domain: type: string description: >- A string representation of the fully qualified domain name for this profile. domain_identifier: type: string description: >- String representing the domain_identifier portion of the profile. Must be unique across your project. default_codecs: type: array items: type: string description: >- A list of codecs this profile will support. Currently supported values are: OPUS, G722, PCMU, PCMA, VP8, H264. default_ciphers: type: array items: type: string description: >- A list of encryption ciphers this profile will support. Currently supported values are: AEAD_AES_256_GCM_8, AES_256_CM_HMAC_SHA1_80, AES_CM_128_HMAC_SHA1_80, AES_256_CM_HMAC_SHA1_32, AES_CM_128_HMAC_SHA1_32. default_encryption: $ref: '#/components/schemas/SipProfileResponseDefaultEncryption' description: >- A string representing whether connections to an endpoint that uses this profile require encryption or if encryption is optional. Encryption will always be used if possible. Possible values are required or optional. default_send_as: type: string description: >- The e164 formatted number you wish to set as the originating number when dialing PSTN phone numbers from a SIP Endpoint that uses this profile. Specify null or an empty string to randomly choose a purchased or verified number from within the project. description: Response containing the SIP profile. title: SipProfileResponse TypesStatusCodesStatusCode401Error: type: string enum: - Unauthorized title: TypesStatusCodesStatusCode401Error Types.StatusCodes.StatusCode401: type: object properties: error: $ref: '#/components/schemas/TypesStatusCodesStatusCode401Error' required: - error description: Access is unauthorized. title: Types.StatusCodes.StatusCode401 Types.StatusCodes.SpaceApiErrorItem: type: object properties: detail: type: string description: A description of what caused the error. status: type: string description: The HTTP status code. title: type: string description: A short summary of the error type. code: type: string description: The error code. required: - detail - status - title - code description: Details about a specific validation error. title: Types.StatusCodes.SpaceApiErrorItem Types.StatusCodes.ValidationError: type: object properties: errors: type: array items: $ref: '#/components/schemas/Types.StatusCodes.SpaceApiErrorItem' description: List of validation errors. required: - errors description: The request failed validation. See errors for details. title: Types.StatusCodes.ValidationError TypesStatusCodesStatusCode500Error: type: string enum: - Internal Server Error title: TypesStatusCodesStatusCode500Error Types.StatusCodes.StatusCode500: type: object properties: error: $ref: '#/components/schemas/TypesStatusCodesStatusCode500Error' required: - error description: An internal server error occurred. title: Types.StatusCodes.StatusCode500 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/relay/rest/sip_profile" payload = {} headers = { "Authorization": "Basic :", "Content-Type": "application/json" } response = requests.put(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://your_space.signalwire.com/api/relay/rest/sip_profile'; const options = { method: 'PUT', headers: { Authorization: 'Basic :', 'Content-Type': 'application/json' }, body: '{}' }; 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" "strings" "net/http" "io" ) func main() { url := "https://your_space.signalwire.com/api/relay/rest/sip_profile" payload := strings.NewReader("{}") req, _ := http.NewRequest("PUT", url, payload) req.Header.Add("Authorization", "Basic :") req.Header.Add("Content-Type", "application/json") 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/relay/rest/sip_profile") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["Authorization"] = 'Basic :' request["Content-Type"] = 'application/json' request.body = "{}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.put("https://your_space.signalwire.com/api/relay/rest/sip_profile") .header("Authorization", "Basic :") .header("Content-Type", "application/json") .body("{}") .asString(); ``` ```php request('PUT', 'https://your_space.signalwire.com/api/relay/rest/sip_profile', [ 'body' => '{}', 'headers' => [ 'Authorization' => 'Basic :', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://your_space.signalwire.com/api/relay/rest/sip_profile"); var request = new RestRequest(Method.PUT); request.AddHeader("Authorization", "Basic :"); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Basic :", "Content-Type": "application/json" ] let parameters = [] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://your_space.signalwire.com/api/relay/rest/sip_profile")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PUT" request.allHTTPHeaderFields = headers request.httpBody = postData as Data 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() ```