# Changelog

New features and changes to the SigWise API, console and docs, newest first.

## 2026-09-29

- **Safe retries for ingestion.** Send an `Idempotency-Key` header with
  `POST /v1/objects/{object_id}/events` and retry with the same key: the events
  are recorded once. See [Ingesting events](https://sigwise.ai/docs/guides/ingesting-events.md#retrying-safely).
- **Two-factor authentication** for console sign-in with an authenticator app,
  plus recovery codes. Repeated failed sign-ins are now temporarily locked out.
- Every API response carries an `X-Request-Id` header; quote it when you contact
  support.

## 2026-09-27

- **Built for more traffic.** Accounts share the analysis workers fairly, so
  one account's backlog no longer delays everyone else's answers. Objects that
  receive a steady stream of events are still analyzed at least once a minute,
  and an object is never analyzed twice at the same time.
- **Rate limits.** `/v1` requests are limited per account, and throttled
  requests get `429` with a `Retry-After` header. A `wait: true` request the
  analyzer can't take right now gets `503 analyzer_busy`. See
  [Errors and retries](https://sigwise.ai/docs/guides/errors.md).
- **Cursor pagination** for the object list: pass `next_cursor` back as
  `cursor` for pages that stay fast however deep you go.
- **Docs, OpenAPI and SDKs.** These docs, an [OpenAPI 3.1 specification](https://sigwise.ai/docs/guide/openapi.md)
  that a test keeps in step with the server, an [API reference](https://sigwise.ai/docs/reference.md)
  rendered from it, and generated [SDKs](https://sigwise.ai/docs/sdks.md) for Node.js, Python, Go and
  PHP. Every page is available as Markdown, with [llms.txt](https://sigwise.ai/docs/guide/agents.md) for
  AI agents.
- **Email notifications** for account events: welcome, new sign-ins, password
  and API key changes, low and empty balance, top-up receipts, and alerts from
  [rules](https://sigwise.ai/docs/guides/rules.md).
- **Backfills.** Answer a new signal for objects analyzed before it existed,
  one signal at a time or automatically for every new signal. See
  [Backfills](https://sigwise.ai/docs/guides/backfills.md).
- **Signed requests.** API requests carry a short-lived JWT signed with your
  key's secret and bound to the request's method and path, so the secret never
  leaves your server. See [Authentication](https://sigwise.ai/docs/guide/authentication.md).
- **Password reset** and change password in the console.

## 2026-09-26

- **Sign in with Google or GitHub**, and link either to an existing account.
- **Default signals.** Every new account starts with `is_scammer`,
  `trust_score` and `buyer_intent`, so the first events already get answers.
- **Card top-ups** and a **Transactions** screen itemizing every charge.
- **Help & docs** inside the console.

## 2026-09-25

- **Usage screen**: analyses, spend and tokens by day, model, signal and source.

## 2026-09-22

- **Cost-based billing.** Each analysis is billed at its actual model cost from
  a prepaid balance, and every new account starts with free credit. See
  [Billing and usage](https://sigwise.ai/docs/guides/billing.md).
- **Priority queues.** Live traffic is analyzed ahead of bulk work, so a large
  re-analysis never delays real events.

## 2026-09-21

- **Rules** that send an email, a Slack message or a webhook when a condition
  over your signals becomes true. See [Rules](https://sigwise.ai/docs/guides/rules.md).
- **Webhooks** with HMAC-SHA256 signatures, retries with backoff, a
  dead-letter queue and replay. See [Webhooks](https://sigwise.ai/docs/guides/webhooks.md).
- **API keys** you can create, rotate and revoke from the console.
- **Console accounts**: sign up and sign in to manage signals, objects, rules
  and webhooks.
