Public API v1

Free, open REST API for live market prices, public forecast metadata and track-record outcomes.

Base URL

https://forecast-prediction-asset.com

Rate Limit

60 requests / minute

Authentication

None required

Attribution Requirement

When using this API in a public product, you must include a visible attribution:Data: https://forecast-prediction-asset.com — educational use only, not investment advice.

Endpoints

GET/api/v1/status

API health check and version info.

Example request

curl https://forecast-prediction-asset.com/api/v1/status

Example response (truncated)

{
  "attribution": "...",
  "disclaimer": "...",
  "timestamp": "2026-07-27T06:00:00.000Z",
  "data": { "status": "ok", "version": "1.0", "platform": "Forecast Assets" }
}
GET/api/v1/assets

List all active assets with slug, name, symbol, category, unit and currency.

Example request

curl https://forecast-prediction-asset.com/api/v1/assets

Example response (truncated)

{
  "data": [
    { "slug": "bitcoin", "name": "Bitcoin", "symbol": "BTC", "category": "digital_assets", "unit": "BTC", "currency": "USD" },
    { "slug": "gold", "name": "Gold", "symbol": "XAU", "category": "precious_metals", "unit": "troy oz", "currency": "USD" }
  ]
}
GET/api/v1/quotes

Live prices for all assets: price, 1-day change, 30-day change, 52-week range. Source: Yahoo Finance (may be delayed).

Example request

curl https://forecast-prediction-asset.com/api/v1/quotes

Example response (truncated)

{
  "data": [
    { "slug": "bitcoin", "price": 65155.00, "change1d": 1.24, "change30d": 9.10, "high52w": 109000, "low52w": 49000, "updatedAt": "2026-07-27T06:00:00.000Z", "source": "Yahoo Finance (delayed)" }
  ]
}
GET/api/v1/quotes/:slug

Live price for a single asset. Replace :slug with e.g. bitcoin, gold, silver, wti-crude.

Example request

curl https://forecast-prediction-asset.com/api/v1/quotes/gold

Example response (truncated)

{
  "data": { "slug": "gold", "price": 4101.00, "change1d": 1.20, "change30d": 5.40, ... }
}
GET/api/v1/forecasts

Public (locked) forecast metadata for all assets: direction, confidence, horizon, SHA-256 hash. Target prices are not included in the public API.

Example request

curl https://forecast-prediction-asset.com/api/v1/forecasts

Example response (truncated)

{
  "data": [
    { "id": 42, "assetId": 1, "horizon": "10d", "direction": "up", "confidence": "medium", "sha256": "abc123...", "publishedAt": "2026-07-20T00:00:00.000Z", "locked": true }
  ]
}
GET/api/v1/forecasts/:slug

Public (locked) forecasts for a single asset.

Example request

curl https://forecast-prediction-asset.com/api/v1/forecasts/bitcoin

Example response (truncated)

{
  "data": [ { "id": 42, "horizon": "10d", "direction": "up", "confidence": "medium", "locked": true } ]
}
GET/api/v1/track-record

All evaluated forecast outcomes: direction hit/miss, within-range result, error percentage, SHA-256 hash for independent verification.

Example request

curl https://forecast-prediction-asset.com/api/v1/track-record

Example response (truncated)

{
  "data": [
    { "forecastId": 10, "assetSlug": "gold", "horizon": "10d", "direction": "up", "directionCorrect": true, "withinRange": true, "errorPct": 0.8, "sha256": "abc123..." }
  ]
}

Code Examples

Python
import requests

BASE = "https://forecast-prediction-asset.com"

# Get live Bitcoin price
r = requests.get(f"{BASE}/api/v1/quotes/bitcoin")
resp = r.json()["data"]
print("Bitcoin:", resp["price"], "change:", resp["change1d"])

# Get all evaluated forecasts
track = requests.get(f"{BASE}/api/v1/track-record").json()["data"]
hits = [f for f in track if f["directionCorrect"]]
print("Hit rate:", len(hits), "/", len(track))
JavaScript / TypeScript
// Fetch live gold price
const res = await fetch("https://forecast-prediction-asset.com/api/v1/quotes/gold");
const { data } = await res.json();
console.log(`Gold: $${data.price.toLocaleString()} (${data.change1d > 0 ? "+" : ""}${data.change1d.toFixed(2)}% today)`);

// Fetch all public forecasts
const forecasts = await fetch("https://forecast-prediction-asset.com/api/v1/forecasts");
const { data: fData } = await forecasts.json();
console.log(`Active forecasts: ${fData.length}`);

Available Asset Slugs

bitcoingoldsilverwti-crudebrent-crudenatural-gascopperwheatcorncoffee

Internal Agent API

An authenticated internal endpoint is available for authorised automation agents (e.g. n8n workflows):

GET /api/v1/internal/newsletter-subscribers
Header: X-Agent-Token: <INTERNAL_AGENT_TOKEN>

Contact the platform owner to obtain an agent token. This endpoint is not publicly accessible.

Educational information only — not investment advice. Forecasts are probabilistic and may be wrong. Markets involve risk of loss.