curl --no-buffer --request GET \
--url 'https://api.edgeful.com/live/<market_type>/wip' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/live/<market_type>/wip"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers, stream=True)
for line in response.iter_lines():
if line:
print(line.decode())const url = "https://api.edgeful.com/live/<market_type>/wip";
const response = await fetch(url, {
method: "GET",
headers: { Authorization: "Bearer <api-key>" },
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
console.log(decoder.decode(value));
}<?php
$ch = curl_init("https://api.edgeful.com/live/<market_type>/wip");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer <api-key>"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_BUFFERSIZE, 1);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch, $data) {
echo $data;
ob_flush();
flush();
return strlen($data);
});
curl_exec($ch);
curl_close($ch);package main
import (
"bufio"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.edgeful.com/live/<market_type>/wip", nil)
req.Header.Set("Authorization", "Bearer <api-key>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
scanner := bufio.NewScanner(resp.Body)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.BufferedReader;
import java.io.InputStreamReader;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.edgeful.com/live/<market_type>/wip"))
.header("Authorization", "Bearer <api-key>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<java.io.InputStream> response = client.send(
request, HttpResponse.BodyHandlers.ofInputStream());
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(response.body()))) {
reader.lines().forEach(System.out::println);
}require "net/http"
require "uri"
uri = URI("https://api.edgeful.com/live/<market_type>/wip")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <api-key>"
Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request) do |response|
response.read_body do |chunk|
print chunk
end
end
end{
"detail": {
"detail": "Live data is not available on your current plan. Please upgrade to the Pro or All Access plan to gain access.",
"code": "live_data_not_allowed"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}live wip stream
live stream of What’s in Play data for all tickers in the requested market and session. sends the current data immediately on connect, then pushes updates as market data changes. each event is a JSON object keyed by ticker symbol, with per-report analysis nested under each ticker. supports optional ticker filtering, report customization variants, and custom session windows for futures.
curl --no-buffer --request GET \
--url 'https://api.edgeful.com/live/<market_type>/wip' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/live/<market_type>/wip"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers, stream=True)
for line in response.iter_lines():
if line:
print(line.decode())const url = "https://api.edgeful.com/live/<market_type>/wip";
const response = await fetch(url, {
method: "GET",
headers: { Authorization: "Bearer <api-key>" },
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
console.log(decoder.decode(value));
}<?php
$ch = curl_init("https://api.edgeful.com/live/<market_type>/wip");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer <api-key>"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_BUFFERSIZE, 1);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch, $data) {
echo $data;
ob_flush();
flush();
return strlen($data);
});
curl_exec($ch);
curl_close($ch);package main
import (
"bufio"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.edgeful.com/live/<market_type>/wip", nil)
req.Header.Set("Authorization", "Bearer <api-key>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
scanner := bufio.NewScanner(resp.Body)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.BufferedReader;
import java.io.InputStreamReader;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.edgeful.com/live/<market_type>/wip"))
.header("Authorization", "Bearer <api-key>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<java.io.InputStream> response = client.send(
request, HttpResponse.BodyHandlers.ofInputStream());
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(response.body()))) {
reader.lines().forEach(System.out::println);
}require "net/http"
require "uri"
uri = URI("https://api.edgeful.com/live/<market_type>/wip")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <api-key>"
Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request) do |response|
response.read_body do |chunk|
print chunk
end
end
end{
"detail": {
"detail": "Live data is not available on your current plan. Please upgrade to the Pro or All Access plan to gain access.",
"code": "live_data_not_allowed"
}
}{
"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
type of market to stream data for. use all to stream both stocks and futures together.
all, futures, stock "futures"
"stock"
Query Parameters
standard session to stream; one of NY, LONDON, ASIA. ignored when start_time and end_time are provided.
NY, LONDON, ASIA custom session start time, HH:MM, interpreted in timezone. provide together with end_time to define a custom intraday window; futures only.
custom session end time, HH:MM, interpreted in timezone. provide together with start_time to define a custom intraday window; futures only.
set to true when the custom session spans midnight (i.e., start_time is after end_time).
IANA timezone used to interpret start_time and end_time for custom sessions. choose one of the preset live-session timezones from the docs dropdown.
America/New_York, Europe/London, Asia/Tokyo historical lookback window attached to each ticker's report data; one of 3mo, 6mo, 1yr, 2yr.
3mo, 6mo, 1yr, 2yr comma-separated list of ticker symbols to include (e.g., ES,NQ,CL). empty string streams all available tickers.
report variant preferences as report_type:value pairs (e.g., gap_fill_standard:100,initial_balance_standard:60min_wick).
comma-separated list of report types to include (e.g., gap_fill_standard,initial_balance_standard). empty string includes all reports.
Response
Successful Response
Was this page helpful?