curl --request POST \
--url https://api.heify.com/update-configuration \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"configuration_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"summary": true,
"summary_language": "en",
"custom_summary": "Focus on key decisions and action items.",
"vocabulary": [
"Heify",
"NLP"
],
"extraction_fields": [
{
"name": "sentiment_analysis",
"type": "string",
"description": "Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL."
}
]
}
'import requests
url = "https://api.heify.com/update-configuration"
payload = {
"configuration_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"summary": True,
"summary_language": "en",
"custom_summary": "Focus on key decisions and action items.",
"vocabulary": ["Heify", "NLP"],
"extraction_fields": [
{
"name": "sentiment_analysis",
"type": "string",
"description": "Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL."
}
]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
configuration_id: 'a1b2c3d4-e5f6-7890-1234-567890abcdef',
summary: true,
summary_language: 'en',
custom_summary: 'Focus on key decisions and action items.',
vocabulary: ['Heify', 'NLP'],
extraction_fields: [
{
name: 'sentiment_analysis',
type: 'string',
description: 'Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.'
}
]
})
};
fetch('https://api.heify.com/update-configuration', 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.heify.com/update-configuration",
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([
'configuration_id' => 'a1b2c3d4-e5f6-7890-1234-567890abcdef',
'summary' => true,
'summary_language' => 'en',
'custom_summary' => 'Focus on key decisions and action items.',
'vocabulary' => [
'Heify',
'NLP'
],
'extraction_fields' => [
[
'name' => 'sentiment_analysis',
'type' => 'string',
'description' => 'Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.heify.com/update-configuration"
payload := strings.NewReader("{\n \"configuration_id\": \"a1b2c3d4-e5f6-7890-1234-567890abcdef\",\n \"summary\": true,\n \"summary_language\": \"en\",\n \"custom_summary\": \"Focus on key decisions and action items.\",\n \"vocabulary\": [\n \"Heify\",\n \"NLP\"\n ],\n \"extraction_fields\": [\n {\n \"name\": \"sentiment_analysis\",\n \"type\": \"string\",\n \"description\": \"Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-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.heify.com/update-configuration")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"configuration_id\": \"a1b2c3d4-e5f6-7890-1234-567890abcdef\",\n \"summary\": true,\n \"summary_language\": \"en\",\n \"custom_summary\": \"Focus on key decisions and action items.\",\n \"vocabulary\": [\n \"Heify\",\n \"NLP\"\n ],\n \"extraction_fields\": [\n {\n \"name\": \"sentiment_analysis\",\n \"type\": \"string\",\n \"description\": \"Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heify.com/update-configuration")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"configuration_id\": \"a1b2c3d4-e5f6-7890-1234-567890abcdef\",\n \"summary\": true,\n \"summary_language\": \"en\",\n \"custom_summary\": \"Focus on key decisions and action items.\",\n \"vocabulary\": [\n \"Heify\",\n \"NLP\"\n ],\n \"extraction_fields\": [\n {\n \"name\": \"sentiment_analysis\",\n \"type\": \"string\",\n \"description\": \"Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"message": "Configuration updated successfully.",
"configuration": {
"client_id": "client-12345",
"configuration_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"tag": "Customer Support - Technical Issues",
"vocabulary": [
"Heify",
"NLP"
],
"extraction_fields": [
{
"name": "sentiment_analysis",
"type": "string",
"description": "Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL."
}
],
"webhooks": null,
"summary": true,
"custom_summary": "Focus on key decisions and action items.",
"summary_language": "en",
"analytics_language": "df",
"created_at": "2025-01-15T10:00:00.000000+00:00"
}
}
}Update Configuration
Partially update an existing configuration. Only fields included in the request body are modified.
curl --request POST \
--url https://api.heify.com/update-configuration \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"configuration_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"summary": true,
"summary_language": "en",
"custom_summary": "Focus on key decisions and action items.",
"vocabulary": [
"Heify",
"NLP"
],
"extraction_fields": [
{
"name": "sentiment_analysis",
"type": "string",
"description": "Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL."
}
]
}
'import requests
url = "https://api.heify.com/update-configuration"
payload = {
"configuration_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"summary": True,
"summary_language": "en",
"custom_summary": "Focus on key decisions and action items.",
"vocabulary": ["Heify", "NLP"],
"extraction_fields": [
{
"name": "sentiment_analysis",
"type": "string",
"description": "Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL."
}
]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
configuration_id: 'a1b2c3d4-e5f6-7890-1234-567890abcdef',
summary: true,
summary_language: 'en',
custom_summary: 'Focus on key decisions and action items.',
vocabulary: ['Heify', 'NLP'],
extraction_fields: [
{
name: 'sentiment_analysis',
type: 'string',
description: 'Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.'
}
]
})
};
fetch('https://api.heify.com/update-configuration', 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.heify.com/update-configuration",
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([
'configuration_id' => 'a1b2c3d4-e5f6-7890-1234-567890abcdef',
'summary' => true,
'summary_language' => 'en',
'custom_summary' => 'Focus on key decisions and action items.',
'vocabulary' => [
'Heify',
'NLP'
],
'extraction_fields' => [
[
'name' => 'sentiment_analysis',
'type' => 'string',
'description' => 'Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.heify.com/update-configuration"
payload := strings.NewReader("{\n \"configuration_id\": \"a1b2c3d4-e5f6-7890-1234-567890abcdef\",\n \"summary\": true,\n \"summary_language\": \"en\",\n \"custom_summary\": \"Focus on key decisions and action items.\",\n \"vocabulary\": [\n \"Heify\",\n \"NLP\"\n ],\n \"extraction_fields\": [\n {\n \"name\": \"sentiment_analysis\",\n \"type\": \"string\",\n \"description\": \"Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-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.heify.com/update-configuration")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"configuration_id\": \"a1b2c3d4-e5f6-7890-1234-567890abcdef\",\n \"summary\": true,\n \"summary_language\": \"en\",\n \"custom_summary\": \"Focus on key decisions and action items.\",\n \"vocabulary\": [\n \"Heify\",\n \"NLP\"\n ],\n \"extraction_fields\": [\n {\n \"name\": \"sentiment_analysis\",\n \"type\": \"string\",\n \"description\": \"Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heify.com/update-configuration")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"configuration_id\": \"a1b2c3d4-e5f6-7890-1234-567890abcdef\",\n \"summary\": true,\n \"summary_language\": \"en\",\n \"custom_summary\": \"Focus on key decisions and action items.\",\n \"vocabulary\": [\n \"Heify\",\n \"NLP\"\n ],\n \"extraction_fields\": [\n {\n \"name\": \"sentiment_analysis\",\n \"type\": \"string\",\n \"description\": \"Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL.\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"message": "Configuration updated successfully.",
"configuration": {
"client_id": "client-12345",
"configuration_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
"tag": "Customer Support - Technical Issues",
"vocabulary": [
"Heify",
"NLP"
],
"extraction_fields": [
{
"name": "sentiment_analysis",
"type": "string",
"description": "Classify the sentiment as POSITIVE, NEGATIVE, or NEUTRAL."
}
],
"webhooks": null,
"summary": true,
"custom_summary": "Focus on key decisions and action items.",
"summary_language": "en",
"analytics_language": "df",
"created_at": "2025-01-15T10:00:00.000000+00:00"
}
}
}configuration_id is required; include only the fields you want to change.extraction_fields is not a simple replacement — it uses a merge-by-name strategy. Any existing field not included in your request will be removed. Always send the complete desired list of fields, not just the ones you’re changing.type of an existing extraction field cannot be changed. Attempting to do so returns a 400 error. To change a field type, delete and recreate the configuration.tag cannot be updated — it is immutable after creation. See Configuration.vocabulary and webhooks are fully replaced by whatever you send. To remove webhooks entirely, pass "webhooks": null.404 if the configuration is not found.Authorizations
Body
The unique identifier of the configuration to update.
Full replacement. Replaces the entire existing vocabulary list. Example: ["Heify", "NLP", "SLA"].
Merge-by-name strategy. Existing fields can have their description updated but their type is immutable. New fields (name not already present) must include type and description. Fields not included in this list are removed. Maximum 10 fields total.
10Show child attributes
Show child attributes
Full replacement. Pass null to remove webhooks entirely.
Show child attributes
Show child attributes
Enable or disable automatic AI summary generation.
Custom prompt guiding the AI summary. Pass null to clear. Only applies when summary is true.
300Language for the generated summary. Use "df" for auto-detect. See Supported Languages.
Language for analytics reports. Use "df" for auto-detect. See Supported Languages.
Response
Configuration updated successfully. Returns the full updated configuration object.
Show child attributes
Show child attributes