Most Active Stocks
curl --request GET \
--url https://stocks-dev.up.railway.app/api/v1/market/activeimport requests
url = "https://stocks-dev.up.railway.app/api/v1/market/active"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://stocks-dev.up.railway.app/api/v1/market/active', 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://stocks-dev.up.railway.app/api/v1/market/active",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://stocks-dev.up.railway.app/api/v1/market/active"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://stocks-dev.up.railway.app/api/v1/market/active")
.asString();require 'uri'
require 'net/http'
url = URI("https://stocks-dev.up.railway.app/api/v1/market/active")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"active_stocks": [
{
"symbol": "<string>",
"name": "<string>",
"price": 123,
"change": 123,
"changesPercentage": 123,
"volume": 123,
"avgVolume": 123,
"marketCap": 123,
"pe": 123,
"eps": 123
}
],
"source": "<string>",
"timestamp": "<string>"
}Market Data
Most Active Stocks
Get the most actively traded stocks by volume
GET
/
api
/
v1
/
market
/
active
Most Active Stocks
curl --request GET \
--url https://stocks-dev.up.railway.app/api/v1/market/activeimport requests
url = "https://stocks-dev.up.railway.app/api/v1/market/active"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://stocks-dev.up.railway.app/api/v1/market/active', 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://stocks-dev.up.railway.app/api/v1/market/active",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://stocks-dev.up.railway.app/api/v1/market/active"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://stocks-dev.up.railway.app/api/v1/market/active")
.asString();require 'uri'
require 'net/http'
url = URI("https://stocks-dev.up.railway.app/api/v1/market/active")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"active_stocks": [
{
"symbol": "<string>",
"name": "<string>",
"price": 123,
"change": 123,
"changesPercentage": 123,
"volume": 123,
"avgVolume": 123,
"marketCap": 123,
"pe": 123,
"eps": 123
}
],
"source": "<string>",
"timestamp": "<string>"
}Overview
Retrieve the most actively traded stocks by trading volume. This endpoint provides real-time data on stocks with the highest trading activity, helping investors identify market interest, momentum, and potential opportunities.High trading volume often indicates significant market interest, news events, or institutional activity. These stocks typically have better liquidity and tighter bid-ask spreads.
Parameters
number
default:"20"
Number of active stocks to return (max 50)
Response
array
Array of the most active stocks by volume
Show Active Stock Object
Show Active Stock Object
string
Data source identifier (“FMP”)
string
ISO timestamp of the response
Examples
curl "https://stocks-dev.up.railway.app/api/v1/market/active?limit=10"
import requests
response = requests.get("https://stocks-dev.up.railway.app/api/v1/market/active")
data = response.json()
print("🔥 Most Active Stocks by Volume:")
print("=" * 60)
for i, stock in enumerate(data['active_stocks'][:10], 1):
symbol = stock['symbol']
name = stock['name'][:30] + "..." if len(stock['name']) > 30 else stock['name']
price = stock['price']
change_pct = stock['changesPercentage']
volume = stock['volume']
avg_volume = stock['avgVolume']
volume_ratio = volume / avg_volume if avg_volume > 0 else 0
# Format volume in millions/billions
if volume >= 1e9:
vol_str = f"{volume/1e9:.1f}B"
elif volume >= 1e6:
vol_str = f"{volume/1e6:.1f}M"
else:
vol_str = f"{volume/1e3:.0f}K"
change_emoji = "🟢" if change_pct >= 0 else "🔴"
print(f"{i:2d}. {symbol:<6} {change_emoji} ${price:>7.2f} ({change_pct:>+5.1f}%)")
print(f" {name}")
print(f" 📊 Volume: {vol_str} ({volume_ratio:.1f}x avg)")
print()
const response = await fetch('https://stocks-dev.up.railway.app/api/v1/market/active');
const data = await response.json();
console.log("🔥 Most Active Stocks by Volume:");
console.log("=".repeat(60));
data.active_stocks.slice(0, 10).forEach((stock, index) => {
const symbol = stock.symbol;
const name = stock.name.length > 30 ? stock.name.substring(0, 30) + "..." : stock.name;
const price = stock.price;
const changePct = stock.changesPercentage;
const volume = stock.volume;
const avgVolume = stock.avgVolume;
const volumeRatio = avgVolume > 0 ? volume / avgVolume : 0;
// Format volume
let volStr;
if (volume >= 1e9) {
volStr = `${(volume/1e9).toFixed(1)}B`;
} else if (volume >= 1e6) {
volStr = `${(volume/1e6).toFixed(1)}M`;
} else {
volStr = `${(volume/1e3).toFixed(0)}K`;
}
const changeEmoji = changePct >= 0 ? "🟢" : "🔴";
console.log(`${(index + 1).toString().padStart(2)}. ${symbol.padEnd(6)} ${changeEmoji} $${price.toFixed(2).padStart(7)} (${changePct >= 0 ? '+' : ''}${changePct.toFixed(1)}%)`);
console.log(` ${name}`);
console.log(` 📊 Volume: ${volStr} (${volumeRatio.toFixed(1)}x avg)`);
console.log();
});
<?php
$response = file_get_contents('https://stocks-dev.up.railway.app/api/v1/market/active');
$data = json_decode($response, true);
echo "🔥 Most Active Stocks by Volume:\n";
echo str_repeat("=", 60) . "\n";
foreach (array_slice($data['active_stocks'], 0, 10) as $index => $stock) {
$symbol = $stock['symbol'];
$name = strlen($stock['name']) > 30 ? substr($stock['name'], 0, 30) . "..." : $stock['name'];
$price = $stock['price'];
$change_pct = $stock['changesPercentage'];
$volume = $stock['volume'];
$avg_volume = $stock['avgVolume'];
$volume_ratio = $avg_volume > 0 ? $volume / $avg_volume : 0;
// Format volume
if ($volume >= 1e9) {
$vol_str = number_format($volume/1e9, 1) . "B";
} elseif ($volume >= 1e6) {
$vol_str = number_format($volume/1e6, 1) . "M";
} else {
$vol_str = number_format($volume/1e3, 0) . "K";
}
$change_emoji = $change_pct >= 0 ? "🟢" : "🔴";
echo sprintf("%2d. %-6s %s $%7.2f (%+5.1f%%)\n",
$index + 1, $symbol, $change_emoji, $price, $change_pct);
echo " $name\n";
echo " 📊 Volume: $vol_str (" . number_format($volume_ratio, 1) . "x avg)\n\n";
}
?>
Response Example
{
"active_stocks": [
{
"symbol": "TSLA",
"name": "Tesla, Inc.",
"price": 248.50,
"change": 12.45,
"changesPercentage": 5.27,
"volume": 85420000,
"avgVolume": 45230000,
"marketCap": 789450000000,
"pe": 45.2,
"eps": 5.50
},
{
"symbol": "AAPL",
"name": "Apple Inc.",
"price": 201.08,
"change": -2.15,
"changesPercentage": -1.06,
"volume": 78920000,
"avgVolume": 52100000,
"marketCap": 3089450000000,
"pe": 28.4,
"eps": 7.08
},
{
"symbol": "NVDA",
"name": "NVIDIA Corporation",
"price": 135.21,
"change": 8.92,
"changesPercentage": 7.06,
"volume": 72150000,
"avgVolume": 38450000,
"marketCap": 3321450000000,
"pe": 62.8,
"eps": 2.15
}
],
"source": "FMP",
"timestamp": "2025-06-28T20:15:30.123456"
}
Understanding Volume Analysis
Volume Significance
Volume Significance
Why Volume Matters:
- Liquidity: High volume stocks are easier to buy/sell
- Interest: Indicates market attention and institutional activity
- Momentum: Volume often precedes price movements
- News Events: Earnings, announcements drive volume spikes
Volume Metrics
Volume Metrics
- Current Volume: Today’s trading activity
- Average Volume: Typical daily trading volume
- Volume Ratio: Current vs average (>2x is significant)
- Dollar Volume: Price × Volume (institutional focus)
Trading Implications
Trading Implications
- High Volume + Price Up: Strong bullish momentum
- High Volume + Price Down: Strong bearish pressure
- High Volume + Flat Price: Accumulation/distribution
- Low Volume: Lack of conviction in price moves
Use Cases
Day Trading
Intraday Opportunities
- High liquidity for quick entries/exits
- Momentum identification
- Scalping opportunities
News & Events
Market Catalysts
- Earnings reactions
- Breaking news impact
- Institutional activity
Swing Trading
Short-term Positions
- Momentum continuation
- Breakout confirmations
- Volume-price analysis
Market Sentiment
Overall Market Health
- Risk-on/risk-off sentiment
- Sector rotation patterns
- Market participation levels
Volume Analysis Tips
Volume Leaders often include:
- Large-cap tech stocks (AAPL, MSFT, NVDA)
- Meme stocks during social media hype
- Stocks with recent earnings or news
- ETFs during market volatility
Trading Strategies:
- Look for volume 2-3x average for significant moves
- Combine with price action for confirmation
- Watch for volume at key support/resistance levels
- Use volume to validate breakouts
Volume Considerations:
- High volume doesn’t guarantee profitable trades
- Consider market cap when evaluating volume
- Be aware of options expiration effects
- Watch for wash trading or manipulation
Error Responses
Market Closed (503)
Market Closed (503)
{
"error": "Market data unavailable",
"detail": "Markets are currently closed. Data may be delayed."
}
Rate Limited (429)
Rate Limited (429)
{
"error": "Rate limit exceeded",
"detail": "Too many requests. Please wait before retrying."
}
MCP Protocol Usage
For AI agents using the Model Context Protocol:{
"method": "tools/call",
"params": {
"name": "fmp_get_most_active",
"arguments": {
"random_string": "dummy"
}
}
}
Related Endpoints
Market Gainers
Get the biggest stock gainers of the day
Market Losers
Get the biggest stock losers of the day
Sector Performance
Get sector performance data
Stock Quote
Get detailed quote for specific stocks