Get Post Conversation Webhook
curl --request GET \
--url https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook"
headers = {"authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {authorization: '<authorization>'}};
fetch('https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook', 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/sms/conversations/{conversationId}/webhook",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", "<authorization>")
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.bland.ai/v1/sms/conversations/{conversationId}/webhook")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": {
"conversation_id": "convo_abc123",
"url": "https://example.com/sms-webhook",
"payload": {
"type": "status",
"conversation_id": "convo_abc123",
"status": "ended",
"phone_number": "+15550001111",
"agent_number": "+15550002222",
"channel": "sms",
"message_count": 5
},
"created_at": "2026-04-13T20:50:59.233Z",
"user_id": "user_abc123",
"metadata": [
{
"sent_at": "2026-04-13T20:50:59.000Z",
"response_code": 200,
"response_time": "142ms",
"send_type": "spawn"
}
]
},
"errors": null
}
Messaging
Get Post Conversation Webhook
Retrieve the webhook delivery log for an SMS conversation, including the payload, URL, response codes, and timing.
GET
/
v1
/
sms
/
conversations
/
{conversationId}
/
webhook
Get Post Conversation Webhook
curl --request GET \
--url https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook"
headers = {"authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {authorization: '<authorization>'}};
fetch('https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook', 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/sms/conversations/{conversationId}/webhook",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", "<authorization>")
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.bland.ai/v1/sms/conversations/{conversationId}/webhook")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/sms/conversations/{conversationId}/webhook")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"data": {
"conversation_id": "convo_abc123",
"url": "https://example.com/sms-webhook",
"payload": {
"type": "status",
"conversation_id": "convo_abc123",
"status": "ended",
"phone_number": "+15550001111",
"agent_number": "+15550002222",
"channel": "sms",
"message_count": 5
},
"created_at": "2026-04-13T20:50:59.233Z",
"user_id": "user_abc123",
"metadata": [
{
"sent_at": "2026-04-13T20:50:59.000Z",
"response_code": 200,
"response_time": "142ms",
"send_type": "spawn"
}
]
},
"errors": null
}
Enterprise Feature - SMS is only available on Enterprise plans. Contact your Bland representative for access.
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The unique ID of the conversation to retrieve webhook logs for.
Response
object
The webhook log for this conversation, or
null if no webhook has been sent.string
The conversation this webhook log belongs to.
string
The webhook URL that was called.
object
The full webhook payload that was sent.
string
ISO timestamp for when the webhook log was created.
string
The organization ID that owns this conversation.
array
An array of delivery attempt records. Each entry contains:
sent_at— ISO timestamp of the delivery attemptresponse_code— HTTP status code returned by your endpoint, ornullif the request failedresponse_time— how long the request tooksend_type— delivery method (e.g."spawn")error_message— error details if the delivery failed
null|array
null on success, or a list of error objects if a failure occurred.{
"data": {
"conversation_id": "convo_abc123",
"url": "https://example.com/sms-webhook",
"payload": {
"type": "status",
"conversation_id": "convo_abc123",
"status": "ended",
"phone_number": "+15550001111",
"agent_number": "+15550002222",
"channel": "sms",
"message_count": 5
},
"created_at": "2026-04-13T20:50:59.233Z",
"user_id": "user_abc123",
"metadata": [
{
"sent_at": "2026-04-13T20:50:59.000Z",
"response_code": 200,
"response_time": "142ms",
"send_type": "spawn"
}
]
},
"errors": null
}
Docs for agents: llms.txt
Was this page helpful?