Build on The Record
Embed a live call, pull the crowd’s consensus, or drive it from the terminal. Reads are public, CORS-open, and need no key. Everything is play-money — no cash, ever.
Embed any call
Drop one <iframe> on a page. It shows the question, the crowd’s live YES/NO split, and buttons that take a reader onto The Record with free points. The tiny loader script sizes the frame to its content — no clipping, no empty box.
<iframe src="https://vigfi.com/embed/lv-prata-vetra-liepaja-2026" width="560" height="240"
style="border:0;width:100%;max-width:560px" loading="lazy"
title="On the record — vigfi.com"></iframe>
<script>(function(){if(window.__vigfiEmbed)return;window.__vigfiEmbed=1;
addEventListener("message",function(e){if(e.origin!=="https://vigfi.com"||!e.data||
e.data.type!=="vigfi:embed-height")return;var f=document.querySelectorAll(
'iframe[src^="https://vigfi.com/embed/"]');for(var i=0;i<f.length;i++)
if(f[i].contentWindow===e.source)f[i].style.height=e.data.height+"px"})})();</script>Configuration
Append query params to the src:
| Param | Values | Default | Effect |
|---|---|---|---|
| lang | lv · en · et · lt | call’s region | Force the widget’s language |
| theme | light · dark · auto | light | Match a light or dark host page (auto follows the reader’s OS) |
| compact | 1 | — | Shorter card — hides the consensus meter |
https://vigfi.com/embed/lv-prata-vetra-liepaja-2026?lang=en&theme=lightOne requirement: your CSP
If your site sets a Content-Security-Policy, it must allow our frame. Add:
Content-Security-Policy: frame-src https://vigfi.comIt recognises a signed-in reader
If the reader is already logged in to The Record, the widget greets them by handle and lets them place the call inline — no leaving your page. Where a browser blocks third-party cookies (Safari, and increasingly Chrome), the widget shows a one-tap “Recognise me”(Storage Access API); if that’s declined it falls back gracefully — YES/NO simply open vigfi.com in a new tab with the side pre-filled. You don’t configure any of this; it degrades on its own.
Read the record
A small JSON API. Public, read-only, CORS-open (Access-Control-Allow-Origin: *), no key. Base URL:
https://vigfi.com/api/v1GET /calls
List calls with their consensus. Filters: market (lv·lt·ee·global), category, status (open·resolved), limit.
curl "https://vigfi.com/api/v1/calls?market=lv&limit=3"{
"count": 3,
"calls": [
{
"slug": "lv-prata-vetra-liepaja-2026",
"title": "Prāta Vētras koncertā Liepājā (18. jūlijā) līs",
"category": "culture",
"market": "lv",
"status": "open",
"deadline": "2026-07-18T22:00:00Z",
"consensus": { "yes_pct": 41, "forecasters": 5 },
"event": "prata-vetra-tura-2026",
"url": "https://vigfi.com/p/lv-prata-vetra-liepaja-2026",
"embed": "https://vigfi.com/embed/lv-prata-vetra-liepaja-2026"
}
]
}GET /calls/:slug
One call, with its full terms and how it resolves.
curl "https://vigfi.com/api/v1/calls/lv-prata-vetra-liepaja-2026"GET /calls/:slug/history
The full consensus time series — one point per landed forecast, same weighted-pool math as the live number (methodology). Add ?format=csv for a CSV download. Free to cite with attribution.
curl "https://vigfi.com/api/v1/calls/lv-prata-vetra-liepaja-2026/history"
curl -OJ "https://vigfi.com/api/v1/calls/lv-prata-vetra-liepaja-2026/history?format=csv"GET /markets
The markets and their open-call counts.
curl "https://vigfi.com/api/v1/markets"Writes (sealing your own calls, placing forecasts by machine) are on the roadmap and will use issued keys. Want early access? Get in touch.
From the terminal
A zero-dependency Node script (18+) over the same API.
curl -fsSL https://vigfi.com/cli/vigfi.mjs -o vigfi && chmod +x vigfi
./vigfi markets
./vigfi calls --market lv --category weather
./vigfi call lv-prata-vetra-liepaja-2026
./vigfi embed lv-prata-vetra-liepaja-2026 --lang en --theme light
./vigfi calls --json | jq '.calls[].slug'Point VIGFI_API at another origin to run it against a preview. Reads need no key.