curl --request POST \
--url https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrichimport requests
url = "https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrich"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrich', 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/action-cards-v2/{card_id}/enrich",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$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/action-cards-v2/{card_id}/enrich"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrich")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrich")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "manual",
"underlying_symbol": "<string>",
"instrument_type": "equity",
"instrument_symbol": "<string>",
"direction": "LONG",
"timeframe": "intraday",
"entry_price": "<string>",
"stop_loss": "<string>",
"targets": [
{
"price": "<string>",
"exit_pct": 50,
"label": "<string>"
}
],
"status": "draft",
"completeness": "skeleton",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"risk_reward": "<string>",
"source_id": "<string>",
"group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"group_role": "<string>",
"contract": {
"symbol": "<string>",
"expiration": "<string>",
"strike": "<string>",
"option_type": "call",
"delta": 123,
"gamma": 123,
"theta": 123,
"vega": 123,
"iv": 123,
"iv_percentile": 123,
"bid": "<string>",
"ask": "<string>",
"mid": "<string>",
"spread_pct": 123,
"oi": 123,
"volume": 123,
"dte": 123
},
"premium_levels": {
"entry": "<string>",
"stop": "<string>",
"t1": "<string>",
"t2": "<string>",
"breakeven": "<string>"
},
"market_context": {
"regime": {
"classification": "<string>",
"confidence": 123,
"vix": 123,
"vix_context": "<string>"
},
"day_type": {
"classification": "<string>",
"confidence": 123,
"size_modifier": 123
},
"confluence": {
"bull": 123,
"bear": 123,
"net": 123,
"tier": "<string>",
"bias": "<string>"
},
"trend": {
"price": 123,
"ema20": 123,
"sma50": 123,
"sma200": 123,
"stack_valid": true
},
"volume": {
"rvol": 123,
"trend": "<string>",
"breakout_node": "<string>"
},
"institutional_levels": {
"vwap": 123,
"ib_high": 123,
"ib_low": 123,
"poc": 123,
"vah": 123,
"val": 123,
"pivots": {}
}
},
"sizing": {
"shares_or_contracts": 123,
"risk_per_unit": "<string>",
"risk_dollars": "<string>",
"position_value": "<string>",
"portfolio_heat_pct": 123,
"day_type_modifier": 123,
"vix_modifier": 123,
"consecutive_loss_modifier": 123
},
"entry_plan": {
"order_type": "<string>",
"limit_price": "<string>",
"trigger_conditions": [
"<string>"
],
"trigger_type": "<string>",
"trigger_level": "<string>",
"entry_zone": {},
"scaling": [
{}
],
"invalidation": "<string>",
"time_window": "<string>"
},
"exit_plan": {
"stop_type": "<string>",
"trail_offset": "<string>",
"time_stop": "<string>",
"partial_targets": [
{}
],
"stop_management": {},
"time_stops": {},
"invalidations": [
{}
]
},
"risk_context": {
"portfolio_heat_before": 123,
"portfolio_heat_after": 123,
"correlated_positions": [
"<string>"
],
"max_daily_loss_used": 123,
"gates_passed": [
"<string>"
],
"gates_failed": [
"<string>"
],
"daily_pnl_pct": 123,
"weekly_pnl_pct": 123,
"open_positions": 123,
"available_slots": 123,
"cleared_to_trade": true
},
"validation": {
"confidence": 123,
"key_risk": "<string>",
"debate_id": "<string>",
"thesis_alignment": "<string>",
"edge_quality": "<string>",
"deciding_factors": [
"<string>"
],
"agent_session_id": "<string>",
"reasoning": "<string>",
"pop": 123,
"pop_source": "<string>",
"pop_sample_size": 123,
"rationale": "<string>"
},
"backtest_edge": {
"total_trades": 123,
"win_rate": 123,
"avg_r": 123,
"profit_factor": 123,
"edge_quality": "<string>",
"similar_setups": [
{}
]
},
"execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": {
"pnl_dollars": "<string>",
"pnl_pct": 123,
"r_multiple": 123,
"exit_reason": "<string>",
"hold_days": 123,
"filled_price": "<string>",
"closed_at": "2023-11-07T05:31:56Z"
},
"time_validity": "<string>",
"change_log": [
{}
],
"expires_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Re-enrich action card
Re-enrich an existing card with fresh graph data.
curl --request POST \
--url https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrichimport requests
url = "https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrich"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrich', 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/action-cards-v2/{card_id}/enrich",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$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/action-cards-v2/{card_id}/enrich"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrich")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/graph/v1/action-cards-v2/{card_id}/enrich")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": "manual",
"underlying_symbol": "<string>",
"instrument_type": "equity",
"instrument_symbol": "<string>",
"direction": "LONG",
"timeframe": "intraday",
"entry_price": "<string>",
"stop_loss": "<string>",
"targets": [
{
"price": "<string>",
"exit_pct": 50,
"label": "<string>"
}
],
"status": "draft",
"completeness": "skeleton",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"risk_reward": "<string>",
"source_id": "<string>",
"group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"group_role": "<string>",
"contract": {
"symbol": "<string>",
"expiration": "<string>",
"strike": "<string>",
"option_type": "call",
"delta": 123,
"gamma": 123,
"theta": 123,
"vega": 123,
"iv": 123,
"iv_percentile": 123,
"bid": "<string>",
"ask": "<string>",
"mid": "<string>",
"spread_pct": 123,
"oi": 123,
"volume": 123,
"dte": 123
},
"premium_levels": {
"entry": "<string>",
"stop": "<string>",
"t1": "<string>",
"t2": "<string>",
"breakeven": "<string>"
},
"market_context": {
"regime": {
"classification": "<string>",
"confidence": 123,
"vix": 123,
"vix_context": "<string>"
},
"day_type": {
"classification": "<string>",
"confidence": 123,
"size_modifier": 123
},
"confluence": {
"bull": 123,
"bear": 123,
"net": 123,
"tier": "<string>",
"bias": "<string>"
},
"trend": {
"price": 123,
"ema20": 123,
"sma50": 123,
"sma200": 123,
"stack_valid": true
},
"volume": {
"rvol": 123,
"trend": "<string>",
"breakout_node": "<string>"
},
"institutional_levels": {
"vwap": 123,
"ib_high": 123,
"ib_low": 123,
"poc": 123,
"vah": 123,
"val": 123,
"pivots": {}
}
},
"sizing": {
"shares_or_contracts": 123,
"risk_per_unit": "<string>",
"risk_dollars": "<string>",
"position_value": "<string>",
"portfolio_heat_pct": 123,
"day_type_modifier": 123,
"vix_modifier": 123,
"consecutive_loss_modifier": 123
},
"entry_plan": {
"order_type": "<string>",
"limit_price": "<string>",
"trigger_conditions": [
"<string>"
],
"trigger_type": "<string>",
"trigger_level": "<string>",
"entry_zone": {},
"scaling": [
{}
],
"invalidation": "<string>",
"time_window": "<string>"
},
"exit_plan": {
"stop_type": "<string>",
"trail_offset": "<string>",
"time_stop": "<string>",
"partial_targets": [
{}
],
"stop_management": {},
"time_stops": {},
"invalidations": [
{}
]
},
"risk_context": {
"portfolio_heat_before": 123,
"portfolio_heat_after": 123,
"correlated_positions": [
"<string>"
],
"max_daily_loss_used": 123,
"gates_passed": [
"<string>"
],
"gates_failed": [
"<string>"
],
"daily_pnl_pct": 123,
"weekly_pnl_pct": 123,
"open_positions": 123,
"available_slots": 123,
"cleared_to_trade": true
},
"validation": {
"confidence": 123,
"key_risk": "<string>",
"debate_id": "<string>",
"thesis_alignment": "<string>",
"edge_quality": "<string>",
"deciding_factors": [
"<string>"
],
"agent_session_id": "<string>",
"reasoning": "<string>",
"pop": 123,
"pop_source": "<string>",
"pop_sample_size": 123,
"rationale": "<string>"
},
"backtest_edge": {
"total_trades": 123,
"win_rate": 123,
"avg_r": 123,
"profit_factor": 123,
"edge_quality": "<string>",
"similar_setups": [
{}
]
},
"execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"outcome": {
"pnl_dollars": "<string>",
"pnl_pct": 123,
"r_multiple": 123,
"exit_reason": "<string>",
"hold_days": 123,
"filled_price": "<string>",
"closed_at": "2023-11-07T05:31:56Z"
},
"time_validity": "<string>",
"change_log": [
{}
],
"expires_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Path Parameters
Response
Successful Response
Full action card response.
How the action card was created.
manual, debate, rules, agent Instrument type for the action card.
equity, option LONG, SHORT intraday, swing, position ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$Show child attributes
Show child attributes
Action card lifecycle status.
draft, active, monitoring, closed, expired, dismissed Completeness tier based on enrichment sections present.
skeleton, enriched, actionable, validated ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$Options contract details.
Show child attributes
Show child attributes
Premium-based levels for options trades.
Show child attributes
Show child attributes
Combined market context for enrichment.
Show child attributes
Show child attributes
Position sizing details.
Show child attributes
Show child attributes
Entry execution plan.
Show child attributes
Show child attributes
Exit execution plan.
Show child attributes
Show child attributes
Risk guardian context at card creation.
Show child attributes
Show child attributes
Validation context from debate or analysis.
Show child attributes
Show child attributes
Historical backtest edge data.
Show child attributes
Show child attributes
Post-trade outcome tracking.
Show child attributes
Show child attributes