Agent Skills: Market Data API

Access US stock market data including price bars, news with sentiment, and company details via eng0 data API. Use when user asks for stock prices, OHLCV data, price history, stock news, or company information. Triggers include "stock price", "price history", "OHLCV", "stock news", "company info", "market data", "ticker data". Do NOT use for SEC filings (use sec-edgar-skill instead).

UncategorizedID: eng0ai/eng0-template-skills/market-data

Install this agent skill to your local

pnpm dlx add-skill https://github.com/rebyteai-template/rebyte-skills/tree/HEAD/market-data

Skill Files

Browse the full folder contents for market-data.

Download Skill

Loading file tree…

market-data/SKILL.md

Skill Metadata

Name
market-data
Description
Access US stock market data including price bars, news with sentiment, and company details via eng0 data API. Use when user asks for stock prices, OHLCV data, price history, stock news, or company information. Triggers include "stock price", "price history", "OHLCV", "stock news", "company info", "market data", "ticker data". Do NOT use for SEC filings (use sec-edgar-skill instead).

Market Data API

Access US stock market data through eng0's data proxy service.

Base URL

https://api.eng0.ai/api/data

Data Coverage

  • All US stock tickers
  • 5 years of historical data
  • 100% market coverage
  • 15-minute delayed quotes

Available Endpoints

| Endpoint | Purpose | |----------|---------| | POST /stocks/bars | OHLCV price bars (1min to 1week intervals) | | POST /stocks/news | News articles with sentiment analysis | | POST /stocks/details | Company information and market cap | | GET /schema | API schema discovery |


Get Price Bars

Retrieve OHLCV (Open, High, Low, Close, Volume) bars for a stock.

curl -X POST https://api.eng0.ai/api/data/stocks/bars \
  -H "Content-Type: application/json" \
  -d '{
    "ticker": "AAPL",
    "interval": "1day",
    "from": "2024-12-01",
    "to": "2024-12-31"
  }'

Parameters:

| Name | Type | Required | Description | |------|------|----------|-------------| | ticker | string | Yes | Stock symbol (e.g., AAPL, MSFT) | | interval | string | Yes | 1min, 5min, 15min, 30min, 1hour, 4hour, 1day, 1week | | from | date | Yes | Start date (YYYY-MM-DD) | | to | date | Yes | End date (YYYY-MM-DD) |

Response:

{
  "ticker": "AAPL",
  "count": 21,
  "bars": [
    {
      "t": "2024-12-02T05:00:00.000Z",
      "o": 237.27,
      "h": 240.79,
      "l": 237.16,
      "c": 239.59,
      "v": 48137103,
      "vw": 239.4992,
      "n": 469685
    }
  ]
}

Response Fields:

| Field | Description | |-------|-------------| | t | Timestamp (ISO 8601 UTC) | | o | Open price | | h | High price | | l | Low price | | c | Close price | | v | Volume | | vw | Volume-weighted average price | | n | Number of transactions |


Get News

Retrieve financial news articles with sentiment analysis.

curl -X POST https://api.eng0.ai/api/data/stocks/news \
  -H "Content-Type: application/json" \
  -d '{
    "ticker": "TSLA",
    "limit": 5
  }'

Parameters:

| Name | Type | Required | Description | |------|------|----------|-------------| | ticker | string | Yes | Stock symbol | | limit | number | No | Max articles (default: 10, max: 100) |

Response:

{
  "count": 5,
  "articles": [
    {
      "title": "Tesla Stock Rises on Strong Delivery Numbers",
      "description": "Tesla reported better-than-expected Q4 deliveries...",
      "author": "John Smith",
      "publisher": "Reuters",
      "publishedAt": "2025-01-06T14:30:00Z",
      "url": "https://...",
      "tickers": ["TSLA"],
      "keywords": ["electric vehicles", "deliveries"],
      "sentiment": "positive",
      "sentimentReasoning": "Article discusses strong delivery numbers and positive market reaction."
    }
  ]
}

Sentiment Values: positive, negative, neutral


Get Company Details

Retrieve company information for a stock ticker.

curl -X POST https://api.eng0.ai/api/data/stocks/details \
  -H "Content-Type: application/json" \
  -d '{"ticker": "AAPL"}'

Parameters:

| Name | Type | Required | Description | |------|------|----------|-------------| | ticker | string | Yes | Stock symbol |

Response:

{
  "ticker": "AAPL",
  "name": "Apple Inc.",
  "description": "Apple Inc. designs, manufactures, and markets smartphones...",
  "market": "stocks",
  "primaryExchange": "XNAS",
  "type": "CS",
  "currencyName": "usd",
  "marketCap": 3949128102780,
  "listDate": "1980-12-12",
  "sicDescription": "ELECTRONIC COMPUTERS",
  "homepage": "https://www.apple.com",
  "totalEmployees": 164000
}

Common Workflows

Get Last 30 Days of Daily Prices

curl -X POST https://api.eng0.ai/api/data/stocks/bars \
  -H "Content-Type: application/json" \
  -d '{
    "ticker": "NVDA",
    "interval": "1day",
    "from": "2024-12-07",
    "to": "2025-01-07"
  }'

Get Intraday Data (1-minute bars)

curl -X POST https://api.eng0.ai/api/data/stocks/bars \
  -H "Content-Type: application/json" \
  -d '{
    "ticker": "AAPL",
    "interval": "1min",
    "from": "2025-01-06",
    "to": "2025-01-06"
  }'

Get Weekly Bars for 1 Year

curl -X POST https://api.eng0.ai/api/data/stocks/bars \
  -H "Content-Type: application/json" \
  -d '{
    "ticker": "MSFT",
    "interval": "1week",
    "from": "2024-01-01",
    "to": "2025-01-01"
  }'

Get Recent News with Sentiment

curl -X POST https://api.eng0.ai/api/data/stocks/news \
  -H "Content-Type: application/json" \
  -d '{
    "ticker": "GOOGL",
    "limit": 20
  }'

Using with Python

import requests

BASE_URL = "https://api.eng0.ai/api/data"

def get_price_bars(ticker: str, interval: str, from_date: str, to_date: str):
    """Get OHLCV price bars for a stock."""
    response = requests.post(
        f"{BASE_URL}/stocks/bars",
        json={
            "ticker": ticker,
            "interval": interval,
            "from": from_date,
            "to": to_date
        }
    )
    return response.json()

def get_news(ticker: str, limit: int = 10):
    """Get news articles with sentiment for a stock."""
    response = requests.post(
        f"{BASE_URL}/stocks/news",
        json={"ticker": ticker, "limit": limit}
    )
    return response.json()

def get_company_details(ticker: str):
    """Get company information."""
    response = requests.post(
        f"{BASE_URL}/stocks/details",
        json={"ticker": ticker}
    )
    return response.json()

# Examples
bars = get_price_bars("AAPL", "1day", "2024-12-01", "2024-12-31")
print(f"Got {bars['count']} bars for {bars['ticker']}")

news = get_news("TSLA", limit=5)
for article in news['articles']:
    print(f"[{article['sentiment']}] {article['title']}")

details = get_company_details("NVDA")
print(f"{details['name']}: Market Cap ${details['marketCap']:,}")

Error Handling

Invalid Parameters:

{
  "error": "Invalid parameters",
  "message": "Missing required parameter: ticker"
}

Unknown Operation:

{
  "error": "Unknown operation",
  "message": "Operation 'invalid' not found. Available: bars, news, details"
}

Important Notes

  • Tickers must be UPPERCASE (e.g., AAPL, not aapl)
  • All timestamps are UTC (ISO 8601 format)
  • Price data is 15-minute delayed
  • Historical data available for 5 years
  • No rate limits (use responsibly)

Combining with Other Skills

This skill provides market data. Combine with:

  • sec-edgar-skill (EdgarTools) → SEC filings, financial statements
  • financial-deep-research → Full research workflow and reports

Example combined workflow:

  1. Get company details and recent price bars (this skill)
  2. Get SEC filings and financial statements (sec-edgar-skill)
  3. Generate comprehensive research report (financial-deep-research)