curl --request POST \
--url https://api.eqho.ai/v1/simulation \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'x-org-id: <api-key>' \
--data '
{
"agent_id": "<string>",
"scenario_ids": [
"<string>"
],
"scenario_set_id": "<string>",
"simulated_lead_llm_args": {
"ai_model": "<string>",
"frequency_penalty": 123,
"max_tokens": 123,
"presence_penalty": 123,
"temperature": 123
},
"num_trials": 1,
"max_steps": 100,
"max_errors": 5
}
'import requests
url = "https://api.eqho.ai/v1/simulation"
payload = {
"agent_id": "<string>",
"scenario_ids": ["<string>"],
"scenario_set_id": "<string>",
"simulated_lead_llm_args": {
"ai_model": "<string>",
"frequency_penalty": 123,
"max_tokens": 123,
"presence_penalty": 123,
"temperature": 123
},
"num_trials": 1,
"max_steps": 100,
"max_errors": 5
}
headers = {
"X-API-KEY": "<api-key>",
"x-org-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'x-org-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
agent_id: '<string>',
scenario_ids: ['<string>'],
scenario_set_id: '<string>',
simulated_lead_llm_args: {
ai_model: '<string>',
frequency_penalty: 123,
max_tokens: 123,
presence_penalty: 123,
temperature: 123
},
num_trials: 1,
max_steps: 100,
max_errors: 5
})
};
fetch('https://api.eqho.ai/v1/simulation', 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/simulation"
payload := strings.NewReader("{\n \"agent_id\": \"<string>\",\n \"scenario_ids\": [\n \"<string>\"\n ],\n \"scenario_set_id\": \"<string>\",\n \"simulated_lead_llm_args\": {\n \"ai_model\": \"<string>\",\n \"frequency_penalty\": 123,\n \"max_tokens\": 123,\n \"presence_penalty\": 123,\n \"temperature\": 123\n },\n \"num_trials\": 1,\n \"max_steps\": 100,\n \"max_errors\": 5\n}")
req, _ := http.NewRequest("POST", 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))
}{
"_id": "<string>",
"account_id": "<string>",
"agent_id": "<string>",
"scenario_ids": [
"<string>"
],
"info": {
"num_trials": 123,
"max_steps": 123,
"max_errors": 123,
"agent_info": {
"agent_id": "<string>",
"ai_settings": {
"ai_model": "<string>",
"frequency_penalty": 123,
"max_tokens": 123,
"presence_penalty": 123,
"temperature": 123,
"reasoning": "none"
}
},
"simulated_lead_info": {
"ai_settings": {
"ai_model": "<string>",
"frequency_penalty": 123,
"max_tokens": 123,
"presence_penalty": 123,
"temperature": 123,
"reasoning": "none"
}
}
},
"total_runs": 123,
"scenario_set_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"completed_runs": 0,
"final_score": 123,
"pass_hat_ks": {},
"avg_agent_cost": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Run Simulation
Run multiple simulation scenarios in a batch
curl --request POST \
--url https://api.eqho.ai/v1/simulation \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'x-org-id: <api-key>' \
--data '
{
"agent_id": "<string>",
"scenario_ids": [
"<string>"
],
"scenario_set_id": "<string>",
"simulated_lead_llm_args": {
"ai_model": "<string>",
"frequency_penalty": 123,
"max_tokens": 123,
"presence_penalty": 123,
"temperature": 123
},
"num_trials": 1,
"max_steps": 100,
"max_errors": 5
}
'import requests
url = "https://api.eqho.ai/v1/simulation"
payload = {
"agent_id": "<string>",
"scenario_ids": ["<string>"],
"scenario_set_id": "<string>",
"simulated_lead_llm_args": {
"ai_model": "<string>",
"frequency_penalty": 123,
"max_tokens": 123,
"presence_penalty": 123,
"temperature": 123
},
"num_trials": 1,
"max_steps": 100,
"max_errors": 5
}
headers = {
"X-API-KEY": "<api-key>",
"x-org-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'x-org-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
agent_id: '<string>',
scenario_ids: ['<string>'],
scenario_set_id: '<string>',
simulated_lead_llm_args: {
ai_model: '<string>',
frequency_penalty: 123,
max_tokens: 123,
presence_penalty: 123,
temperature: 123
},
num_trials: 1,
max_steps: 100,
max_errors: 5
})
};
fetch('https://api.eqho.ai/v1/simulation', 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/simulation"
payload := strings.NewReader("{\n \"agent_id\": \"<string>\",\n \"scenario_ids\": [\n \"<string>\"\n ],\n \"scenario_set_id\": \"<string>\",\n \"simulated_lead_llm_args\": {\n \"ai_model\": \"<string>\",\n \"frequency_penalty\": 123,\n \"max_tokens\": 123,\n \"presence_penalty\": 123,\n \"temperature\": 123\n },\n \"num_trials\": 1,\n \"max_steps\": 100,\n \"max_errors\": 5\n}")
req, _ := http.NewRequest("POST", 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))
}{
"_id": "<string>",
"account_id": "<string>",
"agent_id": "<string>",
"scenario_ids": [
"<string>"
],
"info": {
"num_trials": 123,
"max_steps": 123,
"max_errors": 123,
"agent_info": {
"agent_id": "<string>",
"ai_settings": {
"ai_model": "<string>",
"frequency_penalty": 123,
"max_tokens": 123,
"presence_penalty": 123,
"temperature": 123,
"reasoning": "none"
}
},
"simulated_lead_info": {
"ai_settings": {
"ai_model": "<string>",
"frequency_penalty": 123,
"max_tokens": 123,
"presence_penalty": 123,
"temperature": 123,
"reasoning": "none"
}
}
},
"total_runs": 123,
"scenario_set_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"completed_runs": 0,
"final_score": 123,
"pass_hat_ks": {},
"avg_agent_cost": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
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.
Body
ID of the Agent to run the simulation on
24IDs of the simulation scenarios being run in this simulation. Needed if scenario_set_id is not provided.
24ID of the scenario set to run all scenarios from. Cannot be used together with scenario_ids.
24The model to use for the user
Show child attributes
Show child attributes
The number of trials to run the simulation on.
1 <= x <= 32The maximum number of steps to run the simulation.
1 <= x <= 5000The maximum number of tool errors allowed in a row.
x >= 1Response
Successful Response
The results of a simulation run
Account ID that owns this simulation run
ID of the Agent being simulated
IDs of the Simulation Scenarios being run
Information.
Show child attributes
Show child attributes
The total number of simulation runs in this batch
Scenario set that was used for this simulation
The end time of the simulation.
The number of completed simulation runs
The final score of the simulation. Computed as the average reward over all scenarios.
Average score in trial/pass k
Show child attributes
Show child attributes
The average cost of the agent over all scenarios.
Was this page helpful?