Get conversation details
curl --request GET \
--url https://api.coval.dev/v1/conversations/uploaded/{conversation_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coval.dev/v1/conversations/uploaded/{conversation_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.coval.dev/v1/conversations/uploaded/{conversation_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.coval.dev/v1/conversations/uploaded/{conversation_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coval.dev/v1/conversations/uploaded/{conversation_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.coval.dev/v1/conversations/uploaded/{conversation_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/conversations/uploaded/{conversation_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"uploaded_conversation": {
"name": "conversations/gk3jK9mPq2xRt5vW8yZaBc",
"conversation_id": "gk3jK9mPq2xRt5vW8yZaBc",
"status": "COMPLETED",
"create_time": "2025-11-03T14:32:30Z",
"external_conversation_id": "external-call-7x8z9a",
"occurred_at": "2025-11-03T14:32:00Z",
"has_audio": true,
"agent_id": null,
"persona_id": null,
"progress": {
"total_metrics": 5,
"completed_metrics": 5,
"failed_metrics": 0,
"in_progress_metrics": 0
},
"metadata": {
"campaign": "q4-support",
"channel": "phone",
"customer_tier": "premium"
},
"metric_ids": [
"29BlkepvvX19ebbLDB0y6Q",
"mymKvEg6ZA65srXbTX5wSM",
"fstokU4ev5UmT8sUBexiwV"
],
"error": null
}
}
Uploaded Conversations
Get conversation details
Retrieve detailed information about a specific conversation in the authenticated workspace. Conversations in another workspace return 404. Only the default workspace can include legacy conversations without a workspace.
GET
/
conversations
/
uploaded
/
{conversation_id}
Get conversation details
curl --request GET \
--url https://api.coval.dev/v1/conversations/uploaded/{conversation_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coval.dev/v1/conversations/uploaded/{conversation_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.coval.dev/v1/conversations/uploaded/{conversation_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.coval.dev/v1/conversations/uploaded/{conversation_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coval.dev/v1/conversations/uploaded/{conversation_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.coval.dev/v1/conversations/uploaded/{conversation_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/conversations/uploaded/{conversation_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"uploaded_conversation": {
"name": "conversations/gk3jK9mPq2xRt5vW8yZaBc",
"conversation_id": "gk3jK9mPq2xRt5vW8yZaBc",
"status": "COMPLETED",
"create_time": "2025-11-03T14:32:30Z",
"external_conversation_id": "external-call-7x8z9a",
"occurred_at": "2025-11-03T14:32:00Z",
"has_audio": true,
"agent_id": null,
"persona_id": null,
"progress": {
"total_metrics": 5,
"completed_metrics": 5,
"failed_metrics": 0,
"in_progress_metrics": 0
},
"metadata": {
"campaign": "q4-support",
"channel": "phone",
"customer_tier": "premium"
},
"metric_ids": [
"29BlkepvvX19ebbLDB0y6Q",
"mymKvEg6ZA65srXbTX5wSM",
"fstokU4ev5UmT8sUBexiwV"
],
"error": null
}
}
Authorizations
API key for authentication.
Headers
Workspace that scopes this read. When omitted, the organization's active default workspace is used when one can be resolved. The default workspace includes legacy conversations without a workspace; other workspaces require an exact match.
Required string length:
1 - 26Path Parameters
Unique conversation identifier (22-26 characters)
Required string length:
22 - 26Query Parameters
Include progress tracking information
Response
Conversation details
Conversation resource object.
Show child attributes
Show child attributes
Was this page helpful?