curl --request GET \
--url 'https://api.edgeful.com/report_calculation/volume-trends-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/volume-trends-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/volume-trends-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/volume-trends-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/volume-trends-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/volume-trends-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/volume-trends-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": {}
}
]
}volume trends standard
Aggregates historical volume into monthly and weekly seasonality patterns. Returns average volume per calendar month and per ISO week, plus a year-by-year breakdown of monthly volumes. The current month is excluded from monthly averages.
curl --request GET \
--url 'https://api.edgeful.com/report_calculation/volume-trends-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/volume-trends-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/volume-trends-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/volume-trends-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/volume-trends-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/volume-trends-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/volume-trends-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. 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"
optional session start time, HH:MM:SS, interpreted in the request timezone. omit together with end_time to use daily OHLC data. provide together with end_time to aggregate intraday bars into a custom session (forex, futures, and crypto only; ignored for stocks).
optional session end time, HH:MM:SS, interpreted in the request timezone. omit together with start_time to use daily OHLC data. provide together with start_time to aggregate intraday bars into a custom session (forex, futures, and crypto only; ignored for stocks).
Response
Successful Response
Was this page helpful?