# Changelog

> Changes to the Reggio Digital API that an integration would notice, newest first.

Source: https://reggiodigital.com/developers/changelog

Changes an integration would notice, newest first. Additions within `v1` never break existing code; see [versioning](https://reggiodigital.com/developers/conventions#versioning).

## 2026-09-25

- The account API: read websites, backups and visits, support requests and replies, domains, DNS zones and records, invoices and plans, with the new `websites:read`, `tickets:read`, `domains:read` and `billing:read` abilities. Keys for it are made under API keys in the dashboard.
- Lists share one shape, `data`, `has_more` and `next_cursor`, paged with `limit` and `cursor`.
- An address under `/api/v1` that does not exist now answers `404` with `not_found` in the standard error shape, and a method an address does not take answers `405` with `method_not_allowed`. Both carry `error.request_id` like every other error.
- `GET /api/v1/me` tells a key which account it belongs to, what abilities it has and when it stops working, if it has been replaced.
- The versioning promise now says how long `v1` keeps working once a new version ships: at least 12 months.

## 2026-09-14

- Published these developer docs.
- A `429` from the rate limit now uses the standard error shape, with the type `rate_limited`, instead of a bare message.

## 2026-09-11

- Connect several applications to one account, each with its own key, abilities and optional sending-domain limits.
- Replace a key with an overlap of up to a week, so the old one keeps working while you deploy the new one.
- New `newsletter:read` ability, for a key that can look subscribers up but not change them.

## 2026-09-10

- Webhooks: signed notifications for email delivery events, newsletter subscribers, preference changes and received mail.
- Every response carries `X-Reggio-Request-Id`, and every error repeats it as `error.request_id`.
- `PATCH /api/v1/emails/{id}` moves a scheduled message to a new time.

## 2026-09-09

- The newsletter subscriber API: lists, fields, add or update, look up and unsubscribe, with the `newsletter:manage` ability.

## 2026-09-08

- Send a published email template with `template_id` and `variables`.
- Validation failures use the standard error shape, with `error.fields`.
- `suppressed` is returned on every kind of send, including scheduled sends and each message in a batch.

## 2026-09-01

- Scheduled sends with `scheduled_at`, cancelled with `DELETE /api/v1/emails/{id}`.
- `POST /api/v1/emails/batch` for up to 100 messages at once.
- `tags`, custom `headers` and the `Idempotency-Key` header.
- Attachments, by content or by link, and inline images.
- `GET /api/v1/emails/{id}` to see what happened to a message.

## 2026-08-24

- The transactional email API: `POST /api/v1/emails`.
- SMTP credentials for any verified sending domain.
