Voiceflow bearer token
Create many turns
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/test-turn/batch \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"testID": "<string>",
"turns": [
{
"type": "user",
"payload": {
"response": "<string>",
"variableStates": "<string>"
}
}
]
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/test-turn/batch?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"testID": "<string>",
"turns": [
{
"type": "user",
"payload": {
"response": "<string>",
"variableStates": "<string>"
}
}
]
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/test-turn/batch?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"testID": "<string>",
"turns": [
{
"type": "user",
"payload": {
"response": "<string>",
"variableStates": "<string>"
}
}
]
},
)
data = response.json()vf test turn create-many --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"turns": [
{
"id": "<string>",
"testID": "<string>",
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"type": "user",
"payload": {
"response": "<string>",
"variableStates": "<string>"
}
}
]
}Adds several test turns to its test in one request, each taking the fields the single-create call takes. The response carries the created test turns in the same shape the list call returns.
POST
/v1/stable/test-turn/batch
Create many turns
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/test-turn/batch \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"testID": "<string>",
"turns": [
{
"type": "user",
"payload": {
"response": "<string>",
"variableStates": "<string>"
}
}
]
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/test-turn/batch?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"testID": "<string>",
"turns": [
{
"type": "user",
"payload": {
"response": "<string>",
"variableStates": "<string>"
}
}
]
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/test-turn/batch?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"testID": "<string>",
"turns": [
{
"type": "user",
"payload": {
"response": "<string>",
"variableStates": "<string>"
}
}
]
},
)
data = response.json()vf test turn create-many --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"turns": [
{
"id": "<string>",
"testID": "<string>",
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"type": "user",
"payload": {
"response": "<string>",
"variableStates": "<string>"
}
}
]
}Authorizations
Query Parameters
Body
Show child attributes
Option 1
Show child attributes
Option 2
Option 3
Show child attributes
Show child attributes
Show child attributes
Option 1
string
Option 2
PersonaItem — see its attributes above
Response
201 - application/jsonCreates every turn in the request body against the single test named there and returns them with their assigned IDs. Checks are not part of this call: create them separately against an agent turn's id.
Show child attributes
Option 1
Show child attributes
Show child attributes
Show child attributes
Option 1
string
Option 2
PersonaItem — see its attributes above
Option 2
Show child attributes
Option 3
Show child attributes
Show child attributes
Show child attributes
Option 1
string
Option 2
PersonaItem — see its attributes above
Was this page helpful?
Thanks for your feedback.