---
title: "What changed since your last read, paid per call or read with a key"
method: GET
path: "/api/events"
tags: ["Webhooks"]
---

# What changed since your last read, paid per call or read with a key

`GET /api/events`

## Request

- Base URL: `https://api.prereason.com`
- URL: `https://api.prereason.com/api/events`
- Auth: HTTP bearer

One page of PreReason's change events after a cursor: a live
briefing's state label changing, a tracked release becoming known
(the Fed's weekly balance sheet, the FOMC statement and target range,
Treasury auction results, the EIA's weekly crude oil and natural gas
stocks, ECB and Bank of Japan policy rates), and, for the companies a
read names, figures stored for a newer period, an event driven
situation the company briefing reports turning on, and filed news (for
the USA: an 8-K's material events, leadership changes and results).
Each event says what
changed, when it happened, when PreReason knew it, the rule and where
to fetch the briefing or metric it concerns; it carries no value.

With no cursor the read starts 24 hours back; each answer's
`next_cursor` is where the next read starts. Events are kept 30 days.
A company's events reach only a read that names the company in
`companies`. `kinds` narrows company news; ownership reports come only
to a read that names them.

A key on the Basic or Pro plan reads its plan's events and is never
charged here. A caller with no key pays per read. A malformed cursor,
an unknown event type, a malformed company, more than 200 companies
or an unknown news kind answers 400, and nothing is charged.

## Query parameters

- `cursor` string
- `types` string
- `companies` string
- `kinds` string
- `limit` integer

## Response `200`

A page of events, its next_cursor and whether more follow

- object
  - `events` object[], required
  - `next_cursor` string, required
  - `has_more` boolean, required
  - `note` string: Present only when the page holds no events, has_more is false and no companies were named: what to ask instead, with the count of market wide events from the last 30 days open to this read.

## Other responses

- `400`: A malformed cursor, an unknown event type, a malformed company, more than 200 companies, or an unknown news kind
- `401`: Authentication required
- `402`: Payment required. The body is an x402 v2 payment quote naming this resource, its price in USDC, and the accepted networks. Pay and retry with the payment header, or authenticate with an API key instead.
- `403`: A key on the free plan, which has no change events

## Changes

- **2026-10-11** `6754bd53d584`: 1 info
  - added the media type `application/json` for the response with the status `200`
- **2026-10-06** `5589dc1b96b1`: 1 info
  - added the new optional `query` request parameter `kinds`
- **2026-10-05** `3879f24206ab`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/prereason/apis/prereason-api/changes/api/events/get.md)

---

[API](https://skmtc.dev/prereason/apis/prereason-api.md) - [All operations](https://skmtc.dev/prereason/apis/prereason-api/llms.txt) - [OpenAPI document](https://skmtc.dev/prereason/apis/prereason-api/revisions/fe5bacbc7887?raw)
