| <!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> |
|
|