Initiate Call
curl --request POST \
--url https://api.example.com/v1/calls \
--header 'Content-Type: application/json' \
--data '
{
"toNumber": "<string>"
}
'import requests
url = "https://api.example.com/v1/calls"
payload = { "toNumber": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({toNumber: '<string>'})
};
fetch('https://api.example.com/v1/calls', 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.example.com/v1/calls",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'toNumber' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/v1/calls"
payload := strings.NewReader("{\n \"toNumber\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://api.example.com/v1/calls")
.header("Content-Type", "application/json")
.body("{\n \"toNumber\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/calls")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"toNumber\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"callSid": "<string>",
"status": "<string>",
"message": "<string>",
"toNumber": "<string>"
}Calls
Initiate Call
Start a recorded call to a destination number
POST
/
v1
/
calls
Initiate Call
curl --request POST \
--url https://api.example.com/v1/calls \
--header 'Content-Type: application/json' \
--data '
{
"toNumber": "<string>"
}
'import requests
url = "https://api.example.com/v1/calls"
payload = { "toNumber": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({toNumber: '<string>'})
};
fetch('https://api.example.com/v1/calls', 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.example.com/v1/calls",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'toNumber' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/v1/calls"
payload := strings.NewReader("{\n \"toNumber\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://api.example.com/v1/calls")
.header("Content-Type", "application/json")
.body("{\n \"toNumber\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/calls")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"toNumber\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"callSid": "<string>",
"status": "<string>",
"message": "<string>",
"toNumber": "<string>"
}Initiates a call by first calling your registered phone number, then connecting you to the destination. The call is automatically recorded and transcribed.
Request Body
string
required
The destination phone number to call. Can be formatted with or without country code.
Request
curl -X POST "https://app.transcord.app/api/v1/calls" \
-H "Authorization: Bearer tr_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{"toNumber": "+14155551234"}'
const response = await fetch('https://app.transcord.app/api/v1/calls', {
method: 'POST',
headers: {
'Authorization': 'Bearer tr_live_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({ toNumber: '+14155551234' })
});
const data = await response.json();
import requests
response = requests.post(
'https://app.transcord.app/api/v1/calls',
headers={
'Authorization': 'Bearer tr_live_your_api_key',
'Content-Type': 'application/json'
},
json={'toNumber': '+14155551234'}
)
data = response.json()
Response
string
Unique identifier for the call (Twilio Call SID)
string
Call status, will be
initiatedstring
Human-readable status message
string
The formatted destination number
Response
{
"callSid": "CA1234567890abcdef",
"status": "initiated",
"message": "Call initiated. You will receive a call shortly.",
"toNumber": "+14155551234"
}
How It Works
- Transcord calls your registered phone number
- When you answer, you’re connected to the destination number
- The call is recorded in dual-channel format
- After hangup, the recording is transcribed
- You receive an email with the transcript
Requirements
- You must have a phone number registered in your account
- You must have available minutes (subscription or free tier)
- The destination number must not be blocked
Errors
| Status | Description |
|---|---|
400 | Missing toNumber or invalid/blocked number |
401 | Invalid or missing API key |
403 | No minutes remaining |
404 | User not found |