LIVE
OPUS 4.7$15 / $75per Mtok
SONNET 4.6$3 / $15per Mtok
GPT-5.5$10 / $30per Mtok
GEMINI 3.1$3.50 / $10.50per Mtok
SWE-BENCHleader Claude Opus 4.772.1%
MMLU-PROleader Opus 4.788.4
VALS FINANCEleader Opus 4.764.4%
AFTAv1.0 whitepaper live at /whitepaper
OPUS 4.7$15 / $75per Mtok
SONNET 4.6$3 / $15per Mtok
GPT-5.5$10 / $30per Mtok
GEMINI 3.1$3.50 / $10.50per Mtok
SWE-BENCHleader Claude Opus 4.772.1%
MMLU-PROleader Opus 4.788.4
VALS FINANCEleader Opus 4.764.4%
AFTAv1.0 whitepaper live at /whitepaper
All systems operational0 AI providers monitored, polled every 2 minutes
Live status

TensorFeed API

Free, no-auth JSON API for AI news, status, and model data.

This API is Agent Fair-Trade certified.

AFTA

Open pricing, code-enforced no-charge on 5xx, breaker, schema fail, or stale data. Ed25519-signed receipts on every paid call. Read the full standard and machine-readable manifest at /.well-known/agent-fair-trade.json.

Read the standard

Rate Limits

No API key needed. CORS enabled. Cache responses appropriately. All endpoints return JSON unless otherwise noted. Base URL: https://tensorfeed.ai

Premium Agent API (paid, USDC on Base)

Pay-per-call premium tier for ranked model routing recommendations and computed intelligence. USDC on Base, no accounts, no API keys, no traditional processors. See the full payment flow, endpoints, and SDK examples.

API Playground

Run live queries against every free endpoint in your browser. No login, no key. See the JSON, copy the curl.

LangChain, LlamaIndex, CrewAI

Drop-in tools and document loaders for the three major Python agent frameworks. pip install tensorfeed[langchain].

OpenAPI 3.1 Spec

Full machine-readable spec at /openapi.yaml and /openapi.json. Drop into Swagger UI, Postman, or any code generator.

Postman Collection

Pre-built collection (33 requests, 20 folders) at /postman-collection.json. Import directly into Postman or any tool that speaks Collection v2.1.

HF Dataset

Daily JSONL mirror at tensorfeed/ai-ecosystem-daily. 44 feeds, inference-only license. load_dataset(repo, "news").

Endpoints

GET/api/news?category=OpenAI&limit=10

AI news articles from all major sources. Filter by category or limit results.

Cache for 5 minutes

Example response

{
  "ok": true,
  "articles": [
    {
      "title": "GPT-4.5 Now Available in API",
      "source": "OpenAI Blog",
      "url": "https://openai.com/...",
      "category": "OpenAI",
      "publishedAt": "2026-03-28T12:00:00Z"
    }
  ]
}
GET/api/status

Real-time operational status for all major AI services including Claude, OpenAI, Gemini, and more.

Cache for 2 minutes

Example response

{
  "ok": true,
  "services": [
    {
      "name": "Claude API",
      "provider": "Anthropic",
      "status": "operational",
      "components": [
        { "name": "API", "status": "operational" },
        { "name": "Console", "status": "operational" }
      ],
      "lastChecked": "2026-03-28T12:00:00Z"
    }
  ]
}
GET/api/status/summary

Quick summary of all service statuses. Lighter payload for dashboards and monitoring.

Cache for 2 minutes

Example response

{
  "ok": true,
  "summary": {
    "total": 8,
    "operational": 7,
    "degraded": 1,
    "down": 0
  }
}
GET/api/status/leaderboard

Cross-provider uptime ranking computed from minute-resolution counters (one sample every 2 minutes per provider, ~720 samples per provider per day). Returns providers ranked by uptime % DESC with downtime_minutes, hard_down_minutes, and per-bucket poll counts. Free tier capped at 7 days; the paid /api/premium/status/leaderboard extends to 90 days and adds incident_count + mttr_minutes per provider.

Cache for 5 minutes

Example response

// Query: ?days=7
{
  "ok": true,
  "range": { "from": "2026-04-28", "to": "2026-05-04", "days": 7 },
  "generated_at": "2026-05-04T21:00:00Z",
  "entry_count": 10,
  "poll_interval_minutes": 2,
  "entries": [
    {
      "provider": "Claude API",
      "rank": 1,
      "uptime_pct": 99.9802,
      "polls": 5040,
      "operational_polls": 5038,
      "degraded_polls": 2,
      "down_polls": 0,
      "unknown_polls": 0,
      "downtime_minutes": 4,
      "hard_down_minutes": 0
    }
  ]
}
GET/api/models

AI model pricing and specifications across all major providers. Input/output costs per 1M tokens, context windows.

Cache for 1 hour

Example response

{
  "ok": true,
  "lastUpdated": "2026-03-28",
  "providers": [
    {
      "name": "Anthropic",
      "models": [
        {
          "id": "claude-opus-4-6",
          "name": "Claude Opus 4.6",
          "inputPrice": 15.00,
          "outputPrice": 75.00,
          "contextWindow": 200000
        }
      ]
    }
  ]
}
GET/api/agents/directory

Directory of AI agents and autonomous systems with descriptions, categories, and links.

Cache for 15 minutes

Example response

{
  "ok": true,
  "agents": [
    {
      "name": "Devin",
      "category": "Coding",
      "description": "Autonomous software engineer...",
      "url": "https://devin.ai"
    }
  ]
}
GET/api/agents/activity

Agent traffic metrics and activity data showing how AI agents interact with TensorFeed.

Cache for 5 minutes

Example response

{
  "ok": true,
  "metrics": {
    "totalRequests": 12450,
    "uniqueAgents": 38,
    "topEndpoints": ["/api/news", "/api/status"]
  }
}
GET/api/health

Simple health check endpoint. Returns 200 if the service is running.

No cache needed

Example response

{
  "ok": true,
  "status": "healthy",
  "timestamp": "2026-03-28T12:00:00Z"
}
GET/api/meta

Endpoint discovery. Lists all available API routes, descriptions, and formats.

Cache for 1 hour

Example response

{
  "ok": true,
  "endpoints": [
    { "path": "/api/news", "method": "GET", "description": "AI news articles" },
    { "path": "/api/status", "method": "GET", "description": "Service status" }
  ]
}
GET/feed.xml

RSS 2.0 feed of the latest AI news articles. Compatible with all standard feed readers.

Cache for 5 minutes

Example response

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>TensorFeed.ai</title>
    <item>
      <title>GPT-4.5 Now Available</title>
      <link>https://openai.com/...</link>
    </item>
  </channel>
</rss>
GET/feed.json

JSON Feed 1.1 format. Same content as the RSS feed but in JSON for easier parsing.

Cache for 5 minutes

Example response

{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "TensorFeed.ai",
  "items": [
    {
      "id": "...",
      "title": "GPT-4.5 Now Available",
      "url": "https://openai.com/..."
    }
  ]
}
GET/api/gpu/pricing

Aggregated GPU rental pricing across cloud GPU marketplaces (RunPod when key configured + Lambda Labs public-pricing snapshot; CoreWeave, hyperscalers planned). Cheapest on-demand and spot price per canonical GPU class (H200, H100, A100, RTX 4090, MI300X, etc), normalized from heterogeneous provider naming. Refreshed every 4 hours. Daily snapshot powers the free /api/gpu/pricing/series endpoint.

Cache for 10 minutes

Example response

{
  "ok": true,
  "snapshot": {
    "capturedAt": "2026-04-29T18:15:00Z",
    "providers": ["vast", "runpod"],
    "by_canonical": [
      {
        "canonical": "H100", "vram_gb": 80,
        "provider_count": 2, "total_offers": 47,
        "cheapest_on_demand": { "provider": "runpod", "usd_hr": 1.99, "gpu_raw": "H100 80GB SXM5" },
        "cheapest_spot": { "provider": "vast", "usd_hr": 1.45, "gpu_raw": "H100" }
      }
    ]
  }
}
GET/api/gpu/pricing/cheapest?gpu=H100&type=on_demand|spot

Top 3 cheapest current GPU offers for one canonical GPU class. Designed as the agent-friendly entry point: an agent picking a GPU does not need the full snapshot, just where to rent this right now and for how much.

Cache for 5 minutes

Example response

{
  "ok": true,
  "gpu": "H100", "vram_gb": 80, "type": "on_demand",
  "results": [
    { "provider": "runpod", "usd_hr": 1.99, "gpu_raw": "H100 80GB SXM5", "available_count": 2, "region": null },
    { "provider": "vast", "usd_hr": 2.10, "gpu_raw": "H100 PCIe", "available_count": 1, "region": "US-East" }
  ]
}
GET/api/papers/ai-trending

Daily curated AI/ML research papers, sourced from Semantic Scholar and ranked by citation count. Five fan-out queries (large language model, transformer, RLHF, AI agents, diffusion model) merged and deduped by paperId. Each paper carries title, abstract, authors, year, venue, citation count, arxivId, doi, and fieldsOfStudy. Refreshed daily at 11:00 UTC.

Cache for 10 minutes

Example response

{
  "ok": true,
  "snapshot": {
    "date": "2026-05-04",
    "capturedAt": "2026-05-04T11:00:00Z",
    "total_papers": 30,
    "papers": [
      {
        "paperId": "...",
        "title": "Attention Is All You Need",
        "abstract": "...",
        "authors": ["Vaswani", "Shazeer"],
        "year": 2017,
        "venue": "NeurIPS",
        "citationCount": 100000,
        "arxivId": "1706.03762",
        "doi": "10.x/y",
        "url": "https://...",
        "fieldsOfStudy": ["Computer Science"]
      }
    ],
    "summary": {
      "by_year": { "2025": 12, "2024": 9 },
      "top_venues": [{ "venue": "NeurIPS", "count": 4 }],
      "top_authors": [{ "author": "...", "count": 2 }]
    }
  }
}
GET/api/today

Composite "AI ecosystem today" brief. Single edge-cached endpoint that fans out across every daily TensorFeed feed (news, 3 paper feeds, HF models/datasets/Spaces, hot GitHub issues, Reddit threads, OpenRouter catalog summary, provider status) and returns a structured response. Saves a client from orchestrating 9 separate calls. Optional ?sections=news,papers,hf,community,inference,status filter and ?limit=1-10 (default 3 items per subsection).

Cache for 5 minutes

Example response

{
  "ok": true,
  "generated_at": "2026-05-04T15:00:00.000Z",
  "sections_included": ["news","papers","hf","community","inference","status"],
  "limit_per_section": 3,
  "news": { "available": true, "captured_at": "...", "data": { "items": [...] } },
  "papers": { "available": true, "data": { "ai_trending": {...}, "arxiv_recent": {...}, "hf_daily": {...} } },
  "hf": { "available": true, "data": { "models": [...], "datasets": [...], "spaces": [...] } },
  "community": { "available": true, "data": { "github_issues": [...], "reddit": [...] } },
  "inference": { "available": true, "data": { "total_models": 240, "cheapest_input": {...}, "free_tier_count": 8, ... } },
  "status": { "available": true, "data": { "all_operational": true, "service_count": 14, "issues": [] } }
}
GET/api/papers/hf-daily

Hugging Face's editor-curated daily AI/ML papers feed, layered with community upvotes and discussion counts. Different signal from /api/papers/arxiv-recent (firehose of recent submissions) and /api/papers/ai-trending (citation-ranked all-time): this is editor picks of-the-day with HF community engagement on top. Each paper carries paperId, title (sanitized at capture time), summary, authors, upvotes, num_comments, hf_url, arxiv_url (when arxiv-style), github_repo, github_stars, ai_keywords. Refreshed daily at 14:15 UTC.

Cache for 10 minutes

Example response

{
  "ok": true,
  "snapshot": {
    "date": "2026-05-04",
    "capturedAt": "2026-05-04T14:30:00Z",
    "total_papers": 30,
    "papers": [
      {
        "paperId": "2401.12345",
        "title": "...",
        "summary": "...",
        "authors": ["Alice", "Bob"],
        "upvotes": 142,
        "num_comments": 12,
        "hf_url": "https://huggingface.co/papers/2401.12345",
        "arxiv_url": "https://arxiv.org/abs/2401.12345",
        "github_repo": "https://github.com/foo/bar",
        "github_stars": 1500,
        "ai_keywords": ["llm","reasoning"]
      }
    ],
    "summary": {
      "by_keyword": [{ "keyword": "llm", "count": 12 }],
      "most_upvoted": { "paperId": "...", "title": "...", "upvotes": 280 },
      "most_discussed": { "paperId": "...", "title": "...", "comments": 45 }
    }
  }
}
GET/api/papers/arxiv-recent

Most recent arXiv submissions in cs.AI / cs.LG / cs.CL / cs.CV. Single call to the arXiv Atom API, parsed, deduped by arxivId, sorted by publication date. Each entry carries title, abstract, authors, primary category, all categories, publishedAt, updatedAt, htmlUrl, pdfUrl, and doi. Refreshed daily at 11:30 UTC. Pairs with /api/papers/ai-trending: arxiv-recent is the firehose of brand-new submissions, ai-trending is the citation-ranked top of the field.

Cache for 10 minutes

Example response

{
  "ok": true,
  "snapshot": {
    "date": "2026-05-04",
    "capturedAt": "2026-05-04T11:30:00Z",
    "total_papers": 50,
    "categories_queried": ["cs.AI", "cs.LG", "cs.CL", "cs.CV"],
    "papers": [
      {
        "arxivId": "2401.12345",
        "version": "v2",
        "title": "...",
        "abstract": "...",
        "authors": ["Alice", "Bob"],
        "primaryCategory": "cs.AI",
        "publishedAt": "2026-05-04T09:00:00Z",
        "htmlUrl": "https://arxiv.org/abs/2401.12345v2",
        "pdfUrl": "https://arxiv.org/pdf/2401.12345v2"
      }
    ]
  }
}
GET/api/hf/trending

Top Hugging Face models, datasets, and Spaces (the three asset classes). Models and datasets ranked by downloads (top 30 each); Spaces ranked by likes (top 30, since downloads is meaningless for hosted apps). Captured daily at 12:00 UTC against the public HF API (no auth). Once we have multiple days of snapshots, day-over-day deltas become a real "trending" signal. Pairs with the existing TensorFeed HF dataset (tensorfeed/ai-ecosystem-daily) which we publish back into the HF community.

Cache for 10 minutes

Example response

{
  "ok": true,
  "snapshot": {
    "date": "2026-05-04",
    "capturedAt": "2026-05-04T12:00:00Z",
    "models": {
      "sort": "downloads", "count": 30,
      "items": [
        { "id": "sentence-transformers/all-MiniLM-L6-v2",
          "downloads": 12000000, "likes": 1800,
          "pipeline_tag": "sentence-similarity",
          "tags": ["sentence-transformers"], "lastModified": "..." }
      ]
    },
    "datasets": { "sort": "downloads", "count": 30, "items": [...] },
    "spaces": {
      "sort": "likes", "count": 30,
      "items": [
        { "id": "huggingface-projects/llama-3-8b-demo",
          "author": "huggingface-projects", "sdk": "gradio",
          "likes": 4200, "tags": ["chat","llm"],
          "runtime_stage": "RUNNING", "hardware": "a10g-large" }
      ]
    },
    "summary": {
      "top_pipeline_tags": [{ "tag": "text-generation", "count": 12 }],
      "top_namespaces": [{ "namespace": "meta-llama", "count": 4 }],
      "top_space_sdks": [{ "sdk": "gradio", "count": 21 }]
    }
  }
}
GET/api/issues/hot

Currently-hot GitHub issues across the AI ecosystem, ranked by comment count. Five fan-out keyword-phrase searches ("large language model", "AI agent", transformer, "machine learning", LLM) filtered to is:issue is:open archived:false with comments>=10 and activity within the last 7 days. Deduped by URL, top 30 returned. Refreshed daily at 12:30 UTC. Companion to /api/trending-repos: that one shows which AI repos are gaining stars; this one shows where the active conversations are.

Cache for 10 minutes

Example response

{
  "ok": true,
  "snapshot": {
    "date": "2026-05-04",
    "capturedAt": "2026-05-04T12:30:00Z",
    "total_issues": 30,
    "topics_queried": ["llm", "ai-agents", "large-language-models", "machine-learning", "transformer"],
    "recent_window_days": 7,
    "comments_threshold": 10,
    "issues": [
      {
        "url": "https://github.com/foo/bar/issues/42",
        "repo": "foo/bar",
        "number": 42,
        "title": "...",
        "author": "alice",
        "state": "open",
        "comments": 87,
        "reactions_total": 42,
        "labels": ["bug", "help wanted"],
        "created_at": "2026-04-30T09:00:00Z",
        "updated_at": "2026-05-04T11:15:00Z",
        "matched_topic": "llm"
      }
    ],
    "summary": {
      "by_topic": { "llm": 12, "ai-agents": 6 },
      "top_repos": [{ "repo": "foo/bar", "count": 3 }]
    }
  }
}
GET/api/openrouter/models

Daily snapshot of OpenRouter's normalized cross-provider model catalog. 200+ models across 50+ inference providers (Anthropic, OpenAI, Google, Meta, Mistral, DeepSeek, Together, Fireworks, Groq, etc) with comparable per-token pricing (prompt, completion, image, request), context window, modality (e.g. text+image->text), instruct_type, tokenizer, top provider metadata (max_completion_tokens, is_moderated), and supported_parameters. Snapshot summary surfaces by_namespace, by_modality, cheapest_input/output (excluding free tier), largest_context, and free_tier_count. Pairs with /api/models: curated frontier-lab catalog there, OSS-on-cloud long tail here. Refreshed daily at 14:00 UTC.

Cache for 10 minutes

Example response

{
  "ok": true,
  "snapshot": {
    "date": "2026-05-04",
    "capturedAt": "2026-05-04T14:00:00Z",
    "total_models": 240,
    "models": [
      {
        "id": "anthropic/claude-3.5-sonnet",
        "name": "Claude 3.5 Sonnet",
        "context_length": 200000,
        "modality": "text+image->text",
        "instruct_type": "claude",
        "pricing": { "prompt": 0.000003, "completion": 0.000015, "image": 0.0048, "request": 0 },
        "top_provider": { "max_completion_tokens": 8192, "is_moderated": true },
        "supported_parameters": ["temperature", "top_p", "tools"]
      }
    ],
    "summary": {
      "by_namespace": [{ "namespace": "anthropic", "count": 4 }, { "namespace": "openai", "count": 12 }],
      "by_modality": { "text->text": 180, "text+image->text": 35 },
      "cheapest_input": { "id": "...", "usd_per_million": 0.07 },
      "cheapest_output": { "id": "...", "usd_per_million": 0.21 },
      "largest_context": { "id": "...", "tokens": 2000000 },
      "free_tier_count": 8
    }
  }
}
GET/api/reddit/trending

Currently-hot threads in 7 AI-relevant subreddits (LocalLLaMA, MachineLearning, ClaudeAI, OpenAI, singularity, artificial, AI_Agents). Each subreddit polled via the public Reddit JSON endpoint, stickied and NSFW posts filtered, deduped by post id, top 30 by score. Refreshed daily at 13:00 UTC. Companion to /api/issues/hot: GitHub developer conversation vs Reddit community conversation. Titles pass through TensorFeed prompt-injection sanitization at capture time.

Cache for 10 minutes

Example response

{
  "ok": true,
  "snapshot": {
    "date": "2026-05-04",
    "capturedAt": "2026-05-04T13:00:00Z",
    "total_posts": 30,
    "subreddits_queried": ["LocalLLaMA","MachineLearning","ClaudeAI","OpenAI","singularity","artificial","AI_Agents"],
    "posts": [
      {
        "id": "t3_abc123",
        "subreddit": "LocalLLaMA",
        "title": "...",
        "author": "someone",
        "score": 1500,
        "upvote_ratio": 0.94,
        "num_comments": 230,
        "permalink": "https://reddit.com/r/LocalLLaMA/comments/abc123/...",
        "url": "https://huggingface.co/...",
        "created_utc": 1714824000,
        "flair": "New Model",
        "is_self": false,
        "is_video": false
      }
    ],
    "summary": {
      "by_subreddit": { "LocalLLaMA": 11, "MachineLearning": 6 },
      "top_authors": [{ "author": "someone", "count": 2 }]
    }
  }
}
GET/api/agents/news.json

Alias for /api/news. Agent-friendly URL for news data.

Cache for 5 minutes

Example response

{ "ok": true, "articles": [...] }
GET/api/agents/status.json

Alias for /api/status. Agent-friendly URL for status data.

Cache for 2 minutes

Example response

{ "ok": true, "services": [...] }
GET/api/agents/pricing.json

Alias for /api/models. Agent-friendly URL for pricing data.

Cache for 1 hour

Example response

{ "ok": true, "providers": [...] }
GET/api/history/news

Daily archive of TensorFeed deduped news articles for one UTC date. Free tier capped at 25 articles per day. Each daily snapshot is captured by every hourly RSS poll, so the value at lookup is the last poll before the day ended (or the most recent poll for today). Full untruncated archive and date ranges live behind the premium /api/premium/history/news/full endpoint.

Cache for 24 hours

Example response

// Query: ?date=2026-05-08&limit=10
{
  "ok": true,
  "tier": "free",
  "date": "2026-05-08",
  "captured_at": "2026-05-08T14:00:11Z",
  "articles_count": 187,
  "articles_returned": 10,
  "articles": [{ "title": "...", "url": "...", "source": "..." }]
}
GET/api/history/news/sources

Per-source RSS poll reliability rollup for one UTC date. Each entry carries polls (total polls in the UTC day), polls_ok, polls_empty, polls_error, articles_total, reliability_pct, last_status, and last_error. Free, no auth. Sorted by reliability_pct descending. Multi-day series at the premium /api/premium/history/news/source-health endpoint.

Cache for 1 hour

Example response

// Query: ?date=2026-05-08
{
  "ok": true,
  "tier": "free",
  "date": "2026-05-08",
  "total_polls": 14,
  "sources_count": 12,
  "sources": [
    { "id": "anthropic", "name": "Anthropic Blog", "polls": 14, "polls_ok": 14, "polls_empty": 0, "polls_error": 0, "articles_total": 18, "reliability_pct": 100, "last_status": "ok" }
  ]
}
GET/api/history/news/dates

Ordered list of UTC dates with a daily news snapshot available. Free, no auth. Useful for paging the archive backward from today.

Cache for 1 hour

Example response

{ "ok": true, "tier": "free", "count": 3, "dates": ["2026-05-06", "2026-05-07", "2026-05-08"] }
GET/api/history/news/sources/dates

Ordered list of UTC dates with a source-health rollup available. Free, no auth.

Cache for 1 hour

Example response

{ "ok": true, "tier": "free", "count": 3, "dates": ["2026-05-06", "2026-05-07", "2026-05-08"] }
GET/api/security/cve/{CVE-id}

Single CVE Record v5.2 lookup, lazy-fetched from MITRE's open CVE Services API and cached 7 days. Path id is canonical CVE-YYYY-NNNNN form (case insensitive on input). License: MITRE CVE Terms of Use, commercial redistribution explicitly permitted; the response includes the standard attribution block.

Cache for 1 hour

Example response

// GET /api/security/cve/CVE-2024-3094
{
  "ok": true,
  "cve_id": "CVE-2024-3094",
  "source": "cache",
  "fetched_at": "2026-05-08T19:00:00Z",
  "record": {
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": { "cveId": "CVE-2024-3094", "state": "PUBLISHED", "datePublished": "2024-03-29T16:51:12Z" },
    "containers": { "cna": { "title": "xz: malicious code in distributed source" } }
  },
  "attribution": {
    "source": "MITRE CVE List",
    "source_url": "https://www.cve.org",
    "license": "MITRE CVE Terms of Use",
    "redistribution": "commercial-permitted"
  }
}
GET/api/security/cve/recent

Ring buffer of CVE IDs added or modified in the cvelistV5 GitHub repo over roughly the last 24 hours. Daily cron walks commit history and dedupes. Pair with /api/security/cve/{id} for the per-record body.

Cache for 5 minutes

Example response

// Query: ?limit=10
{
  "ok": true,
  "tier": "free",
  "count": 10,
  "cve_ids": ["CVE-2026-2042", "CVE-2026-2041", "CVE-2026-2040", "..."],
  "last_capture": { "last_run": "2026-05-08T04:30:11Z", "newly_seen": 187, "scanned_commits": 42 }
}
GET/api/security/cve/by-date/{YYYY-MM-DD}

CVE IDs added or modified in cvelistV5 commits on one UTC day. Free, no auth. The data moat compounds with each daily run; older dates predate this endpoint.

Cache for 24 hours

Example response

// GET /api/security/cve/by-date/2026-05-08
{
  "ok": true,
  "tier": "free",
  "date": "2026-05-08",
  "count": 187,
  "cve_ids": ["CVE-2026-1942", "CVE-2026-1943", "CVE-2026-1944", "..."]
}
GET/api/security/cve/dates

Ordered list of UTC dates with CVE-by-date data captured. Free, no auth. Useful for paging the archive backward from today.

Cache for 1 hour

Example response

{ "ok": true, "tier": "free", "count": 1, "dates": ["2026-05-08"] }
GET/api/security/kev

CISA Known Exploited Vulnerabilities catalog (top 50 most recent). Each entry carries cveID, vendorProject, product, vulnerabilityName, dateAdded, shortDescription, requiredAction, dueDate, knownRansomwareCampaignUse, notes, and CWE list. Refreshed daily at 06:30 UTC. License: US Government public domain.

Cache for 30 minutes

Example response

{
  "ok": true,
  "tier": "free",
  "catalog_version": "2026.05.08",
  "date_released": "2026-05-08T17:31:07Z",
  "total_entries": 1590,
  "returned": 50,
  "most_recent": [
    {
      "cveID": "CVE-2026-42208",
      "vendorProject": "BerriAI",
      "product": "LiteLLM",
      "vulnerabilityName": "BerriAI LiteLLM SQL Injection",
      "dateAdded": "2026-05-08",
      "knownRansomwareCampaignUse": "Unknown",
      "cwes": ["CWE-89"]
    }
  ]
}
GET/api/security/kev/{CVE-id}

Single KEV entry by CVE ID. Returns 404 if the CVE is not on the KEV catalog (which is the common case; only ~1500 of ~270K CVEs are on KEV). Pair with /api/security/cve/{id} for the underlying CVE Record.

Cache for 1 hour

Example response

// GET /api/security/kev/CVE-2026-42208
{
  "ok": true,
  "cve_id": "CVE-2026-42208",
  "entry": {
    "cveID": "CVE-2026-42208",
    "vendorProject": "BerriAI",
    "product": "LiteLLM",
    "dateAdded": "2026-05-08",
    "dueDate": "2026-05-11"
  }
}
GET/api/security/kev/added/{YYYY-MM-DD}

KEV entries with dateAdded == one UTC day. Free, no auth. The data moat compounds with each daily run.

Cache for 24 hours

Example response

// GET /api/security/kev/added/2026-05-08
{ "ok": true, "tier": "free", "date": "2026-05-08", "count": 3, "entries": [...] }
GET/api/security/kev/dates

Ordered list of UTC dates with KEV-added entries captured. Free, no auth.

Cache for 1 hour

Example response

{ "ok": true, "tier": "free", "count": 1, "dates": ["2026-05-08"] }
GET/api/security/epss/{CVE-id}

EPSS (Exploit Prediction Scoring System) score for one CVE. Returns the daily probability (0 to 1) that the CVE will be exploited in the next 30 days plus a percentile rank within the EPSS corpus. Lazy-fetched from FIRST.org's API and cached 24 hours. License: FIRST.org's published policy permits free use, commercial redistribution permitted.

Cache for 1 hour

Example response

// GET /api/security/epss/CVE-2024-3094
{
  "ok": true,
  "tier": "free",
  "cve_id": "CVE-2024-3094",
  "source": "live",
  "score": { "cve": "CVE-2024-3094", "epss": "0.850580000", "percentile": "0.993590000", "date": "2026-05-08" }
}
GET/api/security/epss/top

Top-N highest-EPSS CVEs as of the current daily snapshot. Free, no auth. Premium /api/premium/security/epss/top adds historical date filtering.

Cache for 30 minutes

Example response

// Query: ?limit=3
{
  "ok": true,
  "tier": "free",
  "count": 3,
  "top": [
    { "cve": "CVE-2023-23752", "epss": "0.945200000", "percentile": "1.000000000", "date": "2026-05-08" },
    { "cve": "CVE-2017-8917",  "epss": "0.945130000", "percentile": "1.000000000", "date": "2026-05-08" },
    { "cve": "CVE-2018-7600",  "epss": "0.944890000", "percentile": "1.000000000", "date": "2026-05-08" }
  ]
}
GET/api/climate/power/daily

NASA POWER global meteorological and solar energy data for one point, daily resolution. 40+ years of history at 0.5-degree spatial resolution, sourced from MERRA2 reanalysis. Range capped at 365 days. License: NASA POWER open access, US Government public domain (17 USC 105).

Cache for 24 hours

Example response

// Query: ?latitude=34.0522&longitude=-118.2437&parameters=T2M,PRECTOTCORR&start=20260101&end=20260105
{
  "ok": true,
  "tier": "free",
  "source": "live",
  "query": { "latitude": 34.0522, "longitude": -118.2437, "parameters": ["T2M", "PRECTOTCORR"], "start": "20260101", "end": "20260105", "community": "AG", "temporal": "daily" },
  "data": {
    "type": "Feature",
    "geometry": { "type": "Point", "coordinates": [-118.244, 34.052, 395.0] },
    "properties": { "parameter": { "T2M": { "20260101": 13.57, "20260102": 14.07 }, "PRECTOTCORR": { "20260101": 21.84, "20260102": 5.71 } } },
    "header": { "sources": ["MERRA2"] },
    "parameters": { "T2M": { "units": "C", "longname": "Temperature at 2 Meters" } }
  }
}
GET/api/climate/power/parameters

Curated catalog of the most-requested NASA POWER parameter codes with units, longnames, and recommended community (AG=agriculture, RE=renewable energy, SB=sustainable buildings). NASA exposes 100+ parameters; this catalog covers the common cases. Pass any documented code to /api/climate/power/daily even if not in this list.

Cache for 24 hours

Example response

{
  "ok": true,
  "tier": "free",
  "count": 16,
  "parameters": [
    { "code": "T2M", "units": "C", "longname": "Temperature at 2 Meters", "community": "AG" },
    { "code": "ALLSKY_SFC_SW_DWN", "units": "kWh/m^2/day", "longname": "All Sky Surface Shortwave Downward Irradiance", "community": "RE" }
  ]
}
GET/api/health/fda/categories

Directory of supported openFDA categories with descriptions and per-endpoint TF paths. Free, no auth. License: CC0 1.0 Universal Dedication; the FDA has waived all copyright interests, commercial redistribution permitted with no attribution requirement.

Cache for 24 hours

Example response

{
  "ok": true,
  "tier": "free",
  "count": 5,
  "categories": [
    { "category": "drug/events", "tf_endpoint": "/api/health/fda/drug/events", "description": "FAERS adverse event reports..." }
  ]
}
GET/api/health/fda/{category}

OpenFDA query proxy. Category is one of: drug/events (FAERS adverse events, ~10M records), drug/labels (structured drug labels), drug/recalls (drug enforcement reports), food/recalls (food enforcement reports), device/events (MAUDE device adverse events). Lucene-style search via ?search=field:value+AND+field:value, plus ?limit=1-100, ?skip=, ?sort=field:asc|desc.

Cache for 1 hour

Example response

// GET /api/health/fda/drug/events?search=patient.drug.medicinalproduct:aspirin&limit=5
{
  "ok": true,
  "tier": "free",
  "source": "live",
  "data": {
    "meta": { "last_updated": "2026-04-28", "results": { "skip": 0, "limit": 5, "total": 609465 } },
    "results": [
      { "safetyreportid": "10003304", "primarysourcecountry": "US", "patient": { "drug": [{ "medicinalproduct": "ASPIRIN" }] } }
    ]
  }
}
GET/api/economy/eia/categories

Curated catalog of high-demand EIA Open Data routes with descriptions, default frequencies, and example facet filters. Free, no auth. License: US Government public domain.

Cache for 24 hours

Example response

{
  "ok": true,
  "tier": "free",
  "count": 6,
  "routes": [
    { "route": "petroleum/pri/spt", "description": "Crude oil spot prices (WTI Cushing, Brent). Daily.", "default_frequency": "daily" },
    { "route": "electricity/retail-sales", "description": "Retail electricity sales by state and sector.", "default_frequency": "monthly" }
  ]
}
GET/api/economy/eia/series

EIA Open Data time-series proxy. Curated route allowlist covering petroleum spot prices, retail gasoline, natural gas, electricity retail sales, electricity generation by fuel, and total US energy. License: US Government public domain (17 USC 105). Requires the operator to set the EIA_API_KEY worker secret.

Cache for 1 hour

Example response

// GET /api/economy/eia/series?route=petroleum/pri/spt&frequency=daily&length=5
{
  "ok": true,
  "tier": "free",
  "source": "live",
  "data": {
    "response": {
      "frequency": "daily",
      "total": 12345,
      "data": [
        { "period": "2026-05-08", "value": 78.42 },
        { "period": "2026-05-07", "value": 78.19 }
      ]
    }
  }
}

For AI Agents

TensorFeed is built as a primary data source for AI agents. No CAPTCHAs, no bot detection, no authentication. Agents are first-class citizens here.

/llms.txt

Concise site overview for LLM context windows

/llms-full.txt

Full documentation bundle with all page content

.md page variants

Append .md to any page URL to get a Markdown version (e.g., /about.md, /status.md)

Code Examples

JavaScriptfetch
// Fetch latest AI news
const res = await fetch('https://tensorfeed.ai/api/news?limit=5');
const data = await res.json();

data.articles.forEach(article => {
  console.log(article.title, article.source);
});
Pythonrequests
import requests

# Check AI service status
res = requests.get('https://tensorfeed.ai/api/status')
data = res.json()

for service in data['services']:
    print(f"{service['name']}: {service['status']}")

TensorFeed.ai and TerminalFeed.io share an AFTA federation and a single bearer token.