Recording
Create recording AI field
Create a recording AI field, evaluated by AI against each recording transcript. The field is owned by the workspace member identified by creatorEmail. The field is evaluated for new recordings going forward; no values are generated for existing recordings.
POST
/
v1
/
recordings
/
fields
cURL
curl --request POST \
--url https://api.claap.io/v1/recordings/fields \
--header 'Content-Type: application/json' \
--header 'X-Claap-Key: <api-key>' \
--data '
{
"title": "Objections raised",
"prompt": {
"outputType": "List",
"prompt": "List the objections raised by the prospect during the call.",
"hasTimecodes": true
},
"creatorEmail": "jsmith@example.com"
}
'import requests
url = "https://api.claap.io/v1/recordings/fields"
payload = {
"title": "Objections raised",
"prompt": {
"outputType": "List",
"prompt": "List the objections raised by the prospect during the call.",
"hasTimecodes": True
},
"creatorEmail": "jsmith@example.com"
}
headers = {
"X-Claap-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Claap-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Objections raised',
prompt: {
outputType: 'List',
prompt: 'List the objections raised by the prospect during the call.',
hasTimecodes: true
},
creatorEmail: 'jsmith@example.com'
})
};
fetch('https://api.claap.io/v1/recordings/fields', 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.claap.io/v1/recordings/fields",
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([
'title' => 'Objections raised',
'prompt' => [
'outputType' => 'List',
'prompt' => 'List the objections raised by the prospect during the call.',
'hasTimecodes' => true
],
'creatorEmail' => 'jsmith@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Claap-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.claap.io/v1/recordings/fields"
payload := strings.NewReader("{\n \"title\": \"Objections raised\",\n \"prompt\": {\n \"outputType\": \"List\",\n \"prompt\": \"List the objections raised by the prospect during the call.\",\n \"hasTimecodes\": true\n },\n \"creatorEmail\": \"jsmith@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Claap-Key", "<api-key>")
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.claap.io/v1/recordings/fields")
.header("X-Claap-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Objections raised\",\n \"prompt\": {\n \"outputType\": \"List\",\n \"prompt\": \"List the objections raised by the prospect during the call.\",\n \"hasTimecodes\": true\n },\n \"creatorEmail\": \"jsmith@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.claap.io/v1/recordings/fields")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Claap-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Objections raised\",\n \"prompt\": {\n \"outputType\": \"List\",\n \"prompt\": \"List the objections raised by the prospect during the call.\",\n \"hasTimecodes\": true\n },\n \"creatorEmail\": \"jsmith@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"result": {
"fieldId": "AiSummarySection#Qh7Kd2Rm9Tz4Vb1Ns6Xa0",
"title": "Objections raised",
"kind": "Field",
"outputType": "List",
"prompt": "List the objections raised by the prospect during the call.",
"hasTimecodes": true,
"authorId": "Xk2Rd7Mv4Bn9Ts1Lq6Wf3",
"createdAt": "2026-05-14T09:30:00Z"
}
}Creates a recording AI field, evaluated by AI against each recording transcript.
creatorEmail must belong to an active workspace member, who becomes the field author. The field is evaluated for new recordings going forward; no values are generated for existing recordings.Authorizations
Body
application/json
The field title.
The prompt evaluated by the AI to fill the field.
Show child attributes
Show child attributes
Email address of the field creator. It must belong to an active workspace member, who becomes the field author.
The CRM property to map the field to. When omitted, the field is not mapped to the CRM.
Show child attributes
Show child attributes
Response
Recording AI field was successfully created
An AI field: a custom prompt with a typed output, evaluated by AI. Usable as an AiSection view column through its fieldId.
Show child attributes
Show child attributes
⌘I
cURL
curl --request POST \
--url https://api.claap.io/v1/recordings/fields \
--header 'Content-Type: application/json' \
--header 'X-Claap-Key: <api-key>' \
--data '
{
"title": "Objections raised",
"prompt": {
"outputType": "List",
"prompt": "List the objections raised by the prospect during the call.",
"hasTimecodes": true
},
"creatorEmail": "jsmith@example.com"
}
'import requests
url = "https://api.claap.io/v1/recordings/fields"
payload = {
"title": "Objections raised",
"prompt": {
"outputType": "List",
"prompt": "List the objections raised by the prospect during the call.",
"hasTimecodes": True
},
"creatorEmail": "jsmith@example.com"
}
headers = {
"X-Claap-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Claap-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Objections raised',
prompt: {
outputType: 'List',
prompt: 'List the objections raised by the prospect during the call.',
hasTimecodes: true
},
creatorEmail: 'jsmith@example.com'
})
};
fetch('https://api.claap.io/v1/recordings/fields', 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.claap.io/v1/recordings/fields",
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([
'title' => 'Objections raised',
'prompt' => [
'outputType' => 'List',
'prompt' => 'List the objections raised by the prospect during the call.',
'hasTimecodes' => true
],
'creatorEmail' => 'jsmith@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Claap-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.claap.io/v1/recordings/fields"
payload := strings.NewReader("{\n \"title\": \"Objections raised\",\n \"prompt\": {\n \"outputType\": \"List\",\n \"prompt\": \"List the objections raised by the prospect during the call.\",\n \"hasTimecodes\": true\n },\n \"creatorEmail\": \"jsmith@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Claap-Key", "<api-key>")
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.claap.io/v1/recordings/fields")
.header("X-Claap-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Objections raised\",\n \"prompt\": {\n \"outputType\": \"List\",\n \"prompt\": \"List the objections raised by the prospect during the call.\",\n \"hasTimecodes\": true\n },\n \"creatorEmail\": \"jsmith@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.claap.io/v1/recordings/fields")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Claap-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Objections raised\",\n \"prompt\": {\n \"outputType\": \"List\",\n \"prompt\": \"List the objections raised by the prospect during the call.\",\n \"hasTimecodes\": true\n },\n \"creatorEmail\": \"jsmith@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"result": {
"fieldId": "AiSummarySection#Qh7Kd2Rm9Tz4Vb1Ns6Xa0",
"title": "Objections raised",
"kind": "Field",
"outputType": "List",
"prompt": "List the objections raised by the prospect during the call.",
"hasTimecodes": true,
"authorId": "Xk2Rd7Mv4Bn9Ts1Lq6Wf3",
"createdAt": "2026-05-14T09:30:00Z"
}
}