Skip to main content
GET
/
intraday_calculation
/
asian-range-breakout-by-weekday
/
{market_type}
/
{ticker}
cURL
curl --request GET \
  --url 'https://api.edgeful.com/intraday_calculation/asian-range-breakout-by-weekday/<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-by-weekday/<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-by-weekday/<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-by-weekday/<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-by-weekday/<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-by-weekday/<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-by-weekday/<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

Authorization
string
header
required

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
string
required

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).

Examples:

"SPY"

"EURUSD"

"BTCUSD"

"ES"

market_type
enum<string>
required

market venue for the ticker. one of: forex, futures, crypto, stock. determines supported symbols and whether session-based intraday aggregation is available.

Available options:
forex,
futures,
crypto,
stock
Examples:

"stock"

"forex"

Query Parameters

start_date
string
required

inclusive start date, YYYY-MM-DD, interpreted in the request timezone. sessions on or after this date are included in the calculation.

Example:

"2024-01-01"

end_date
string
required

inclusive end date, YYYY-MM-DD, interpreted in the request timezone. sessions on or before this date are included in the calculation.

Example:

"2024-12-31"

start_time
string
required

asian range session start time, HH:MM:SS, interpreted in Asia/Tokyo.

end_time
string
required

asian range session end time, HH:MM:SS, interpreted in Asia/Tokyo.

candle_start_time
string
required

daily candle window start time, HH:MM:SS, interpreted in America/New_York.

candle_end_time
string
required

daily candle window end time, HH:MM:SS, interpreted in America/New_York.

timeframe
string
default:15min

intraday candle granularity used for the calculation. accepted values: 1min, 5min, 15min, 30min, 1hour. route-specific defaults are shown in the default field.

breakout_timeframe
enum<string> | null

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.

Available options:
15min,
30min

Response

Successful Response