Update carrier account
curl --request PATCH \
--url https://api.goyappr.com/carrier-accounts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"api_key": "<string>",
"public_key": "<string>"
}
'import requests
url = "https://api.goyappr.com/carrier-accounts/{id}"
payload = {
"name": "<string>",
"api_key": "<string>",
"public_key": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', api_key: '<string>', public_key: '<string>'})
};
fetch('https://api.goyappr.com/carrier-accounts/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.goyappr.com/carrier-accounts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'api_key' => '<string>',
'public_key' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.goyappr.com/carrier-accounts/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"api_key\": \"<string>\",\n \"public_key\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.goyappr.com/carrier-accounts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"api_key\": \"<string>\",\n \"public_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goyappr.com/carrier-accounts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"api_key\": \"<string>\",\n \"public_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "Main Telnyx account",
"provider": "telnyx",
"api_key_last4": "9XyZ",
"api_key_updated_at": "2023-11-07T05:31:56Z",
"public_key_set": true,
"signature_verified": true,
"connection": {
"id": "2890000000000000001",
"created_by_yappr": true,
"outbound_voice_profile_id": "<string>"
},
"status": "untested",
"pause_reason": "key_rejected",
"last_error": {
"code": "<string>",
"sip_code": "403",
"at": "2023-11-07T05:31:56Z"
},
"last_success_at": "2023-11-07T05:31:56Z",
"last_tested_at": "2023-11-07T05:31:56Z",
"numbers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "+972551234567",
"friendly_name": "<string>",
"provider": "<string>",
"status": "active",
"is_active": true,
"inbound_agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outbound_agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sip_inbound_configured": true,
"sip_outbound_configured": true,
"country_code": "<string>",
"monthly_cost": 123,
"created_at": "2023-11-07T05:31:56Z",
"carrier_account": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "telnyx",
"status": "untested"
},
"ownership_verified_at": "2023-11-07T05:31:56Z"
}
],
"webhook_url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Calling out through your own Telnyx account is switched off for this workspace. Contact Yappr support.",
"code": "CARRIER_ACCOUNTS_NOT_ENABLED",
"enabled": false
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Carrier accounts
Update Carrier Account
Rename it, or replace its API key or public key. Requires carrier_accounts:manage. Limit: 20 per workspace per day.
PATCH
/
carrier-accounts
/
{id}
Update carrier account
curl --request PATCH \
--url https://api.goyappr.com/carrier-accounts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"api_key": "<string>",
"public_key": "<string>"
}
'import requests
url = "https://api.goyappr.com/carrier-accounts/{id}"
payload = {
"name": "<string>",
"api_key": "<string>",
"public_key": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', api_key: '<string>', public_key: '<string>'})
};
fetch('https://api.goyappr.com/carrier-accounts/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.goyappr.com/carrier-accounts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'api_key' => '<string>',
'public_key' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.goyappr.com/carrier-accounts/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"api_key\": \"<string>\",\n \"public_key\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.goyappr.com/carrier-accounts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"api_key\": \"<string>\",\n \"public_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goyappr.com/carrier-accounts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"api_key\": \"<string>\",\n \"public_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "Main Telnyx account",
"provider": "telnyx",
"api_key_last4": "9XyZ",
"api_key_updated_at": "2023-11-07T05:31:56Z",
"public_key_set": true,
"signature_verified": true,
"connection": {
"id": "2890000000000000001",
"created_by_yappr": true,
"outbound_voice_profile_id": "<string>"
},
"status": "untested",
"pause_reason": "key_rejected",
"last_error": {
"code": "<string>",
"sip_code": "403",
"at": "2023-11-07T05:31:56Z"
},
"last_success_at": "2023-11-07T05:31:56Z",
"last_tested_at": "2023-11-07T05:31:56Z",
"numbers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"number": "+972551234567",
"friendly_name": "<string>",
"provider": "<string>",
"status": "active",
"is_active": true,
"inbound_agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outbound_agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sip_inbound_configured": true,
"sip_outbound_configured": true,
"country_code": "<string>",
"monthly_cost": 123,
"created_at": "2023-11-07T05:31:56Z",
"carrier_account": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "telnyx",
"status": "untested"
},
"ownership_verified_at": "2023-11-07T05:31:56Z"
}
],
"webhook_url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Calling out through your own Telnyx account is switched off for this workspace. Contact Yappr support.",
"code": "CARRIER_ACCOUNTS_NOT_ENABLED",
"enabled": false
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Rename the account, or replace its API key or public key. Send at least one field.
Requires
A new
carrier_accounts:manage.
curl -X PATCH https://api.goyappr.com/carrier-accounts/7c1e… \
-H "Authorization: Bearer ypr_live_..." \
-H "Content-Type: application/json" \
-d '{ "api_key": "KEY0199…new" }'
api_key must be from the same Telnyx account: Yappr checks that it can see
the account’s Call Control App, or answers 422 KEY_ACCOUNT_MISMATCH. Calls already
in progress switch to the new key on their own, so you can switch the old key off in
Telnyx right away.
A new public_key is checked again on the next call event. Until it verifies, call
events are accepted on the account’s secret webhook URL.
Errors
| Status | code | Meaning |
|---|---|---|
| 400 | NOTHING_TO_UPDATE, INVALID_NAME, INVALID_API_KEY, INVALID_PUBLIC_KEY, INVALID_JSON | Fix the field named in error. |
| 404 | CARRIER_ACCOUNT_NOT_FOUND | Not in this workspace. |
| 422 | TELNYX_KEY_REJECTED, KEY_ACCOUNT_MISMATCH, KEY_IS_YAPPR_ACCOUNT | The new key was not accepted. Nothing changed. |
| 429 | RATE_LIMITED | 20 updates in this workspace today. |
| 503 | TELNYX_UNAVAILABLE | Telnyx did not answer. Nothing changed. |
Authorizations
Your Yappr API key (e.g. ypr_live_...). Generate one in the dashboard under Settings → API Keys.
Path Parameters
Body
application/json
Response
Updated
Your own Telnyx account, connected so agents can call from the numbers you own there. Yappr places each call on your Call Control App, with your API key, so the call runs on your Telnyx account and Telnyx bills you for it. The API key is write-only: no response ever contains it.
Show child attributes
Show child attributes