Update Action
curl --request PUT \
--url https://api.eqho.ai/v1/actions/{action_id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'x-org-id: <api-key>' \
--data @- <<EOF
{
"name": "<string>",
"slug": "<string>",
"instructions": "<string>",
"settings": {},
"messages": {
"start": "[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it's done. Do not call this function again until you receive the result.]",
"completed": "[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}",
"failed": "[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}",
"delayed": "[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]",
"timed_out": "[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]",
"cancelled": "[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]"
},
"minimum_execution_time_milliseconds": 123,
"delayed_timing_milliseconds": 123,
"is_async": false,
"non_live_llm_settings": {
"model": "gpt-4o-mini",
"temperature": 0
},
"execution_type": "live",
"response_mode": "interactive",
"execution_order": 123,
"execution_mode": "foreground",
"result_delivery_mode": "when_idle",
"timeout_seconds": 30,
"timeout_mode": "notify",
"cancellable": true
}
EOFimport requests
url = "https://api.eqho.ai/v1/actions/{action_id}"
payload = {
"name": "<string>",
"slug": "<string>",
"instructions": "<string>",
"settings": {},
"messages": {
"start": "[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it's done. Do not call this function again until you receive the result.]",
"completed": "[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}",
"failed": "[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}",
"delayed": "[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]",
"timed_out": "[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]",
"cancelled": "[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]"
},
"minimum_execution_time_milliseconds": 123,
"delayed_timing_milliseconds": 123,
"is_async": False,
"non_live_llm_settings": {
"model": "gpt-4o-mini",
"temperature": 0
},
"execution_type": "live",
"response_mode": "interactive",
"execution_order": 123,
"execution_mode": "foreground",
"result_delivery_mode": "when_idle",
"timeout_seconds": 30,
"timeout_mode": "notify",
"cancellable": True
}
headers = {
"X-API-KEY": "<api-key>",
"x-org-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'X-API-KEY': '<api-key>',
'x-org-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
slug: '<string>',
instructions: '<string>',
settings: {},
messages: {
start: '[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it\'s done. Do not call this function again until you receive the result.]',
completed: '[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}',
failed: '[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}',
delayed: '[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]',
timed_out: '[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]',
cancelled: '[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]'
},
minimum_execution_time_milliseconds: 123,
delayed_timing_milliseconds: 123,
is_async: false,
non_live_llm_settings: {model: 'gpt-4o-mini', temperature: 0},
execution_type: 'live',
response_mode: 'interactive',
execution_order: 123,
execution_mode: 'foreground',
result_delivery_mode: 'when_idle',
timeout_seconds: 30,
timeout_mode: 'notify',
cancellable: true
})
};
fetch('https://api.eqho.ai/v1/actions/{action_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eqho.ai/v1/actions/{action_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"instructions\": \"<string>\",\n \"settings\": {},\n \"messages\": {\n \"start\": \"[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it's done. Do not call this function again until you receive the result.]\",\n \"completed\": \"[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}\",\n \"failed\": \"[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}\",\n \"delayed\": \"[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]\",\n \"timed_out\": \"[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]\",\n \"cancelled\": \"[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]\"\n },\n \"minimum_execution_time_milliseconds\": 123,\n \"delayed_timing_milliseconds\": 123,\n \"is_async\": false,\n \"non_live_llm_settings\": {\n \"model\": \"gpt-4o-mini\",\n \"temperature\": 0\n },\n \"execution_type\": \"live\",\n \"response_mode\": \"interactive\",\n \"execution_order\": 123,\n \"execution_mode\": \"foreground\",\n \"result_delivery_mode\": \"when_idle\",\n \"timeout_seconds\": 30,\n \"timeout_mode\": \"notify\",\n \"cancellable\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("x-org-id", "<api-key>")
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))
}{
"name": "<string>",
"slug": "<string>",
"instructions": "<string>",
"type": "call_transfer",
"settings": {},
"messages": {
"start": "[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it's done. Do not call this function again until you receive the result.]",
"completed": "[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}",
"failed": "[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}",
"delayed": "[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]",
"timed_out": "[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]",
"cancelled": "[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]"
},
"minimum_execution_time_milliseconds": 123,
"delayed_timing_milliseconds": 123,
"is_async": false,
"non_live_llm_settings": {
"model": "gpt-4o-mini",
"temperature": 0,
"reasoning": "none"
},
"execution_type": "live",
"response_mode": "interactive",
"execution_order": 123,
"execution_mode": "foreground",
"result_delivery_mode": "when_idle",
"timeout_seconds": 30,
"timeout_mode": "notify",
"cancellable": true,
"id": "<string>",
"account_id": "<string>",
"enabled": true,
"history": {
"last_modified_at": "2023-11-07T05:31:56Z",
"revision": 0,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "unknown",
"last_modified_by": "unknown"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Actions
Update Action
PUT
/
v1
/
actions
/
{action_id}
Update Action
curl --request PUT \
--url https://api.eqho.ai/v1/actions/{action_id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'x-org-id: <api-key>' \
--data @- <<EOF
{
"name": "<string>",
"slug": "<string>",
"instructions": "<string>",
"settings": {},
"messages": {
"start": "[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it's done. Do not call this function again until you receive the result.]",
"completed": "[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}",
"failed": "[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}",
"delayed": "[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]",
"timed_out": "[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]",
"cancelled": "[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]"
},
"minimum_execution_time_milliseconds": 123,
"delayed_timing_milliseconds": 123,
"is_async": false,
"non_live_llm_settings": {
"model": "gpt-4o-mini",
"temperature": 0
},
"execution_type": "live",
"response_mode": "interactive",
"execution_order": 123,
"execution_mode": "foreground",
"result_delivery_mode": "when_idle",
"timeout_seconds": 30,
"timeout_mode": "notify",
"cancellable": true
}
EOFimport requests
url = "https://api.eqho.ai/v1/actions/{action_id}"
payload = {
"name": "<string>",
"slug": "<string>",
"instructions": "<string>",
"settings": {},
"messages": {
"start": "[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it's done. Do not call this function again until you receive the result.]",
"completed": "[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}",
"failed": "[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}",
"delayed": "[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]",
"timed_out": "[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]",
"cancelled": "[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]"
},
"minimum_execution_time_milliseconds": 123,
"delayed_timing_milliseconds": 123,
"is_async": False,
"non_live_llm_settings": {
"model": "gpt-4o-mini",
"temperature": 0
},
"execution_type": "live",
"response_mode": "interactive",
"execution_order": 123,
"execution_mode": "foreground",
"result_delivery_mode": "when_idle",
"timeout_seconds": 30,
"timeout_mode": "notify",
"cancellable": True
}
headers = {
"X-API-KEY": "<api-key>",
"x-org-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'X-API-KEY': '<api-key>',
'x-org-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
slug: '<string>',
instructions: '<string>',
settings: {},
messages: {
start: '[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it\'s done. Do not call this function again until you receive the result.]',
completed: '[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}',
failed: '[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}',
delayed: '[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]',
timed_out: '[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]',
cancelled: '[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]'
},
minimum_execution_time_milliseconds: 123,
delayed_timing_milliseconds: 123,
is_async: false,
non_live_llm_settings: {model: 'gpt-4o-mini', temperature: 0},
execution_type: 'live',
response_mode: 'interactive',
execution_order: 123,
execution_mode: 'foreground',
result_delivery_mode: 'when_idle',
timeout_seconds: 30,
timeout_mode: 'notify',
cancellable: true
})
};
fetch('https://api.eqho.ai/v1/actions/{action_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eqho.ai/v1/actions/{action_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"instructions\": \"<string>\",\n \"settings\": {},\n \"messages\": {\n \"start\": \"[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it's done. Do not call this function again until you receive the result.]\",\n \"completed\": \"[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}\",\n \"failed\": \"[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}\",\n \"delayed\": \"[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]\",\n \"timed_out\": \"[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]\",\n \"cancelled\": \"[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]\"\n },\n \"minimum_execution_time_milliseconds\": 123,\n \"delayed_timing_milliseconds\": 123,\n \"is_async\": false,\n \"non_live_llm_settings\": {\n \"model\": \"gpt-4o-mini\",\n \"temperature\": 0\n },\n \"execution_type\": \"live\",\n \"response_mode\": \"interactive\",\n \"execution_order\": 123,\n \"execution_mode\": \"foreground\",\n \"result_delivery_mode\": \"when_idle\",\n \"timeout_seconds\": 30,\n \"timeout_mode\": \"notify\",\n \"cancellable\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("x-org-id", "<api-key>")
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))
}{
"name": "<string>",
"slug": "<string>",
"instructions": "<string>",
"type": "call_transfer",
"settings": {},
"messages": {
"start": "[{{action.function_name}} (id: {{action.execution_id}}) is being processed, continue conversation in a nice manner, you will be notified when it's done. Do not call this function again until you receive the result.]",
"completed": "[{{action.function_name}} (id: {{action.execution_id}}) is done] result: {{action.result}}",
"failed": "[{{action.function_name}} (id: {{action.execution_id}}) has failed.] error: {{action.error}}",
"delayed": "[{{action.function_name}} (id: {{action.execution_id}}) has been delayed.]",
"timed_out": "[{{action.function_name}} (id: {{action.execution_id}}) timed out after {{action.timeout_seconds}}s]",
"cancelled": "[{{action.function_name}} (id: {{action.execution_id}}) has been cancelled.]"
},
"minimum_execution_time_milliseconds": 123,
"delayed_timing_milliseconds": 123,
"is_async": false,
"non_live_llm_settings": {
"model": "gpt-4o-mini",
"temperature": 0,
"reasoning": "none"
},
"execution_type": "live",
"response_mode": "interactive",
"execution_order": 123,
"execution_mode": "foreground",
"result_delivery_mode": "when_idle",
"timeout_seconds": 30,
"timeout_mode": "notify",
"cancellable": true,
"id": "<string>",
"account_id": "<string>",
"enabled": true,
"history": {
"last_modified_at": "2023-11-07T05:31:56Z",
"revision": 0,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "unknown",
"last_modified_by": "unknown"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
APIKeyHeader & OrgImpersonationOAuth2PasswordBearer & OrgImpersonation
Your API key for authentication.
Org impersonation via x-org-id. Superadmins may impersonate any org; admins may impersonate their direct sub-organizations. Enter the target organization ID to act as that org.
Path Parameters
Required string length:
24Body
application/json
Available options:
call_transfer, terminate_call, skip_turn, email, text, webhook, http_request, gcal_appointment_schedule, gcal_check_busy_time, gcal_get_free_slots, gcal_fetch_appointments, gcal_cancel_appointment, gcal_update_appointment, data_extraction, set_lead_email, set_lead_names, set_lead_timezone, mcp, llm_call Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
live, postcall, on_call_start, on_before_transfer Available options:
interactive, silent Available options:
foreground, background Available options:
when_idle, interrupt, next_turn, silent Available options:
notify, silent Response
Successful Response
Available options:
call_transfer, terminate_call, skip_turn, email, text, webhook, http_request, gcal_appointment_schedule, gcal_check_busy_time, gcal_get_free_slots, gcal_fetch_appointments, gcal_cancel_appointment, gcal_update_appointment, data_extraction, set_lead_email, set_lead_names, set_lead_timezone, mcp, llm_call Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
live, postcall, on_call_start, on_before_transfer Available options:
interactive, silent Available options:
foreground, background Available options:
when_idle, interrupt, next_turn, silent Available options:
notify, silent Show child attributes
Show child attributes
Was this page helpful?