Historical top gainers, losers, and most active
curl --request GET \
--url https://api.ngnmarket.com/v1/us/market/trending \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ngnmarket.com/v1/us/market/trending"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ngnmarket.com/v1/us/market/trending', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ngnmarket.com/v1/us/market/trending",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ngnmarket.com/v1/us/market/trending"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ngnmarket.com/v1/us/market/trending")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngnmarket.com/v1/us/market/trending")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"meta": {
"plan": "starter",
"calls_used": 4821,
"calls_remaining": 95179,
"reset_at": "2026-06-15T23:57:00.000Z",
"market": "US",
"currency": "USD",
"as_of": "2023-11-07T05:31:56Z",
"newest": "2023-11-07T05:31:56Z"
},
"data": {
"success": true,
"date": "2023-12-25",
"comparedTo": "2023-12-25",
"data": {
"topGainers": [
{
"symbol": "<string>",
"companyName": "<string>",
"sector": "<string>",
"logoUrl": "<string>",
"lastClose": 123,
"todaysClose": 123,
"change": 123,
"changePercent": 123,
"volume": 123,
"market": "US"
}
],
"topLosers": [
{
"symbol": "<string>",
"companyName": "<string>",
"sector": "<string>",
"logoUrl": "<string>",
"lastClose": 123,
"todaysClose": 123,
"change": 123,
"changePercent": 123,
"volume": 123,
"market": "US"
}
],
"mostActive": [
{
"symbol": "<string>",
"companyName": "<string>",
"sector": "<string>",
"logoUrl": "<string>",
"lastClose": 123,
"todaysClose": 123,
"change": 123,
"changePercent": 123,
"volume": 123,
"market": "US"
}
]
},
"withheld": {
"count": 123,
"symbols": [
{
"symbol": "<string>",
"changePercent": 123,
"priceRatio": 123
}
]
},
"coverage": {
"priced": 123,
"universe": 123,
"partial": true
},
"universe": {
"type": "top_market_cap",
"size": 500
},
"summary": {
"biggestGainer": {
"symbol": "<string>",
"changePercent": 123
},
"biggestLoser": {
"symbol": "<string>",
"changePercent": 123
}
}
}
}Market Endpoints
US Historical Trending
Historical top gainers, losers, and most active US tickers for a given session.
GET
/
us
/
market
/
trending
Historical top gainers, losers, and most active
curl --request GET \
--url https://api.ngnmarket.com/v1/us/market/trending \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ngnmarket.com/v1/us/market/trending"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ngnmarket.com/v1/us/market/trending', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ngnmarket.com/v1/us/market/trending",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ngnmarket.com/v1/us/market/trending"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ngnmarket.com/v1/us/market/trending")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngnmarket.com/v1/us/market/trending")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"meta": {
"plan": "starter",
"calls_used": 4821,
"calls_remaining": 95179,
"reset_at": "2026-06-15T23:57:00.000Z",
"market": "US",
"currency": "USD",
"as_of": "2023-11-07T05:31:56Z",
"newest": "2023-11-07T05:31:56Z"
},
"data": {
"success": true,
"date": "2023-12-25",
"comparedTo": "2023-12-25",
"data": {
"topGainers": [
{
"symbol": "<string>",
"companyName": "<string>",
"sector": "<string>",
"logoUrl": "<string>",
"lastClose": 123,
"todaysClose": 123,
"change": 123,
"changePercent": 123,
"volume": 123,
"market": "US"
}
],
"topLosers": [
{
"symbol": "<string>",
"companyName": "<string>",
"sector": "<string>",
"logoUrl": "<string>",
"lastClose": 123,
"todaysClose": 123,
"change": 123,
"changePercent": 123,
"volume": 123,
"market": "US"
}
],
"mostActive": [
{
"symbol": "<string>",
"companyName": "<string>",
"sector": "<string>",
"logoUrl": "<string>",
"lastClose": 123,
"todaysClose": 123,
"change": 123,
"changePercent": 123,
"volume": 123,
"market": "US"
}
]
},
"withheld": {
"count": 123,
"symbols": [
{
"symbol": "<string>",
"changePercent": 123,
"priceRatio": 123
}
]
},
"coverage": {
"priced": 123,
"universe": 123,
"partial": true
},
"universe": {
"type": "top_market_cap",
"size": 500
},
"summary": {
"biggestGainer": {
"symbol": "<string>",
"changePercent": 123
},
"biggestLoser": {
"symbol": "<string>",
"changePercent": 123
}
}
}
}Ranks the configured top-market-cap universe (default 500 tickers — the same universe the live quote feed refreshes) by session-over-session price change and volume, for a given
date or the latest available session.
Filters out likely unadjusted stock-split artifacts (a price ratio of 4x or more, or 0.25x or less, without confirming volume) rather than reporting them as real moves. Excluded symbols are listed under
withheld in the response, not silently dropped.date is subject to the same plan-based history depth as chart endpoints — see History depth by plan. Requesting a date further back than your plan allows returns 403 HISTORY_LIMIT.Authorizations
Pass your API key as a Bearer token: Authorization: Bearer ngm_live_YOUR_KEY.
Generate keys at ngnmarket.com/dashboard/developer.
Query Parameters
Defaults to the latest session with data.
Required range:
1 <= x <= 50