Add User to Memory
curl --request POST \
--url https://api.bland.ai/v1/memory/{memory_id}/add-user \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"phone_number": "<string>",
"metadata": "<string>",
"summary": "<string>",
"external_memory_key": "<string>"
}
'import requests
url = "https://api.bland.ai/v1/memory/{memory_id}/add-user"
payload = {
"phone_number": "<string>",
"metadata": "<string>",
"summary": "<string>",
"external_memory_key": "<string>"
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone_number: '<string>',
metadata: '<string>',
summary: '<string>',
external_memory_key: '<string>'
})
};
fetch('https://api.bland.ai/v1/memory/{memory_id}/add-user', 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/{memory_id}/add-user",
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([
'phone_number' => '<string>',
'metadata' => '<string>',
'summary' => '<string>',
'external_memory_key' => '<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/{memory_id}/add-user"
payload := strings.NewReader("{\n \"phone_number\": \"<string>\",\n \"metadata\": \"<string>\",\n \"summary\": \"<string>\",\n \"external_memory_key\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.bland.ai/v1/memory/{memory_id}/add-user")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"phone_number\": \"<string>\",\n \"metadata\": \"<string>\",\n \"summary\": \"<string>\",\n \"external_memory_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/memory/{memory_id}/add-user")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone_number\": \"<string>\",\n \"metadata\": \"<string>\",\n \"summary\": \"<string>\",\n \"external_memory_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"phone_number": "+12345678900",
"metadata": "25 year old customer",
"summary": "The user described their age"
}
{
"data": {
"message": "User added to memory successfully",
"user": {
"id": "11111111-2222-3333-4444-555566667777",
"memory_id": "12345678-1234-1234-1234-123456789012",
"phone_number": "+12345678900",
"metadata": "25 year old customer",
"summary": "The user described their age",
"created_at": "2025-07-22T05:26:49.139Z",
"call_count": 0,
"last_call_at": null
}
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "MEMORY_ADD_USER_ERROR",
"message": "Failed to add user to memory."
}
]
}
User Management
Add User to Memory
Add a new user/phone number to an existing memory.
POST
/
v1
/
memory
/
{memory_id}
/
add-user
Add User to Memory
curl --request POST \
--url https://api.bland.ai/v1/memory/{memory_id}/add-user \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"phone_number": "<string>",
"metadata": "<string>",
"summary": "<string>",
"external_memory_key": "<string>"
}
'import requests
url = "https://api.bland.ai/v1/memory/{memory_id}/add-user"
payload = {
"phone_number": "<string>",
"metadata": "<string>",
"summary": "<string>",
"external_memory_key": "<string>"
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone_number: '<string>',
metadata: '<string>',
summary: '<string>',
external_memory_key: '<string>'
})
};
fetch('https://api.bland.ai/v1/memory/{memory_id}/add-user', 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/{memory_id}/add-user",
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([
'phone_number' => '<string>',
'metadata' => '<string>',
'summary' => '<string>',
'external_memory_key' => '<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/{memory_id}/add-user"
payload := strings.NewReader("{\n \"phone_number\": \"<string>\",\n \"metadata\": \"<string>\",\n \"summary\": \"<string>\",\n \"external_memory_key\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.bland.ai/v1/memory/{memory_id}/add-user")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"phone_number\": \"<string>\",\n \"metadata\": \"<string>\",\n \"summary\": \"<string>\",\n \"external_memory_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/memory/{memory_id}/add-user")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone_number\": \"<string>\",\n \"metadata\": \"<string>\",\n \"summary\": \"<string>\",\n \"external_memory_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"phone_number": "+12345678900",
"metadata": "25 year old customer",
"summary": "The user described their age"
}
{
"data": {
"message": "User added to memory successfully",
"user": {
"id": "11111111-2222-3333-4444-555566667777",
"memory_id": "12345678-1234-1234-1234-123456789012",
"phone_number": "+12345678900",
"metadata": "25 year old customer",
"summary": "The user described their age",
"created_at": "2025-07-22T05:26:49.139Z",
"call_count": 0,
"last_call_at": null
}
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "MEMORY_ADD_USER_ERROR",
"message": "Failed to add user to memory."
}
]
}
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The unique identifier of the memory to add the user to.
Body Parameters
string
required
The phone number of the user to add to the memory.
string
Custom metadata text to associate with this user in the memory.
string
Initial summary text for this user’s interactions.
string
Optional external key for additional memory validation or cross-referencing.
Response
object
Response data confirming user addition.
string
Success message confirming user was added to memory.
object
The user object that was added to the memory.
string
Unique identifier for the user entry in the memory.
string
The memory identifier this user was added to.
string
The phone number that was added.
string
The metadata text associated with this user.
string
The summary text for this user.
string
ISO timestamp when this user was added to the memory.
number
Number of calls associated with this user.
string|null
ISO timestamp of the most recent call, or null if no calls yet.
null
Error array (null on success).
{
"phone_number": "+12345678900",
"metadata": "25 year old customer",
"summary": "The user described their age"
}
{
"data": {
"message": "User added to memory successfully",
"user": {
"id": "11111111-2222-3333-4444-555566667777",
"memory_id": "12345678-1234-1234-1234-123456789012",
"phone_number": "+12345678900",
"metadata": "25 year old customer",
"summary": "The user described their age",
"created_at": "2025-07-22T05:26:49.139Z",
"call_count": 0,
"last_call_at": null
}
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "MEMORY_ADD_USER_ERROR",
"message": "Failed to add user to memory."
}
]
}
Notes
- If the phone number already exists in the memory, this endpoint will error with a
MEMORY_ADD_USER_ERROR - Metadata can be any text string relevant to your use case
- The summary will be enhanced over time as more calls are added to this user’s record
Docs for agents: llms.txt
Was this page helpful?
⌘I