<!-- https://developers.silktide.com/v1/changelog -->

# Changelog

Every change to the API, newest first. New and deprecated operations are listed under the version that brought them. To hear about changes, follow the [Atom feed](https://developers.silktide.com/v1/changelog.xml). What can change, and how much notice you get, is on [Versions](https://developers.silktide.com/v1/concepts/versions.md).

## November 2026 — version 1.1.0

- Added [Get a website's Silktide 5 scores](https://developers.silktide.com/v1/governance/scores/get-module-scores.md).
- Added [Get how a Silktide 5 score changed over time](https://developers.silktide.com/v1/governance/scores/get-module-score-trend.md).

Silktide 4 and Silktide 5 score websites differently, and the API now keeps them apart:

- Every operation's page says which edition of Silktide it reads. An account without that edition gets `403` with an `EditionNotAvailable` error, which names the operation to call instead. Reports, report schedules and report templates are Silktide 4's. See [Scores](https://developers.silktide.com/v1/concepts/scores.md).
- [Get several results in one request](https://developers.silktide.com/v1/platform/results/get-several-results.md) takes each query by the name it has on its own page, and answers it the same way.

A mistake in a request now fails with `400` and an `InvalidRequest` error, and `properties.field` names the parameter. Several operations used to answer `500`, or an error type such as `DivisionByZeroError`. This covers reports, report schedules, tags, section metadata, contents and check contents queries, Analytics queries with no `view` or `websiteId`, testing a fragment of HTML, and an id in the path that is not a whole number. See [Errors](https://developers.silktide.com/v1/concepts/errors.md).

The `429` from the rate limit now has the same body as other errors: type `TooManyRequests`, with the seconds to wait in `properties.retryAfter` as well as `Retry-After`. If your code read `error` as a string, read `error.message` instead. See [Rate limits](https://developers.silktide.com/v1/concepts/rate-limits.md).

Also:

- Anyone who can see a report or report schedule can get it. Its `permissions` are included only for those who can admin it. See [Get a report](https://developers.silktide.com/v1/governance/reports/get-report.md).
- [Setting a section's metadata](https://developers.silktide.com/v1/governance/metadata/set-section-metadata.md) needs "Can admin this website", and each value is checked against its field.
- [Updating a tag](https://developers.silktide.com/v1/platform/tags/update-tag.md) refuses a label another tag of the same type has, as creating one does. [Creating several tags](https://developers.silktide.com/v1/platform/tags/create-tag.md) creates all of them or none.
- [Creating](https://developers.silktide.com/v1/governance/websites/create-website.md) or [updating a website](https://developers.silktide.com/v1/governance/websites/update-website.md) refuses `tagIds` that add an id that is not one of the account's `section` tags. It used to keep the id, which named nothing.
- Deleting a report schedule deletes its email subscribers too.
- Analytics queries take `limit` and `simple` in a query string as well as in a JSON body. They used to answer with a `TypeError` error. See [Get browsers](https://developers.silktide.com/v1/analytics/audience/get-browsers.md) and [Get browser sizes](https://developers.silktide.com/v1/analytics/audience/get-browser-sizes.md).
- An Analytics table's `maxPage` counts only the rows within its `limit`, as `numRows` does, and the last page stops at the limit. See [Tables](https://developers.silktide.com/v1/concepts/tables.md).
- [A website's settings](https://developers.silktide.com/v1/governance/websites/get-website.md) no longer include its sign-in or proxy password. `website.passwordSet` and `website.proxyPasswordSet` say whether each is saved. Send `website.password` or `website.proxyPassword` to change one, and leave it out to keep it.

New documentation, generated from the same definitions that Silktide's own tests check against the API. These pages now say what it really does where the old pages did not:

- Scores are out of 100 to one decimal place, not whole numbers. See [Get a website's scores](https://developers.silktide.com/v1/governance/scores/get-scores.md).
- When creating a website, `metaValues` goes inside `website`. Beside it, as the old page showed, it is ignored. See [Create a website](https://developers.silktide.com/v1/governance/websites/create-website.md).
- Results take clearer `period` names, such as `last-7-days` and `month-to-date`. The older spaced names still work. See [Results](https://developers.silktide.com/v1/concepts/results.md).
- The rate limit counts requests per path, and a `429` says when to retry in `Retry-After`. See [Rate limits](https://developers.silktide.com/v1/concepts/rate-limits.md).
- Each row of [Sources](https://developers.silktide.com/v1/analytics/acquisition/get-sources.md) has `sourceFilterValue` and `mediumFilterValue`, the values to filter by that row, including `__empty__` for direct visits.
- Accounts in Australia use `https://api.au.silktide.com`. See [Find your region](https://developers.silktide.com/guides/quickstart.md#find-your-region).
- Every page is available as Markdown, and the whole API as an [OpenAPI 3.1 document](https://developers.silktide.com/v1/openapi.json).

## February 24, 2025

- Added testing a fragment of HTML.

## May 30, 2024

- Added an optional `limit` to some Analytics operations.
- Documented time zones for results.

## February 1, 2024

- Added website statistics. See [Get headline statistics for every website](https://developers.silktide.com/v1/governance/websites/get-website-stats.md).

## January 1, 2024

- The Silktide API launched, as v1.
