Voiceflow bearer token
Create API tool
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/api-tool \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"url": [
"<string>"
],
"name": "<string>",
"body": {
"type": "raw-input",
"contentType": "<APIToolContentType>",
"content": "<CodeText>"
},
"settings": {
"timeoutMs": 0
},
"httpMethod": "get",
"description": "<string>",
"headers": [],
"queryParameters": []
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/api-tool?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"url": [
"<string>"
],
"name": "<string>",
"body": {
"type": "raw-input",
"contentType": "<APIToolContentType>",
"content": "<CodeText>"
},
"settings": {
"timeoutMs": 0
},
"httpMethod": "get",
"description": "<string>",
"headers": [],
"queryParameters": []
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/api-tool?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"url": [
"<string>"
],
"name": "<string>",
"body": {
"type": "raw-input",
"contentType": "<APIToolContentType>",
"content": "<CodeText>"
},
"settings": {
"timeoutMs": 0
},
"httpMethod": "get",
"description": "<string>",
"headers": [],
"queryParameters": []
},
)
data = response.json()vf api-tool create --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"apiTool": {
"id": "<string>",
"name": "<string>",
"url": [
"<string>"
],
"body": "<APIToolRawBody>",
"image": "<string>",
"headers": [
{
"key": "<string>",
"value": "<Markup>"
}
],
"settings": {
"timeoutMs": 0
},
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"httpMethod": "get",
"description": "<string>",
"queryParameters": [
{
"key": "<string>",
"value": "<Markup>"
}
]
}
}Adds a API tool to the environment, a saved HTTP request an agent can make. The response carries the ID that later calls address it by.
POST
/v1/stable/api-tool
Create API tool
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/api-tool \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"url": [
"<string>"
],
"name": "<string>",
"body": {
"type": "raw-input",
"contentType": "<APIToolContentType>",
"content": "<CodeText>"
},
"settings": {
"timeoutMs": 0
},
"httpMethod": "get",
"description": "<string>",
"headers": [],
"queryParameters": []
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/api-tool?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"url": [
"<string>"
],
"name": "<string>",
"body": {
"type": "raw-input",
"contentType": "<APIToolContentType>",
"content": "<CodeText>"
},
"settings": {
"timeoutMs": 0
},
"httpMethod": "get",
"description": "<string>",
"headers": [],
"queryParameters": []
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/api-tool?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"url": [
"<string>"
],
"name": "<string>",
"body": {
"type": "raw-input",
"contentType": "<APIToolContentType>",
"content": "<CodeText>"
},
"settings": {
"timeoutMs": 0
},
"httpMethod": "get",
"description": "<string>",
"headers": [],
"queryParameters": []
},
)
data = response.json()vf api-tool create --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"apiTool": {
"id": "<string>",
"name": "<string>",
"url": [
"<string>"
],
"body": "<APIToolRawBody>",
"image": "<string>",
"headers": [
{
"key": "<string>",
"value": "<Markup>"
}
],
"settings": {
"timeoutMs": 0
},
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"httpMethod": "get",
"description": "<string>",
"queryParameters": [
{
"key": "<string>",
"value": "<Markup>"
}
]
}
}Authorizations
Query Parameters
Body
Response
201 - application/jsonCreates the API tool and returns it in full, including its new ID and the request it will send: HTTP method, URL, headers, query parameters, and body.
Show child attributes
StableAPIHeader — see its attributes above
Available options:
get, put, post, patch, deleteAPIToolHTTPMethodType — see its attributes above
StableAPIQueryParameter — see its attributes above
Was this page helpful?
Thanks for your feedback.