← back to terminal

>_ TerminalFeed API

Free real-time data API. No auth. No API key. No signup. Just fetch.

FREE CORS ENABLED 100K REQUESTS/DAY

Base URL: https://terminalfeed.io/api

All responses are JSON. CORS is enabled — call from any domain, any app, any AI agent. Please keep individual endpoint calls to 1 per 30 seconds.

Quick Start

Fetch a world briefing in one call:

fetch('https://terminalfeed.io/api/briefing')
  .then(res => res.json())
  .then(data => console.log(data));

That's it. No signup, no key, no auth headers.

Endpoints

EndpointDescriptionCache
/api/briefingOne-call world snapshot — crypto, stocks, quakes, news, status60s
/api/btc-priceBitcoin price with 24h stats30s
/api/stocksTop US stocks — gainers, losers, indices15s
/api/crypto-moversTop 15 cryptos by 24h movement30s
/api/fear-greedCrypto Fear & Greed Index (0-100)5m
/api/forexCurrency exchange rates (USD base)5m
/api/earthquakeRecent global earthquakes M2.5+2m
/api/disaster-alertsGDACS global disaster alerts5m
/api/hackernewsTrending Hacker News stories60s
/api/predictionsPolymarket prediction markets60s
/api/service-statusGitHub, Cloudflare, OpenAI, etc. status60s
/api/weatherWeather by coordinates (?lat=&lon=)10m
/api/launchesUpcoming space launches10m
/api/humans-in-spacePeople currently in orbit1h
/api/github-trendingTrending GitHub repositories5m
/api/cyber-threatsMalware URLs & threat intel60s
/api/economic-dataFed rates, CPI, unemployment, treasury yields1h
/api/steamTop Steam games by concurrent players10m
/api/internet-pulseGlobal latency — ping times to 6 regions60s
/api/ai-statsTerminalFeed API usage statistics30s

Endpoint Details

GET /api/briefing

The one-call world snapshot. Returns a human-readable summary plus structured data across crypto, stocks, earthquakes, predictions, news, and service status. Best endpoint for AI agents.

Cache: 60 seconds

{
  "source": "terminalfeed.io",
  "generated_at": "2026-03-15T09:34:42.362Z",
  "summary": "BTC at $71,828 (+1.8% 24h). Fear & Greed: 15 (Extreme Fear). 4 recent earthquakes, largest M4.8 near Guatemala. All major services operational.",
  "sections": {
    "crypto": { ... },
    "fear_greed": { ... },
    "earthquakes": { ... },
    "predictions": [ ... ],
    "news": [ ... ],
    "services": [ ... ]
  }
}
GET /api/btc-price

Current Bitcoin price with 24-hour high, low, volume, and percentage change.

Cache: 30 seconds

{
  "source": "terminalfeed.io",
  "endpoint": "btc-price",
  "updated_at": "2026-03-15T09:34:42.362Z",
  "data": {
    "price_usd": 71828,
    "change_24h_percent": 1.765,
    "high_24h": 71940.49,
    "low_24h": 70389.08,
    "volume_24h_usd": 836157337.95
  }
}
GET /api/stocks

Top US stocks sorted by daily price movement. Returns biggest gainers, losers, and major indices (SPY, QQQ, DIA).

Cache: 15 seconds

{
  "data": {
    "gainers": [
      { "symbol": "NVDA", "price": 180.25, "change_percent": 4.32 }
    ],
    "losers": [
      { "symbol": "TSLA", "price": 391.20, "change_percent": -3.15 }
    ],
    "indices": [
      { "symbol": "SPY", "price": 662.29, "change_percent": 0.67 }
    ]
  }
}
GET /api/crypto-movers

Top 15 cryptocurrencies by market cap, sorted by biggest 24-hour price movements. Includes symbol, name, price, and change percentage.

Cache: 30 seconds

GET /api/fear-greed

Crypto Fear & Greed Index. 0 = Extreme Fear, 100 = Extreme Greed.

Cache: 5 minutes

{
  "data": {
    "value": 15,
    "label": "Extreme Fear"
  }
}
GET /api/forex

Currency exchange rates with USD as base. Covers EUR, GBP, JPY, CAD, AUD, CHF, and more.

Cache: 5 minutes

{
  "data": {
    "base": "USD",
    "date": "2026-03-14",
    "rates": {
      "EUR": 0.9158,
      "GBP": 0.7731,
      "JPY": 148.52
    }
  }
}
GET /api/earthquake

Recent global earthquakes magnitude 2.5 and above from USGS. Includes magnitude, location, depth, and time.

Cache: 2 minutes

{
  "data": {
    "count": 15,
    "earthquakes": [
      {
        "magnitude": 4.8,
        "location": "1 km SW of Colotenango, Guatemala",
        "time": "2026-03-15T08:12:00.000Z",
        "depth_km": 35.2
      }
    ]
  }
}
GET /api/weather?lat=34.0&lon=-118.2

Weather for any coordinates on Earth. Returns temperature (Fahrenheit), weather code, wind speed (mph), and humidity.

lat (required) — latitude

lon (required) — longitude

Cache: 10 minutes per location

GET /api/predictions

Top Polymarket prediction markets with current yes/no probabilities and trading volume in USD.

Cache: 60 seconds

{
  "data": [
    {
      "question": "Will the Fed cut rates in June 2026?",
      "yes_percent": 62,
      "no_percent": 38,
      "volume_usd": 4500000
    }
  ]
}
GET /api/hackernews

Trending Hacker News stories with scores, comment counts, and URLs.

Cache: 60 seconds

GET /api/service-status

Operational status of major tech services — GitHub, Cloudflare, Discord, OpenAI, Vercel, npm, Reddit, Atlassian.

Cache: 60 seconds

{
  "data": [
    { "name": "GitHub", "status": "operational", "description": "All Systems Operational" },
    { "name": "OpenAI", "status": "minor", "description": "Minor Service Outage" }
  ]
}
GET /api/launches

Upcoming space launches with name, provider, status, and scheduled time.

Cache: 10 minutes

GET /api/humans-in-space

Every human currently in orbit — names and spacecraft.

Cache: 1 hour

{
  "data": {
    "count": 7,
    "people": [
      { "name": "Oleg Kononenko", "craft": "ISS" }
    ]
  }
}
GET /api/cyber-threats

Recent malware URLs, indicators of compromise, and threat intelligence from abuse.ch and ThreatFox.

Cache: 60 seconds

GET /api/disaster-alerts

Global disaster alerts from GDACS (UN/EU) — cyclones, floods, earthquakes, wildfires, volcanoes.

Cache: 5 minutes

GET /api/github-trending

Trending GitHub repositories by recent star activity.

Cache: 5 minutes

GET /api/economic-data

US Federal Reserve economic indicators — fed funds rate, CPI inflation, unemployment, 10-year treasury yield, 30-year mortgage rate.

Cache: 1 hour

GET /api/steam

Top Steam games by current concurrent players with today's peak.

Cache: 10 minutes

GET /api/internet-pulse

Global latency check — ping times to 6 endpoints across US East, US West, Europe, Asia, Cloudflare, and Google. Latency in milliseconds, -1 means the endpoint is unreachable.

Cache: 60 seconds

{
  "source": "terminalfeed.io",
  "endpoint": "internet-pulse",
  "updated_at": "2026-03-15T09:34:42.362Z",
  "data": [
    { "name": "US East", "latency_ms": 24 },
    { "name": "US West", "latency_ms": 67 },
    { "name": "Europe", "latency_ms": 112 },
    { "name": "Asia", "latency_ms": 185 },
    { "name": "Cloudflare", "latency_ms": 8 },
    { "name": "Google", "latency_ms": 12 }
  ]
}
GET /api/ai-stats

TerminalFeed API usage statistics — total hits, unique AI agents, recent API calls.

Cache: 30 seconds

Response Format

Every endpoint returns a consistent JSON structure:

{
  "source": "terminalfeed.io",
  "endpoint": "endpoint-name",
  "updated_at": "ISO-8601 timestamp",
  "data": { ... }
}
FieldDescription
sourceAlways "terminalfeed.io" for attribution
endpointWhich endpoint was called
updated_atWhen data was last refreshed from the upstream source
dataThe actual payload (structure varies per endpoint)

Code Examples

JavaScript (Browser or Node.js)

// Get BTC price
const btc = await fetch('https://terminalfeed.io/api/btc-price').then(r => r.json());
console.log(`Bitcoin: $${btc.data.price_usd}`);

// Get Fear & Greed
const fg = await fetch('https://terminalfeed.io/api/fear-greed').then(r => r.json());
console.log(`Fear & Greed: ${fg.data.value} (${fg.data.label})`);

// Get everything at once
const briefing = await fetch('https://terminalfeed.io/api/briefing').then(r => r.json());
console.log(briefing.summary);

Python

import requests

# Get BTC price
btc = requests.get('https://terminalfeed.io/api/btc-price').json()
print(f"Bitcoin: ${btc['data']['price_usd']:,.2f}")

# Get earthquakes
quakes = requests.get('https://terminalfeed.io/api/earthquake').json()
for q in quakes['data']['earthquakes'][:5]:
    print(f"M{q['magnitude']} - {q['location']}")

# Get the full world briefing
briefing = requests.get('https://terminalfeed.io/api/briefing').json()
print(briefing['summary'])

cURL

curl https://terminalfeed.io/api/btc-price
curl https://terminalfeed.io/api/briefing
curl "https://terminalfeed.io/api/weather?lat=34.0&lon=-118.2"

React Component

import { useState, useEffect } from 'react';

const BtcPrice = () => {
  const [price, setPrice] = useState(null);

  useEffect(() => {
    const fetchPrice = async () => {
      const res = await fetch('https://terminalfeed.io/api/btc-price');
      const data = await res.json();
      setPrice(data.data.price_usd);
    };
    fetchPrice();
    const interval = setInterval(fetchPrice, 30000);
    return () => clearInterval(interval);
  }, []);

  return <div>BTC: ${price?.toLocaleString()}</div>;
};

For AI Agents

Discovery file: https://terminalfeed.io/llms.txt

OpenAPI spec: https://terminalfeed.io/openapi.json

Best endpoint for AI: /api/briefing — one call, complete world snapshot with a pre-formatted summary string.

Rate Limits

100,000 requests per day across all endpoints. Keep individual endpoint calls to a maximum of 1 request per 30 seconds. If you exceed limits, you'll receive a 429 status code. There is no penalty — just back off and retry.

Data is cached server-side at the intervals listed above. Calling more frequently than the cache interval will return the same data, so there's no benefit to polling faster.

Contact

Questions, bugs, or feature requests: hello@terminalfeed.io

Built by Ripper. terminalfeed.io