Get AI interpretation of options dealer positioning
curl --request POST \
--url https://api.example.com/api/graph/v1/options/{symbol}/interpret \
--header 'Content-Type: application/json' \
--data '
{
"expiration": "<string>",
"direction": "bullish",
"template_headline": "",
"gex": {
"regime": "neutral",
"total_gex": 0,
"gamma_flip_strike": 123,
"pin_strike": 123,
"spot_price": 0,
"data_quality": 0,
"is_aggregate": true
},
"vanna_charm": {
"net_vanna": 0,
"net_charm": 0,
"vanna_flip_strike": 123,
"charm_direction": "unknown"
},
"options_context": {
"iv_rank": 123,
"iv_term_structure": "<string>",
"max_pain": 123,
"flow_direction": "neutral",
"cvd_trend": "<string>",
"cvd_divergence": "<string>"
},
"strike_advisor": {
"top_recommendation": "<string>",
"composite_score": 0,
"confidence": "INSUFFICIENT",
"signal_scores": {}
}
}
'import requests
url = "https://api.example.com/api/graph/v1/options/{symbol}/interpret"
payload = {
"expiration": "<string>",
"direction": "bullish",
"template_headline": "",
"gex": {
"regime": "neutral",
"total_gex": 0,
"gamma_flip_strike": 123,
"pin_strike": 123,
"spot_price": 0,
"data_quality": 0,
"is_aggregate": True
},
"vanna_charm": {
"net_vanna": 0,
"net_charm": 0,
"vanna_flip_strike": 123,
"charm_direction": "unknown"
},
"options_context": {
"iv_rank": 123,
"iv_term_structure": "<string>",
"max_pain": 123,
"flow_direction": "neutral",
"cvd_trend": "<string>",
"cvd_divergence": "<string>"
},
"strike_advisor": {
"top_recommendation": "<string>",
"composite_score": 0,
"confidence": "INSUFFICIENT",
"signal_scores": {}
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
expiration: '<string>',
direction: 'bullish',
template_headline: '',
gex: {
regime: 'neutral',
total_gex: 0,
gamma_flip_strike: 123,
pin_strike: 123,
spot_price: 0,
data_quality: 0,
is_aggregate: true
},
vanna_charm: {net_vanna: 0, net_charm: 0, vanna_flip_strike: 123, charm_direction: 'unknown'},
options_context: {
iv_rank: 123,
iv_term_structure: '<string>',
max_pain: 123,
flow_direction: 'neutral',
cvd_trend: '<string>',
cvd_divergence: '<string>'
},
strike_advisor: {
top_recommendation: '<string>',
composite_score: 0,
confidence: 'INSUFFICIENT',
signal_scores: {}
}
})
};
fetch('https://api.example.com/api/graph/v1/options/{symbol}/interpret', 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/options/{symbol}/interpret",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'expiration' => '<string>',
'direction' => 'bullish',
'template_headline' => '',
'gex' => [
'regime' => 'neutral',
'total_gex' => 0,
'gamma_flip_strike' => 123,
'pin_strike' => 123,
'spot_price' => 0,
'data_quality' => 0,
'is_aggregate' => true
],
'vanna_charm' => [
'net_vanna' => 0,
'net_charm' => 0,
'vanna_flip_strike' => 123,
'charm_direction' => 'unknown'
],
'options_context' => [
'iv_rank' => 123,
'iv_term_structure' => '<string>',
'max_pain' => 123,
'flow_direction' => 'neutral',
'cvd_trend' => '<string>',
'cvd_divergence' => '<string>'
],
'strike_advisor' => [
'top_recommendation' => '<string>',
'composite_score' => 0,
'confidence' => 'INSUFFICIENT',
'signal_scores' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/graph/v1/options/{symbol}/interpret"
payload := strings.NewReader("{\n \"expiration\": \"<string>\",\n \"direction\": \"bullish\",\n \"template_headline\": \"\",\n \"gex\": {\n \"regime\": \"neutral\",\n \"total_gex\": 0,\n \"gamma_flip_strike\": 123,\n \"pin_strike\": 123,\n \"spot_price\": 0,\n \"data_quality\": 0,\n \"is_aggregate\": true\n },\n \"vanna_charm\": {\n \"net_vanna\": 0,\n \"net_charm\": 0,\n \"vanna_flip_strike\": 123,\n \"charm_direction\": \"unknown\"\n },\n \"options_context\": {\n \"iv_rank\": 123,\n \"iv_term_structure\": \"<string>\",\n \"max_pain\": 123,\n \"flow_direction\": \"neutral\",\n \"cvd_trend\": \"<string>\",\n \"cvd_divergence\": \"<string>\"\n },\n \"strike_advisor\": {\n \"top_recommendation\": \"<string>\",\n \"composite_score\": 0,\n \"confidence\": \"INSUFFICIENT\",\n \"signal_scores\": {}\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/graph/v1/options/{symbol}/interpret")
.header("Content-Type", "application/json")
.body("{\n \"expiration\": \"<string>\",\n \"direction\": \"bullish\",\n \"template_headline\": \"\",\n \"gex\": {\n \"regime\": \"neutral\",\n \"total_gex\": 0,\n \"gamma_flip_strike\": 123,\n \"pin_strike\": 123,\n \"spot_price\": 0,\n \"data_quality\": 0,\n \"is_aggregate\": true\n },\n \"vanna_charm\": {\n \"net_vanna\": 0,\n \"net_charm\": 0,\n \"vanna_flip_strike\": 123,\n \"charm_direction\": \"unknown\"\n },\n \"options_context\": {\n \"iv_rank\": 123,\n \"iv_term_structure\": \"<string>\",\n \"max_pain\": 123,\n \"flow_direction\": \"neutral\",\n \"cvd_trend\": \"<string>\",\n \"cvd_divergence\": \"<string>\"\n },\n \"strike_advisor\": {\n \"top_recommendation\": \"<string>\",\n \"composite_score\": 0,\n \"confidence\": \"INSUFFICIENT\",\n \"signal_scores\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/graph/v1/options/{symbol}/interpret")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"expiration\": \"<string>\",\n \"direction\": \"bullish\",\n \"template_headline\": \"\",\n \"gex\": {\n \"regime\": \"neutral\",\n \"total_gex\": 0,\n \"gamma_flip_strike\": 123,\n \"pin_strike\": 123,\n \"spot_price\": 0,\n \"data_quality\": 0,\n \"is_aggregate\": true\n },\n \"vanna_charm\": {\n \"net_vanna\": 0,\n \"net_charm\": 0,\n \"vanna_flip_strike\": 123,\n \"charm_direction\": \"unknown\"\n },\n \"options_context\": {\n \"iv_rank\": 123,\n \"iv_term_structure\": \"<string>\",\n \"max_pain\": 123,\n \"flow_direction\": \"neutral\",\n \"cvd_trend\": \"<string>\",\n \"cvd_divergence\": \"<string>\"\n },\n \"strike_advisor\": {\n \"top_recommendation\": \"<string>\",\n \"composite_score\": 0,\n \"confidence\": \"INSUFFICIENT\",\n \"signal_scores\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"summary": "<string>",
"key_levels": [
{
"price": 123,
"significance": "<string>"
}
],
"risk_note": "<string>",
"provider": "<string>",
"model": "<string>",
"cached": false,
"error": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Options Interpretation
Get AI interpretation of options dealer positioning
POST
/
api
/
graph
/
v1
/
options
/
{symbol}
/
interpret
Get AI interpretation of options dealer positioning
curl --request POST \
--url https://api.example.com/api/graph/v1/options/{symbol}/interpret \
--header 'Content-Type: application/json' \
--data '
{
"expiration": "<string>",
"direction": "bullish",
"template_headline": "",
"gex": {
"regime": "neutral",
"total_gex": 0,
"gamma_flip_strike": 123,
"pin_strike": 123,
"spot_price": 0,
"data_quality": 0,
"is_aggregate": true
},
"vanna_charm": {
"net_vanna": 0,
"net_charm": 0,
"vanna_flip_strike": 123,
"charm_direction": "unknown"
},
"options_context": {
"iv_rank": 123,
"iv_term_structure": "<string>",
"max_pain": 123,
"flow_direction": "neutral",
"cvd_trend": "<string>",
"cvd_divergence": "<string>"
},
"strike_advisor": {
"top_recommendation": "<string>",
"composite_score": 0,
"confidence": "INSUFFICIENT",
"signal_scores": {}
}
}
'import requests
url = "https://api.example.com/api/graph/v1/options/{symbol}/interpret"
payload = {
"expiration": "<string>",
"direction": "bullish",
"template_headline": "",
"gex": {
"regime": "neutral",
"total_gex": 0,
"gamma_flip_strike": 123,
"pin_strike": 123,
"spot_price": 0,
"data_quality": 0,
"is_aggregate": True
},
"vanna_charm": {
"net_vanna": 0,
"net_charm": 0,
"vanna_flip_strike": 123,
"charm_direction": "unknown"
},
"options_context": {
"iv_rank": 123,
"iv_term_structure": "<string>",
"max_pain": 123,
"flow_direction": "neutral",
"cvd_trend": "<string>",
"cvd_divergence": "<string>"
},
"strike_advisor": {
"top_recommendation": "<string>",
"composite_score": 0,
"confidence": "INSUFFICIENT",
"signal_scores": {}
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
expiration: '<string>',
direction: 'bullish',
template_headline: '',
gex: {
regime: 'neutral',
total_gex: 0,
gamma_flip_strike: 123,
pin_strike: 123,
spot_price: 0,
data_quality: 0,
is_aggregate: true
},
vanna_charm: {net_vanna: 0, net_charm: 0, vanna_flip_strike: 123, charm_direction: 'unknown'},
options_context: {
iv_rank: 123,
iv_term_structure: '<string>',
max_pain: 123,
flow_direction: 'neutral',
cvd_trend: '<string>',
cvd_divergence: '<string>'
},
strike_advisor: {
top_recommendation: '<string>',
composite_score: 0,
confidence: 'INSUFFICIENT',
signal_scores: {}
}
})
};
fetch('https://api.example.com/api/graph/v1/options/{symbol}/interpret', 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/options/{symbol}/interpret",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'expiration' => '<string>',
'direction' => 'bullish',
'template_headline' => '',
'gex' => [
'regime' => 'neutral',
'total_gex' => 0,
'gamma_flip_strike' => 123,
'pin_strike' => 123,
'spot_price' => 0,
'data_quality' => 0,
'is_aggregate' => true
],
'vanna_charm' => [
'net_vanna' => 0,
'net_charm' => 0,
'vanna_flip_strike' => 123,
'charm_direction' => 'unknown'
],
'options_context' => [
'iv_rank' => 123,
'iv_term_structure' => '<string>',
'max_pain' => 123,
'flow_direction' => 'neutral',
'cvd_trend' => '<string>',
'cvd_divergence' => '<string>'
],
'strike_advisor' => [
'top_recommendation' => '<string>',
'composite_score' => 0,
'confidence' => 'INSUFFICIENT',
'signal_scores' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/graph/v1/options/{symbol}/interpret"
payload := strings.NewReader("{\n \"expiration\": \"<string>\",\n \"direction\": \"bullish\",\n \"template_headline\": \"\",\n \"gex\": {\n \"regime\": \"neutral\",\n \"total_gex\": 0,\n \"gamma_flip_strike\": 123,\n \"pin_strike\": 123,\n \"spot_price\": 0,\n \"data_quality\": 0,\n \"is_aggregate\": true\n },\n \"vanna_charm\": {\n \"net_vanna\": 0,\n \"net_charm\": 0,\n \"vanna_flip_strike\": 123,\n \"charm_direction\": \"unknown\"\n },\n \"options_context\": {\n \"iv_rank\": 123,\n \"iv_term_structure\": \"<string>\",\n \"max_pain\": 123,\n \"flow_direction\": \"neutral\",\n \"cvd_trend\": \"<string>\",\n \"cvd_divergence\": \"<string>\"\n },\n \"strike_advisor\": {\n \"top_recommendation\": \"<string>\",\n \"composite_score\": 0,\n \"confidence\": \"INSUFFICIENT\",\n \"signal_scores\": {}\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/graph/v1/options/{symbol}/interpret")
.header("Content-Type", "application/json")
.body("{\n \"expiration\": \"<string>\",\n \"direction\": \"bullish\",\n \"template_headline\": \"\",\n \"gex\": {\n \"regime\": \"neutral\",\n \"total_gex\": 0,\n \"gamma_flip_strike\": 123,\n \"pin_strike\": 123,\n \"spot_price\": 0,\n \"data_quality\": 0,\n \"is_aggregate\": true\n },\n \"vanna_charm\": {\n \"net_vanna\": 0,\n \"net_charm\": 0,\n \"vanna_flip_strike\": 123,\n \"charm_direction\": \"unknown\"\n },\n \"options_context\": {\n \"iv_rank\": 123,\n \"iv_term_structure\": \"<string>\",\n \"max_pain\": 123,\n \"flow_direction\": \"neutral\",\n \"cvd_trend\": \"<string>\",\n \"cvd_divergence\": \"<string>\"\n },\n \"strike_advisor\": {\n \"top_recommendation\": \"<string>\",\n \"composite_score\": 0,\n \"confidence\": \"INSUFFICIENT\",\n \"signal_scores\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/graph/v1/options/{symbol}/interpret")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"expiration\": \"<string>\",\n \"direction\": \"bullish\",\n \"template_headline\": \"\",\n \"gex\": {\n \"regime\": \"neutral\",\n \"total_gex\": 0,\n \"gamma_flip_strike\": 123,\n \"pin_strike\": 123,\n \"spot_price\": 0,\n \"data_quality\": 0,\n \"is_aggregate\": true\n },\n \"vanna_charm\": {\n \"net_vanna\": 0,\n \"net_charm\": 0,\n \"vanna_flip_strike\": 123,\n \"charm_direction\": \"unknown\"\n },\n \"options_context\": {\n \"iv_rank\": 123,\n \"iv_term_structure\": \"<string>\",\n \"max_pain\": 123,\n \"flow_direction\": \"neutral\",\n \"cvd_trend\": \"<string>\",\n \"cvd_divergence\": \"<string>\"\n },\n \"strike_advisor\": {\n \"top_recommendation\": \"<string>\",\n \"composite_score\": 0,\n \"confidence\": \"INSUFFICIENT\",\n \"signal_scores\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"summary": "<string>",
"key_levels": [
{
"price": 123,
"significance": "<string>"
}
],
"risk_note": "<string>",
"provider": "<string>",
"model": "<string>",
"cached": false,
"error": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Path Parameters
Body
application/json
Request body for the interpret endpoint.
GEX data for interpretation.
Show child attributes
Show child attributes
Vanna-charm data for interpretation.
Show child attributes
Show child attributes
Market context for interpretation.
Show child attributes
Show child attributes
Strike Advisor recommendation context.
Show child attributes
Show child attributes