curl --request GET \
--url https://api.coval.dev/v1/conversations/uploaded/{conversation_id}/comments \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coval.dev/v1/conversations/uploaded/{conversation_id}/comments"
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}/comments', 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}/comments",
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}/comments"
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}/comments")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/conversations/uploaded/{conversation_id}/comments")
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{
"comments": [
{
"name": "<string>",
"id": "<string>",
"conversation_id": "<string>",
"content": "<string>",
"message_index": 123,
"selected_text": "<string>",
"text_start_offset": 123,
"text_end_offset": 123,
"created_by": "<string>",
"created_by_name": "<string>",
"create_time": "2023-11-07T05:31:56Z",
"update_time": "2023-11-07T05:31:56Z",
"parent_comment_id": "<string>"
}
],
"next_page_token": "<string>"
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}List uploaded conversation comments
Read transcript comments for this conversation, including conversation-level comments (message_index -1) and threaded replies. These are separate from metric review annotations and reviewer_notes. Results are ordered by create_time then id. Follow next_page_token until null. Pages form a live traversal: newly inserted comments can appear and deleted comments disappear; the export is not a frozen snapshot. Requires comments:read. The authenticated workspace must have access to the conversation and its comments.
curl --request GET \
--url https://api.coval.dev/v1/conversations/uploaded/{conversation_id}/comments \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coval.dev/v1/conversations/uploaded/{conversation_id}/comments"
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}/comments', 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}/comments",
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}/comments"
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}/comments")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/conversations/uploaded/{conversation_id}/comments")
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{
"comments": [
{
"name": "<string>",
"id": "<string>",
"conversation_id": "<string>",
"content": "<string>",
"message_index": 123,
"selected_text": "<string>",
"text_start_offset": 123,
"text_end_offset": 123,
"created_by": "<string>",
"created_by_name": "<string>",
"create_time": "2023-11-07T05:31:56Z",
"update_time": "2023-11-07T05:31:56Z",
"parent_comment_id": "<string>"
}
],
"next_page_token": "<string>"
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Missing required input data",
"details": []
}
}Authorizations
API key for authentication.
Headers
Workspace ID. When omitted, the API resolves the default workspace. Only the default workspace includes legacy comments without workspace attribution.
Path Parameters
ID of the uploaded conversation.
Query Parameters
Maximum comments per page.
1 <= x <= 100Opaque next_page_token from the previous response. Keep the same conversation and workspace.
1 - 4096Was this page helpful?