Update Conversation Summary
curl --request PATCH \
--url https://api.bland.ai/v1/memory/contact/{memory_id}/summary \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"summary": "<string>"
}
'import requests
url = "https://api.bland.ai/v1/memory/contact/{memory_id}/summary"
payload = { "summary": "<string>" }
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({summary: '<string>'})
};
fetch('https://api.bland.ai/v1/memory/contact/{memory_id}/summary', 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.bland.ai/v1/memory/contact/{memory_id}/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'summary' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <authorization>"
],
]);
$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.bland.ai/v1/memory/contact/{memory_id}/summary"
payload := strings.NewReader("{\n \"summary\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("authorization", "<authorization>")
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.patch("https://api.bland.ai/v1/memory/contact/{memory_id}/summary")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"summary\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/memory/contact/{memory_id}/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"summary\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "mem-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"org_id": "11111111-2222-3333-4444-555555555555",
"contact_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"persona_id": "persona-12345678",
"agent_number": null,
"summary": "Customer is a premium plan subscriber. Recently inquired about order #12345 which is in transit. Preferred contact method is phone. Located in EST timezone.",
"summary_updated_at": "2025-07-22T16:00:00.000Z",
"facts": {
"name": "John Doe"
},
"recent_messages": [...],
"created_at": "2025-07-20T10:30:00.000Z",
"updated_at": "2025-07-22T16:00:00.000Z"
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "BAD_REQUEST",
"message": "summary is required"
}
]
}
Memory
Update Conversation Summary
Overwrite the conversation summary for a contact memory. The summary is a plain-text overview of past interactions that the agent uses for context at the start of each conversation.
PATCH
/
v1
/
memory
/
contact
/
{memory_id}
/
summary
Update Conversation Summary
curl --request PATCH \
--url https://api.bland.ai/v1/memory/contact/{memory_id}/summary \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"summary": "<string>"
}
'import requests
url = "https://api.bland.ai/v1/memory/contact/{memory_id}/summary"
payload = { "summary": "<string>" }
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({summary: '<string>'})
};
fetch('https://api.bland.ai/v1/memory/contact/{memory_id}/summary', 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.bland.ai/v1/memory/contact/{memory_id}/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'summary' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <authorization>"
],
]);
$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.bland.ai/v1/memory/contact/{memory_id}/summary"
payload := strings.NewReader("{\n \"summary\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("authorization", "<authorization>")
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.patch("https://api.bland.ai/v1/memory/contact/{memory_id}/summary")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"summary\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/memory/contact/{memory_id}/summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"summary\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "mem-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"org_id": "11111111-2222-3333-4444-555555555555",
"contact_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"persona_id": "persona-12345678",
"agent_number": null,
"summary": "Customer is a premium plan subscriber. Recently inquired about order #12345 which is in transit. Preferred contact method is phone. Located in EST timezone.",
"summary_updated_at": "2025-07-22T16:00:00.000Z",
"facts": {
"name": "John Doe"
},
"recent_messages": [...],
"created_at": "2025-07-20T10:30:00.000Z",
"updated_at": "2025-07-22T16:00:00.000Z"
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "BAD_REQUEST",
"message": "summary is required"
}
]
}
Headers
Your API key for authentication.
Path Parameters
The unique identifier of the contact memory record.
Body Parameters
The new summary text. This replaces the existing summary.
Response
The updated contact memory object.
Unique identifier for the contact memory.
The updated summary.
ISO timestamp when the summary was last updated.
Error array (null on success).
{
"data": {
"id": "mem-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"org_id": "11111111-2222-3333-4444-555555555555",
"contact_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"persona_id": "persona-12345678",
"agent_number": null,
"summary": "Customer is a premium plan subscriber. Recently inquired about order #12345 which is in transit. Preferred contact method is phone. Located in EST timezone.",
"summary_updated_at": "2025-07-22T16:00:00.000Z",
"facts": {
"name": "John Doe"
},
"recent_messages": [...],
"created_at": "2025-07-20T10:30:00.000Z",
"updated_at": "2025-07-22T16:00:00.000Z"
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "BAD_REQUEST",
"message": "summary is required"
}
]
}
Docs for agents: llms.txt
Was this page helpful?
⌘I