Get backtest run status
curl --request GET \
--url https://api.example.com/api/graph/v1/backtest/{run_id}import requests
url = "https://api.example.com/api/graph/v1/backtest/{run_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/graph/v1/backtest/{run_id}', 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.example.com/api/graph/v1/backtest/{run_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/graph/v1/backtest/{run_id}"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/api/graph/v1/backtest/{run_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/graph/v1/backtest/{run_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"symbols": [
"<string>"
],
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"signal_types": [
"<string>"
],
"stop_atr_mult": 123,
"t1_atr_mult": 123,
"t2_atr_mult": 123,
"t3_atr_mult": 123,
"time_stop_et": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"total_trades": 123,
"win_count": 123,
"loss_count": 123,
"win_rate": 123,
"avg_rr_ratio": 123,
"total_pnl": 123,
"max_drawdown": 123,
"profit_factor": 123,
"sharpe_ratio": 123,
"by_signal_type": [
{
"signal_type": "<string>",
"total_trades": 123,
"win_count": 123,
"loss_count": 123,
"win_rate": 123,
"avg_pnl_r": 123,
"total_pnl": 123,
"expectancy_per_r": 0
}
],
"by_symbol": [
{
"symbol": "<string>",
"total_trades": 123,
"win_count": 123,
"loss_count": 123,
"win_rate": 123,
"total_pnl": 123,
"max_drawdown": 123
}
],
"equity_curve": [
{
"trade_num": 123,
"cumulative_pnl": 123,
"cumulative_r": 123,
"timestamp": "<string>"
}
],
"validation_gate": {
"passed": true,
"criteria": [
{
"name": "<string>",
"description": "<string>",
"threshold": "<string>",
"actual": "<string>",
"passed": true
}
]
},
"progress_pct": 0,
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"error_message": "<string>",
"analysis_result": {
"summary": "<string>",
"signal_insights": [
{
"signal_type": "<string>",
"assessment": "<string>",
"reasoning": "<string>",
"suggestion": "<string>"
}
],
"risk_assessment": "<string>",
"parameter_suggestions": [
"<string>"
],
"edge_quality": "<string>",
"edge_confidence": 50,
"analyzed_at": "<string>",
"tokens_used": 123
},
"position_size": 100,
"slippage_per_share": 0,
"commission_per_share": 0,
"by_exit_reason": [
{}
],
"advanced_metrics": {},
"benchmark_curve": [
{}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Backtest
Get backtest run status
Poll the status and results of a backtest run.
GET
/
api
/
graph
/
v1
/
backtest
/
{run_id}
Get backtest run status
curl --request GET \
--url https://api.example.com/api/graph/v1/backtest/{run_id}import requests
url = "https://api.example.com/api/graph/v1/backtest/{run_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/graph/v1/backtest/{run_id}', 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.example.com/api/graph/v1/backtest/{run_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/graph/v1/backtest/{run_id}"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/api/graph/v1/backtest/{run_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/graph/v1/backtest/{run_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"symbols": [
"<string>"
],
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"signal_types": [
"<string>"
],
"stop_atr_mult": 123,
"t1_atr_mult": 123,
"t2_atr_mult": 123,
"t3_atr_mult": 123,
"time_stop_et": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"total_trades": 123,
"win_count": 123,
"loss_count": 123,
"win_rate": 123,
"avg_rr_ratio": 123,
"total_pnl": 123,
"max_drawdown": 123,
"profit_factor": 123,
"sharpe_ratio": 123,
"by_signal_type": [
{
"signal_type": "<string>",
"total_trades": 123,
"win_count": 123,
"loss_count": 123,
"win_rate": 123,
"avg_pnl_r": 123,
"total_pnl": 123,
"expectancy_per_r": 0
}
],
"by_symbol": [
{
"symbol": "<string>",
"total_trades": 123,
"win_count": 123,
"loss_count": 123,
"win_rate": 123,
"total_pnl": 123,
"max_drawdown": 123
}
],
"equity_curve": [
{
"trade_num": 123,
"cumulative_pnl": 123,
"cumulative_r": 123,
"timestamp": "<string>"
}
],
"validation_gate": {
"passed": true,
"criteria": [
{
"name": "<string>",
"description": "<string>",
"threshold": "<string>",
"actual": "<string>",
"passed": true
}
]
},
"progress_pct": 0,
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"error_message": "<string>",
"analysis_result": {
"summary": "<string>",
"signal_insights": [
{
"signal_type": "<string>",
"assessment": "<string>",
"reasoning": "<string>",
"suggestion": "<string>"
}
],
"risk_assessment": "<string>",
"parameter_suggestions": [
"<string>"
],
"edge_quality": "<string>",
"edge_confidence": 50,
"analyzed_at": "<string>",
"tokens_used": 123
},
"position_size": 100,
"slippage_per_share": 0,
"commission_per_share": 0,
"by_exit_reason": [
{}
],
"advanced_metrics": {},
"benchmark_curve": [
{}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Path Parameters
Response
Run status returned
Full backtest run status and results.
Backtest run lifecycle status.
Available options:
pending, running, completed, failed, cancelled Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Aggregate validation gate result.
Show child attributes
Show child attributes
Structured response from the backtest analysis LLM agent.
Show child attributes
Show child attributes