curl --request GET \
--url 'https://api.edgeful.com/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = "https://api.edgeful.com/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>";
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/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>");
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/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>", 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/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>"))
.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/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>")
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": {}
}
]
}market session breakout standard
Counts how often the second session breaks one side of the first session range, both sides (double break), or neither - with a per-day detail table. Configurable via session windows and seperate_days.
curl --request GET \
--url 'https://api.edgeful.com/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = "https://api.edgeful.com/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>";
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/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>");
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/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>", 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/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>"))
.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/report_calculation/market-session-breakout-standard/<market_type>/<ticker>?start_date=<start_date>&end_date=<end_date>")
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 is not supported for this report.
forex, futures, crypto "futures"
"forex"
Query Parameters
session 1 start time, HH:MM:SS, interpreted in session1_timezone. defines the reference range for breakout detection. defaults to the London session.
session 1 end time, HH:MM:SS, interpreted in session1_timezone.
IANA timezone used to interpret session 1 times. defaults to Europe/London.
session 2 start time, HH:MM:SS, interpreted in session2_timezone. breakouts of session 1 high or low are measured within this window. defaults to the New York session.
session 2 end time, HH:MM:SS, interpreted in session2_timezone.
IANA timezone used to interpret session 2 times. defaults to America/New_York.
when true, treats session 1 and session 2 as falling on separate calendar days; when false, both sessions belong to the same calendar day.
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"
Response
Successful Response
Was this page helpful?