README / index.html
jameswlepage's picture
Replace boilerplate index.html with TSFM.ai org card
dc47aa0 verified
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TSFM.ai — Time-series foundation models as a service</title>
<meta
name="description"
content="TSFM.ai hosts every major pretrained time-series foundation model behind one inference API: Chronos, TimesFM, Moirai, Granite TTM, TiRex, Toto, TimeMoE, MOMENT, and more."
/>
<style>
:root {
color-scheme: light dark;
--bg: transparent;
--fg: #0f172a;
--muted: #475569;
--border: rgba(15, 23, 42, 0.12);
--accent: #4f46e5;
--chip-bg: rgba(79, 70, 229, 0.08);
--chip-fg: #3730a3;
--code-bg: rgba(15, 23, 42, 0.04);
--code-fg: #0f172a;
}
@media (prefers-color-scheme: dark) {
:root {
--fg: #e2e8f0;
--muted: #94a3b8;
--border: rgba(148, 163, 184, 0.18);
--accent: #a5b4fc;
--chip-bg: rgba(165, 180, 252, 0.12);
--chip-fg: #c7d2fe;
--code-bg: rgba(148, 163, 184, 0.12);
--code-fg: #e2e8f0;
}
}
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 2rem 1.25rem 3rem;
font-family:
ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
color: var(--fg);
background: var(--bg);
line-height: 1.55;
font-size: 15px;
}
.wrap {
max-width: 720px;
margin: 0 auto;
}
.eyebrow {
display: inline-block;
font-size: 0.75rem;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--accent);
margin-bottom: 0.5rem;
}
h1 {
font-size: 2rem;
font-weight: 700;
margin: 0 0 0.35rem;
letter-spacing: -0.015em;
}
.tagline {
font-size: 1.125rem;
color: var(--muted);
margin: 0 0 1.5rem;
}
.links {
display: flex;
flex-wrap: wrap;
gap: 0.4rem 0.85rem;
margin-bottom: 2rem;
font-size: 0.9rem;
}
.links a {
color: var(--accent);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color 120ms ease;
}
.links a:hover {
border-color: var(--accent);
}
.links span[aria-hidden="true"] {
color: var(--border);
}
h2 {
font-size: 1rem;
font-weight: 600;
margin: 2rem 0 0.75rem;
letter-spacing: -0.01em;
}
p {
margin: 0 0 0.9rem;
}
.chips {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
margin: 0 0 1rem;
}
.chip {
font-size: 0.78rem;
padding: 0.25rem 0.6rem;
border-radius: 999px;
background: var(--chip-bg);
color: var(--chip-fg);
font-weight: 500;
letter-spacing: 0.005em;
}
pre {
background: var(--code-bg);
color: var(--code-fg);
padding: 0.9rem 1rem;
border-radius: 8px;
overflow-x: auto;
font-size: 0.82rem;
line-height: 1.55;
margin: 0.5rem 0 1.25rem;
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}
code {
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
font-size: 0.88em;
}
hr {
border: 0;
border-top: 1px solid var(--border);
margin: 2rem 0;
}
.footer {
color: var(--muted);
font-size: 0.85rem;
margin-top: 1.5rem;
}
.footer a {
color: var(--accent);
text-decoration: none;
}
.footer a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<main class="wrap">
<div class="eyebrow">TSFM.ai</div>
<h1>Time-series foundation models as a service</h1>
<p class="tagline">
One API. 49+ pretrained forecasters. No fine-tuning required.
</p>
<div class="links">
<a href="https://tsfm.ai">tsfm.ai</a>
<span aria-hidden="true">·</span>
<a href="https://tsfm.ai/docs">docs</a>
<span aria-hidden="true">·</span>
<a href="https://tsfm.ai/docs/api">API reference</a>
<span aria-hidden="true">·</span>
<a href="https://tsfm.ai/pricing">pricing</a>
<span aria-hidden="true">·</span>
<a href="https://tsfm.ai/benchmarks/gift-eval">GIFT-Eval</a>
<span aria-hidden="true">·</span>
<a href="https://tsfm.ai/blog">blog</a>
</div>
<h2>What we host</h2>
<p>
Every major open-weights time-series foundation model, served behind one consistent inference
API. See the
<a href="https://huggingface.co/collections/TSFM-ai/time-series-foundation-models-served-by-tsfmai-69e2baca51579e4b126dbf20"
>full catalog collection</a
>
for the exact 49 models you can call today.
</p>
<div class="chips">
<span class="chip">Chronos / Chronos-Bolt / Chronos-2</span>
<span class="chip">TimesFM 2.0 / 2.5</span>
<span class="chip">Moirai 1.x / 2.0 / MoE</span>
<span class="chip">Granite TTM / PatchTST / FlowState</span>
<span class="chip">TiRex</span>
<span class="chip">Toto</span>
<span class="chip">TimeMoE</span>
<span class="chip">MOMENT</span>
<span class="chip">Sundial / Timer</span>
<span class="chip">Lag-Llama</span>
<span class="chip">TEMPO</span>
<span class="chip">Kairos</span>
<span class="chip">YingLong</span>
<span class="chip">Kronos</span>
<span class="chip">TSPulse</span>
</div>
<h2>Why a dedicated provider</h2>
<p>
General-purpose LLM inference stacks are a bad fit for forecasting. Time-series models have
narrow context windows, variable history lengths, quantile outputs, exogenous covariates, and
probabilistic sampling — none of which map cleanly onto OpenAI-style APIs. We built TSFM.ai for
this surface: <code>past_values</code>, <code>past_timestamps</code>,
<code>past_covariates</code>, <code>future_covariates</code>, <code>static_covariates</code>,
<code>quantiles</code>, and <code>num_samples</code> are first-class.
</p>
<h2>Get started</h2>
<pre><code>curl -X POST https://api.tsfm.ai/v1/forecast \
-H "Authorization: Bearer $TSFM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "amazon/chronos-2",
"inputs": [{"target": [10, 12, 11, 13, 14, 15, 14, 16, 18, 17]}],
"parameters": {"prediction_length": 24, "quantiles": [0.1, 0.5, 0.9]}
}'</code></pre>
<pre><code>from tsfm import Tsfm
client = Tsfm()
forecast = client.forecast(
model="amazon/chronos-2",
inputs=[{"target": [10, 12, 11, 13, 14, 15, 14, 16, 18, 17]}],
parameters={"prediction_length": 24, "quantiles": [0.1, 0.5, 0.9]},
)
print(forecast.predictions[0].mean)</code></pre>
<h2>Benchmarks</h2>
<p>
We publish continuously-updated scores for every hosted model on
<a href="https://tsfm.ai/benchmarks/gift-eval">GIFT-Eval</a> and
<a href="https://tsfm.ai/benchmarks/impermanent">Impermanent</a>.
</p>
<h2>Contact</h2>
<p class="footer">
General: <a href="mailto:hello@tsfm.ai">hello@tsfm.ai</a> · Enterprise:
<a href="mailto:sales@tsfm.ai">sales@tsfm.ai</a> · Website:
<a href="https://tsfm.ai">tsfm.ai</a>
</p>
</main>
</body>
</html>