Your beat. Covered.
A beat is the set of entities and event types you monitor. Evinor covers it: matching events accumulate in a log that you, or your AI agent, read by time window.
Define it once. Read it whenever.
Define what it covers
Add clauses: an entity, or an event type with conditions. A clause is OR-ed with the others.
It accumulates quietly
Matching events are added as entries, one per event, with the clauses that matched. The recent past is backfilled when you create the beat.
Read it when you want
Open the log by time window, or let your agent poll it. Reads are free.
POST /v1/beats/{beat_id}/entries
{ "since": "<poll_since>" }
200 3 entries
poll_since: "eyJrIjoi…"Competitor beat
Every launch and exec change at five rivals.
Entity Rivals (5) · involved OR Product launch OR Leadership change · Rivals
Portfolio beat
Anything involving your portfolio watchlist.
Entity ≡ Portfolio (38) · involved
Market beat
All funding rounds over $50M in your sector.
Fund raising · 2+ reports Amount ≥ 50000000 Company in ≡ Sector: Climate tech
Agent beat
An AI agent checks for new entries every hour and briefs you only when something new matters.
const since = store.get("beat_cursor") ?? "";
const page = await mcp.call("get_beat_entries", {
beat_id: "<your beat id>",
since,
});
// page on with get_beat_entries_continue while has_more
if (page.data.some(isRelevant)) await brief(page.data);
store.set("beat_cursor", page.poll_since);On every plan
Beats are available on every plan, including free.
Entries cost credits
Each new entry costs credits by event type. Backfill is free.
Reads are free
Read as often as you like, in the app or from your agent.
A cap keeps it predictable
Set a monthly spend cap. The beat pauses when it is reached.
How many beats and clauses you can have, how far back a new beat backfills, and how long entries are kept grow with plan.