curl --request GET \
--url 'https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = "https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>";
const options = {
method: "GET",
headers: { Authorization: "Bearer <api-key>" },
};
const response = await fetch(url, options);
const data = await response.json();
console.log(data);<?php
$ch = curl_init("https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer <api-key>"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>", nil)
req.Header.Set("Authorization", "Bearer <api-key>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>"))
.header("Authorization", "Bearer <api-key>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());require "net/http"
require "uri"
uri = URI("https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <api-key>"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}asian range breakout standard
computes the asian session range and counts sessions where intraday price first breaks the asian high or low, paired with daily candle color, and a per-day detail table. configurable via start_date, end_date, Tokyo start_time/end_time, and New York daily candle window bounds. timeframe retains the legacy source-candle behavior; when breakout_timeframe is supplied, it overrides breakout-close selection with 15-minute or derived 30-minute candles.
curl --request GET \
--url 'https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = "https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>";
const options = {
method: "GET",
headers: { Authorization: "Bearer <api-key>" },
};
const response = await fetch(url, options);
const data = await response.json();
console.log(data);<?php
$ch = curl_init("https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer <api-key>"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>", nil)
req.Header.Set("Authorization", "Bearer <api-key>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>"))
.header("Authorization", "Bearer <api-key>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());require "net/http"
require "uri"
uri = URI("https://api.edgeful.com/intraday_calculation/asian-range-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>&start_time=<start_time>&end_time=<end_time>&candle_start_time=<candle_start_time>&candle_end_time=<candle_end_time>")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <api-key>"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Use your Edgeful API key as the bearer token. In the API Reference authorization drawer, paste only the key (for example, ef_live_<random>).
Path Parameters
ticker symbol. format varies by market_type: stocks use a plain symbol (e.g., SPY), forex uses a 6-character pair (e.g., EURUSD), crypto uses a contract pair (e.g., BTCUSD), futures uses the root symbol (e.g., ES).
"SPY"
"EURUSD"
"BTCUSD"
"ES"
market venue for the ticker. one of: forex, futures, crypto, stock. determines supported symbols and whether session-based intraday aggregation is available.
forex, futures, crypto, stock "stock"
"forex"
Query Parameters
inclusive start date, YYYY-MM-DD, interpreted in the request timezone. sessions on or after this date are included in the calculation.
"2024-01-01"
inclusive end date, YYYY-MM-DD, interpreted in the request timezone. sessions on or before this date are included in the calculation.
"2024-12-31"
asian range session start time, HH:MM:SS, interpreted in Asia/Tokyo.
asian range session end time, HH:MM:SS, interpreted in Asia/Tokyo.
daily candle window start time, HH:MM:SS, interpreted in America/New_York.
daily candle window end time, HH:MM:SS, interpreted in America/New_York.
intraday candle granularity used for the calculation. accepted values: 1min, 5min, 15min, 30min, 1hour. route-specific defaults are shown in the default field.
optional override for the candle timeframe used to identify the first close outside the Asian range. accepted values: 15min, 30min. when supplied, 15-minute source bars are fetched and complete 30-minute closes are derived from timestamp-aligned pairs; otherwise the legacy timeframe source bars are used directly.
15min, 30min Response
Successful Response
Was this page helpful?