Changelog
Every change to the Silktide API, newest first.
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. What can change, and how much notice you get, is on Versions.
November 2026 — version 1.1.0#
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
403with anEditionNotAvailableerror, which names the operation to call instead. Reports, report schedules and report templates are Silktide 4's. See Scores. - Get several results in one request 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.
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.
Also:
- Anyone who can see a report or report schedule can get it. Its
permissionsare included only for those who can admin it. See Get a report. - Setting a section's metadata needs "Can admin this website", and each value is checked against its field.
- Updating a tag refuses a label another tag of the same type has, as creating one does. Creating several tags creates all of them or none.
- Creating or updating a website refuses
tagIdsthat add an id that is not one of the account'ssectiontags. It used to keep the id, which named nothing. - Deleting a report schedule deletes its email subscribers too.
- Analytics queries take
limitandsimplein a query string as well as in a JSON body. They used to answer with aTypeErrorerror. See Get browsers and Get browser sizes. - An Analytics table's
maxPagecounts only the rows within itslimit, asnumRowsdoes, and the last page stops at the limit. See Tables. - A website's settings no longer include its sign-in or proxy password.
website.passwordSetandwebsite.proxyPasswordSetsay whether each is saved. Sendwebsite.passwordorwebsite.proxyPasswordto 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.
- When creating a website,
metaValuesgoes insidewebsite. Beside it, as the old page showed, it is ignored. See Create a website. - Results take clearer
periodnames, such aslast-7-daysandmonth-to-date. The older spaced names still work. See Results. - The rate limit counts requests per path, and a
429says when to retry inRetry-After. See Rate limits. - Each row of Sources has
sourceFilterValueandmediumFilterValue, 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. - Every page is available as Markdown, and the whole API as an OpenAPI 3.1 document.
February 24, 2025#
- Added testing a fragment of HTML.
May 30, 2024#
- Added an optional
limitto some Analytics operations. - Documented time zones for results.
February 1, 2024#
- Added website statistics. See Get headline statistics for every website.
January 1, 2024#
- The Silktide API launched, as v1.