Migration Split
Get Migration Split
Check how much of a V1 pathway’s traffic goes to a V2 agent.
GET
/
v1
/
convo_pathway
/
{pathway_id}
/
migration_split
Get Migration Split
curl --request GET \
--url https://api.bland.ai/v1/convo_pathway/{pathway_id}/migration_split \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/convo_pathway/{pathway_id}/migration_split"
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/convo_pathway/{pathway_id}/migration_split', 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/convo_pathway/{pathway_id}/migration_split",
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/convo_pathway/{pathway_id}/migration_split"
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/convo_pathway/{pathway_id}/migration_split")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/convo_pathway/{pathway_id}/migration_split")
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": {
"migration_split": {
"agent_id": "6f2c8a41-3b7e-4d19-9c55-0e8a1f3b7d24",
"v2_percentage": 25,
"request_policy": "honor",
"updated_at": "2026-11-12T18:04:51.220Z",
"rollout_id": null
}
},
"errors": null
}
{
"data": {
"migration_split": null
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Pathway not found"
}
]
}
Returns the migration split on a V1 pathway, or
Docs for agents: llms.txt
null when the pathway has none. A split sends a share of the pathway’s inbound calls, Send Call requests, and new text conversations to a V2 agent. Set Migration Split describes exactly which traffic it routes. A split at 0% still exists and is returned.
Headers
Path Parameters
The V1 pathway. Must be a UUID of a pathway in your organization. Returns
400 BAD_REQUEST for an invalid UUID, 404 NOT_FOUND for a pathway outside your organization, and 400 BAD_REQUEST for a pathway that Bland compiled from a V2 agent.Response
The pathway’s split, or
null when it has none.Show migration split object
Show migration split object
honor (the request’s call settings win) or agent_owned (the agent’s settings win). See Set Migration Split.ID of the rollout that is moving this pathway’s share, or
null when no rollout is in progress. A paused rollout still counts as in progress. While it is set, a Set Migration Split request with a share above 0 returns 409 ROLLOUT_IN_PROGRESS.{
"data": {
"migration_split": {
"agent_id": "6f2c8a41-3b7e-4d19-9c55-0e8a1f3b7d24",
"v2_percentage": 25,
"request_policy": "honor",
"updated_at": "2026-11-12T18:04:51.220Z",
"rollout_id": null
}
},
"errors": null
}
{
"data": {
"migration_split": null
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Pathway not found"
}
]
}
Docs for agents: llms.txt
Was this page helpful?
⌘I
Get Migration Split
curl --request GET \
--url https://api.bland.ai/v1/convo_pathway/{pathway_id}/migration_split \
--header 'authorization: <authorization>'import requests
url = "https://api.bland.ai/v1/convo_pathway/{pathway_id}/migration_split"
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/convo_pathway/{pathway_id}/migration_split', 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/convo_pathway/{pathway_id}/migration_split",
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/convo_pathway/{pathway_id}/migration_split"
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/convo_pathway/{pathway_id}/migration_split")
.header("authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/convo_pathway/{pathway_id}/migration_split")
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": {
"migration_split": {
"agent_id": "6f2c8a41-3b7e-4d19-9c55-0e8a1f3b7d24",
"v2_percentage": 25,
"request_policy": "honor",
"updated_at": "2026-11-12T18:04:51.220Z",
"rollout_id": null
}
},
"errors": null
}
{
"data": {
"migration_split": null
},
"errors": null
}
{
"data": null,
"errors": [
{
"error": "NOT_FOUND",
"message": "Pathway not found"
}
]
}