skills/massive-api/SKILL.md
Comprehensive access to Massive.com API (evolution of polygon.io) for financial market data. Use for retrieving stock prices, options chains, futures contracts, forex rates, cryptocurrency data, economic indicators, company fundamentals, corporate actions, analyst ratings, and real-time market data across all major U.S. exchanges and global markets.
npx skillsauth add garrettroi/open-manus massive-apiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Access comprehensive financial market data from Massive.com (evolution of polygon.io) covering stocks, options, futures, indices, forex, crypto, and economic indicators.
Massive provides real-time and historical market data from all major U.S. exchanges and global markets through REST API, WebSocket streams, and flat files. The platform offers unparalleled coverage including:
Massive uses API key authentication. The API key is available in the MASSIVE_API environment variable.
Query String Parameter (recommended for simple requests):
import os
import requests
api_key = os.environ['MASSIVE_API']
url = f"https://api.massive.com/v3/reference/tickers?apiKey={api_key}"
response = requests.get(url)
Authorization Header (recommended for production):
import os
import requests
api_key = os.environ['MASSIVE_API']
headers = {'Authorization': f'Bearer {api_key}'}
url = "https://api.massive.com/v3/reference/tickers"
response = requests.get(url, headers=headers)
All REST API endpoints use the base URL:
https://api.massive.com
All REST endpoints return JSON with a consistent structure:
{
"status": "OK",
"request_id": "unique-request-id",
"count": 100,
"resultsCount": 100,
"results": [
// Array of data objects
],
"next_url": "https://api.massive.com/v3/endpoint?cursor=..." // Optional pagination
}
Common Fields:
status (string): Request status ("OK", "ERROR", etc.)request_id (string): Unique identifier for the requestcount or resultsCount (integer): Number of results returnedresults (array): Array of data objectsnext_url (string, optional): URL for next page of resultsImportant: All timestamps are Unix timestamps (milliseconds since epoch) in UTC.
Convert timestamps to appropriate timezone for display:
from datetime import datetime, timezone
import pytz
# Convert Unix millisecond timestamp to ET
timestamp_ms = 1577941200000
dt_utc = datetime.fromtimestamp(timestamp_ms / 1000, tz=timezone.utc)
et = pytz.timezone('America/New_York')
dt_et = dt_utc.astimezone(et)
print(dt_et) # 2020-01-02 09:30:00-05:00
Endpoints accept dates in two formats:
2024-01-151705276800000Endpoints that return large datasets support pagination via next_url:
import os
import requests
api_key = os.environ['MASSIVE_API']
url = f"https://api.massive.com/v3/reference/tickers?apiKey={api_key}&limit=1000"
all_results = []
while url:
response = requests.get(url)
data = response.json()
all_results.extend(data.get('results', []))
url = data.get('next_url') # None if no more pages
Handle errors by checking the status field and HTTP status codes:
import os
import requests
api_key = os.environ['MASSIVE_API']
url = f"https://api.massive.com/v3/reference/tickers/AAPL?apiKey={api_key}"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
if data.get('status') == 'OK':
# Process results
results = data.get('results', [])
else:
print(f"API Error: {data.get('message', 'Unknown error')}")
elif response.status_code == 401:
print("Authentication failed - check API key")
elif response.status_code == 429:
print("Rate limit exceeded - implement backoff")
else:
print(f"HTTP Error: {response.status_code}")
Many endpoints share these parameters:
adjusted (boolean, default: true): Adjust for stock splitssort (string, default: "asc"): Sort order ("asc" or "desc")limit (integer, default: 5000, max: 50000): Number of results per pageorder (string): Order by fieldtimestamp or timestamp.gte/timestamp.lte: Filter by timestamp rangeRead the appropriate reference file based on the asset class or data type needed:
Stocks (/home/ubuntu/skills/massive-api/references/stocks.md): U.S. stock market data including OHLC bars, tickers, snapshots, trades, quotes, technical indicators, market operations, corporate actions (dividends, splits, IPOs), fundamentals (balance sheets, income statements, cash flows, ratios, float, short interest), and SEC filings (10-K sections, risk factors). Use for any stock-related queries.
Options (/home/ubuntu/skills/massive-api/references/options.md): U.S. options market data from all 17 exchanges including contracts, option chains, OHLC bars, snapshots, trades, quotes, technical indicators, and market operations. Use for options trading, Greeks calculations, or volatility analysis.
Futures (/home/ubuntu/skills/massive-api/references/futures.md): Futures contracts data including aggregates, contract details, products, schedules, snapshots, trades, and quotes. Use for commodities, indices futures, or derivatives trading.
Indices (/home/ubuntu/skills/massive-api/references/indices.md): Index values and data for S&P, Nasdaq, Dow Jones, and other indices including OHLC bars, snapshots, and technical indicators. Use for market benchmarking or index tracking.
Forex (/home/ubuntu/skills/massive-api/references/forex.md): Foreign exchange data for 1,750+ currency pairs including OHLC bars, real-time quotes, currency conversion, snapshots, and technical indicators. Use for FX trading or currency analysis.
Crypto (/home/ubuntu/skills/massive-api/references/crypto.md): Cryptocurrency market data including OHLC bars, trades, snapshots, technical indicators, and market operations. Use for crypto trading or blockchain analysis.
Economy (/home/ubuntu/skills/massive-api/references/economy.md): Macroeconomic indicators from Federal Reserve including inflation, inflation expectations, labor market data (unemployment, job openings, wages), and treasury yields. Use for economic analysis or macro trading strategies.
Partners (/home/ubuntu/skills/massive-api/references/partners.md): Third-party data including Benzinga news and analyst ratings, ETF Global analytics and holdings, and Wall Street Horizon corporate events. Use for news sentiment, analyst consensus, ETF research, or event-driven strategies.
import os
import requests
api_key = os.environ['MASSIVE_API']
ticker = "AAPL"
from_date = "2024-01-01"
to_date = "2024-12-31"
url = f"https://api.massive.com/v2/aggs/ticker/{ticker}/range/1/day/{from_date}/{to_date}"
params = {'apiKey': api_key, 'adjusted': 'true', 'sort': 'asc'}
response = requests.get(url, params=params)
data = response.json()
for bar in data['results']:
print(f"{bar['t']}: O={bar['o']}, H={bar['h']}, L={bar['l']}, C={bar['c']}, V={bar['v']}")
import os
import requests
api_key = os.environ['MASSIVE_API']
ticker = "AAPL"
url = f"https://api.massive.com/v3/quotes/{ticker}/last"
params = {'apiKey': api_key}
response = requests.get(url, params=params)
data = response.json()
quote = data['results']
print(f"Bid: ${quote['bid']} x {quote['bid_size']}")
print(f"Ask: ${quote['ask']} x {quote['ask_size']}")
import os
import requests
api_key = os.environ['MASSIVE_API']
ticker = "AAPL"
url = f"https://api.massive.com/vX/reference/financials"
params = {'apiKey': api_key, 'ticker': ticker, 'limit': 10}
response = requests.get(url, params=params)
data = response.json()
# Process financial statements
for statement in data['results']:
print(f"{statement['fiscal_period']}: Revenue={statement['financials']['revenue']}")
Rate limits vary by subscription plan. Implement exponential backoff for 429 errors:
import time
import requests
def fetch_with_retry(url, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url)
if response.status_code == 429:
wait_time = 2 ** attempt # Exponential backoff
time.sleep(wait_time)
continue
return response
raise Exception("Max retries exceeded")
os.environ['MASSIVE_API'] for API keynext_url for large datasetsstatus fielddevelopment
# Voice Sanitizer This skill cleans up text before it is sent to the Text-to-Speech (TTS) engine. It removes technical jargon, code blocks, and long URLs to ensure the agent sounds natural and conversational in voice chat. ## Usage To sanitize text for speech, run the following command in the terminal: ```bash python3 /app/skills/voice_sanitizer/sanitizer.py "Your long, technical text with `code` and https://links.com/long-url" ``` ### Example Output ```text Your long, technical text with a
tools
Professional AI video production workflow. Use when creating videos, short films, commercials, or any video content using AI generation tools.
tools
Secure API key access from the centralized vault. Fetch keys on-demand without storing them in environment variables.
testing
# Task Board — Persistent Task Tracking for Open Manus This skill provides a shared task board backed by Redis. Harmony uses it to track delegated work across all agents, and agents use it to report progress and completion. ## When to Use - **Harmony**: Use this whenever you delegate a task to an agent. Add the task to the board, then check the board periodically to follow up. - **Worker Agents**: Use this to update your task status or mark tasks as complete. ## Commands ### Add a new task