Skip to content
Menu
SilktideDevelopers

Update a website

PUT/v1/websites/{websiteId}Uses allowance
View as Markdown

Changes a website. Send only what you want to change; the response is the whole website, as Get a website returns it.

Two parts replace rather than merge:

  • schedule replaces the whole schedule. A key you leave out takes its default (no interval, a period of 1, starting now, active), so send every key you care about.
  • tagIds replaces the website's tags. Send [] to remove them all; leave it out to keep them. Each id you add must be one of the account's section tags, so create a tag first; any other id is refused with 400 and the request changes nothing.

options merges: a setting you leave out keeps its value.

A larger maxPages or maxDocuments must be within what Get a website's balance says the website can be given. Lowering them, or changing anything else, always works, even on an account that is over its balance.

If you leave out governanceAiOptimizer and the website can no longer use AI after the update (for example website.aiEnabled: false), it gives back its Governance AI optimizer.

Request
curl -X PUT "https://api.eu.silktide.com/v1/websites/2" \
  -H "Authorization: silktide token=$SILKTIDE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "website": {
    "name": "Example (main site)"
  },
  "schedule": {
    "scheduleInterval": "month",
    "schedulePeriod": 1
  },
  "tagIds": [
    "competitor"
  ]
}'
Response: Rename a website and retest it every month
{
  "website": {
    "websiteId": 2,
    "name": "Example (main site)",
    "homeUrl": "https://example.com/",
    "status": "live",
    "maxPages": 1000,
    "maxDocuments": 500,
    "created": 1790216529,
    "lastTested": 1790302929,
    "propertyId": 0
  },
  "permissions": {
    "components": [],
    "componentValues": {},
    "fixedValues": {}
  },
  "schedule": {
    "scheduleInterval": "month",
    "schedulePeriod": 1,
    "scheduleFromDate": 1793736900,
    "schedulePreset": "",
    "isActive": true
  },
  "options": {
    "website.languages": [
      "en-US"
    ],
    "website.passwordSet": false,
    "website.proxyPasswordSet": false
  },
  "tagIds": [
    "competitor"
  ],
  "governanceAiOptimizer": false,
  "governanceAiOptimizerAvailable": true,
  "reportLanguage": "en-US"
}

Request

Path parameters

  • websiteIdintegerrequiredat least 1

    The website.

Body

JSON, sent with Content-Type: application/json.

  • websiteobject

    Details to change. Ones left out keep their value.

    Show 4 fields
    • namestring1 to 200 characters

      Its name. Plain text: no markup or control characters.

    • homeUrlstring

      Its home page, as a full URL.

    • maxPagesintegerat least 1

      The most pages to test. An increase must fit in the account's balance.

    • maxDocumentsinteger

      The most documents (PDFs) to test. An increase must fit in the account's balance.

  • scheduleobject

    When to retest it. Replaces the whole schedule: any key left out takes its default.

    Show 5 fields
    • scheduleIntervalstring

      The unit to retest in. Defaults to empty, which is no schedule.

      One ofsecondminutehourdayweekmonthyear

    • schedulePeriodintegerat least 1

      How many intervals apart tests are. Defaults to 1.

    • scheduleFromDateinteger

      When the schedule counts from. Defaults to now.

    • schedulePresetstring

      A named schedule, used instead of the interval and period: five-daily, weekly, monthly, or none for no schedule.

      One ofnonefive-dailyweeklymonthly

    • isActiveboolean

      Whether scheduled tests run. Defaults to true.

  • optionsobject

    Settings to change. Ones left out keep their value.

    Show 38 fields
    • website.allowFragmentPathsboolean

      Experimental. Crawl paths with fragments, such as hashbangs.

    • website.allowedHttpCodeslist of integers

      HTTP codes to accept besides 2xx and 3xx, which are always accepted.

    • website.authTypestring

      How Silktide signs in to pages that need it.

    • website.benchmarkIdstring

      The Silktide Benchmark to grade against. Empty for none.

    • website.benchmarkPercentileinteger

      The percentile to read from the benchmark.

    • website.brokenLinkMaxRedirectsinteger

      How many redirects a link may take before it counts as broken.

    • website.brokenLinkPropulsionFallbackboolean

      Confirm broken links in a real browser. Slower but more reliable.

    • website.brokenLinkTimeoutinteger

      Seconds to wait before a link counts as broken.

    • website.clickSelectorstring

      A CSS selector Silktide clicks on each page before testing it.

    • website.disableAnalyticsboolean

      Block the website's analytics scripts while testing, so tests do not count as visits.

    • website.disableFirstTimeVisitboolean

      Skip the built-in first-visit user flow, which tests pages before cookie banners are dismissed.

    • website.disableLinkDiscoveryboolean

      Test only the URLs you give, and follow no links.

    • website.disableScrollDownboolean

      Do not scroll each page to the bottom and back while testing.

    • website.disableStealthboolean

      Let websites detect that Silktide's browser is automated.

    • website.enableAnimationboolean

      Let pages animate. Silktide stops animation by default.

    • website.exclude3rdPartyPluginIssuesboolean

      Ignore issues inside common third-party plugins, such as embedded maps.

    • website.excludeQueryParamslist of strings

      Query parameters to remove from URLs, so pages that differ only by them count once.

    • website.ignoreAutomaticSitemapsboolean

      Do not use the sitemaps Silktide finds on its own.

    • website.inspectorCssstring

      CSS added to pages when they are shown in the Inspector.

    • website.languageslist of strings

      Language codes, such as en-US, that every page is in. Always present.

    • website.maxConnectionsinteger

      How many pages Silktide may load at once.

    • website.normalizeUrlPathboolean

      Lowercase URL paths, for websites that mix case.

    • website.optionalLanguageslist of strings

      Language codes a page might be in. Silktide detects them per page, which slows testing.

    • website.pageWaitnumber

      Seconds to wait after a page loads before testing it.

    • website.proxyHoststring

      A proxy server to test through.

    • website.proxyPortinteger

      The proxy server's port.

    • website.proxyPresetstring

      One of Silktide's proxies: eu-dublin, us-ohio or au-sydney. Empty for the region's own location.

    • website.proxyUsernamestring

      The proxy server's username.

    • website.readabilityFormulastring

      The readability formula, such as smog.

    • website.readabilityThresholdnumber

      The readability score pages should stay within.

    • website.reportLanguagestring

      The language AI reports about the website are written in. Empty for the account's language.

    • website.timeoutinteger

      Seconds to wait for a page to load before giving up.

    • website.trustPageDeclaredLanguageboolean

      Believe the language a page declares rather than detecting it.

    • website.userAgentSuffixstring

      Text added to the end of Silktide's browser user agent.

    • website.usernamestring

      The username Silktide signs in to pages with.

    • website.aiEnabledboolean

      Whether Silktide's AI may work on this website.

    • website.passwordstring

      The password Silktide signs in to pages with. Write-only: reads say only whether one is set. Leave it out to keep the saved one; an empty string removes it.

    • website.proxyPasswordstring

      The proxy server's password. Write-only, like website.password.

  • tagIdslist of strings

    The tags for the whole website (section 0). Replaces its tags; [] removes them all.

  • governanceAiOptimizerboolean

    true to give the website one of the account's Governance AI optimizers, false to give its back.

Response

200JSON.

  • websiteobjectrequired

    The website.

    Show 9 fields
    • websiteIdintegerrequiredat least 1

      The website.

    • namestringrequired

      Its name.

    • homeUrlstringrequired

      Its home page.

    • statusstringrequired

      installing while Silktide creates it, setup before it goes live, live once it is tested.

      One ofinstallingsetuplive

    • maxPagesintegerrequired

      The most pages Silktide will test.

    • maxDocumentsintegerrequired

      The most documents (PDFs) Silktide will test.

    • createdintegerrequired

      When it was created.

    • lastTestedintegerrequired

      When its last test finished. 0 if it has never been tested.

    • propertyIdintegerrequired

      The Analytics property linked to the website. 0 when it has none.

  • permissionsobjectrequired

    Who may do what with the website.

    Show 3 fields
    • componentslist of objectsrequired

      The permissions a website has.

      Show 6 fields
      • permissionIdstringrequired

        The permission, such as Website-WebsiteRead.

      • componentTypestringrequired

        What can be given it. assignees for users and roles.

      • labelstringrequired

        Its name.

      • descriptionstringrequiredcan be null

        What it allows. Null for some permissions.

      • inheritedPermissionIdslist of stringsrequired

        Permissions that include this one: anyone with those has this too.

      • modelslist of any JSONrequired

        Reserved. Empty for website permissions.

    • componentValuesmap of list of stringsrequired

      Who was given each permission on this website directly, as assignee ids (u: users, g: roles).

    • fixedValuesmap of list of stringsrequired

      Who has each permission from elsewhere, such as account-wide roles. Changed elsewhere, not here.

  • scheduleobjectrequired

    When it is retested.

    Show 5 fields
    • scheduleIntervalstringrequired

      The unit it is retested in. Empty when it is not retested on a schedule.

      One ofsecondminutehourdayweekmonthyear

    • schedulePeriodintegerrequired

      How many scheduleIntervals apart tests are.

    • scheduleFromDateintegerrequired

      When the schedule counts from.

    • schedulePresetstringrequired

      A named schedule (none, five-daily, weekly or monthly), or empty when the interval and period were set directly.

    • isActivebooleanrequired

      Whether scheduled tests run.

  • optionsobjectrequired

    Its settings, by name.

    Show 38 fields
    • website.allowFragmentPathsboolean

      Experimental. Crawl paths with fragments, such as hashbangs.

    • website.allowedHttpCodeslist of integers

      HTTP codes to accept besides 2xx and 3xx, which are always accepted.

    • website.authTypestring

      How Silktide signs in to pages that need it.

    • website.benchmarkIdstring

      The Silktide Benchmark to grade against. Empty for none.

    • website.benchmarkPercentileinteger

      The percentile to read from the benchmark.

    • website.brokenLinkMaxRedirectsinteger

      How many redirects a link may take before it counts as broken.

    • website.brokenLinkPropulsionFallbackboolean

      Confirm broken links in a real browser. Slower but more reliable.

    • website.brokenLinkTimeoutinteger

      Seconds to wait before a link counts as broken.

    • website.clickSelectorstring

      A CSS selector Silktide clicks on each page before testing it.

    • website.disableAnalyticsboolean

      Block the website's analytics scripts while testing, so tests do not count as visits.

    • website.disableFirstTimeVisitboolean

      Skip the built-in first-visit user flow, which tests pages before cookie banners are dismissed.

    • website.disableLinkDiscoveryboolean

      Test only the URLs you give, and follow no links.

    • website.disableScrollDownboolean

      Do not scroll each page to the bottom and back while testing.

    • website.disableStealthboolean

      Let websites detect that Silktide's browser is automated.

    • website.enableAnimationboolean

      Let pages animate. Silktide stops animation by default.

    • website.exclude3rdPartyPluginIssuesboolean

      Ignore issues inside common third-party plugins, such as embedded maps.

    • website.excludeQueryParamslist of strings

      Query parameters to remove from URLs, so pages that differ only by them count once.

    • website.ignoreAutomaticSitemapsboolean

      Do not use the sitemaps Silktide finds on its own.

    • website.inspectorCssstring

      CSS added to pages when they are shown in the Inspector.

    • website.languageslist of stringsrequired

      Language codes, such as en-US, that every page is in. Always present.

    • website.maxConnectionsinteger

      How many pages Silktide may load at once.

    • website.normalizeUrlPathboolean

      Lowercase URL paths, for websites that mix case.

    • website.optionalLanguageslist of strings

      Language codes a page might be in. Silktide detects them per page, which slows testing.

    • website.pageWaitnumber

      Seconds to wait after a page loads before testing it.

    • website.proxyHoststring

      A proxy server to test through.

    • website.proxyPortinteger

      The proxy server's port.

    • website.proxyPresetstring

      One of Silktide's proxies: eu-dublin, us-ohio or au-sydney. Empty for the region's own location.

    • website.proxyUsernamestring

      The proxy server's username.

    • website.readabilityFormulastring

      The readability formula, such as smog.

    • website.readabilityThresholdnumber

      The readability score pages should stay within.

    • website.reportLanguagestring

      The language AI reports about the website are written in. Empty for the account's language.

    • website.timeoutinteger

      Seconds to wait for a page to load before giving up.

    • website.trustPageDeclaredLanguageboolean

      Believe the language a page declares rather than detecting it.

    • website.userAgentSuffixstring

      Text added to the end of Silktide's browser user agent.

    • website.usernamestring

      The username Silktide signs in to pages with.

    • website.aiEnabledboolean

      Whether Silktide's AI may work on this website.

    • website.passwordSetbooleanrequired

      Whether a sign-in password is saved. Always present. Read-only: sending it changes nothing.

    • website.proxyPasswordSetbooleanrequired

      Whether a proxy password is saved. Always present. Read-only, like website.passwordSet.

  • tagIdslist of stringsrequired

    The ids of the tags on the whole website (section 0).

  • governanceAiOptimizerbooleanrequired

    Whether the website holds one of the account's Governance AI optimizers.

  • governanceAiOptimizerAvailablebooleanrequired

    Whether it could be given one now, counting one its own recent reports still hold.

  • reportLanguagestringrequired

    The language its AI reports are written in: its own setting, or the account's when unset.

Errors

StatusTypeWhen
404ModelNotFoundNothing with that id exists in the account, or the API key's user cannot see it.
403AccessDeniedThe API key's user cannot admin this website.
403InsufficientBalanceA larger maxPages or maxDocuments is more than the website can be given. properties.featureId names the balance.
400InvalidRequestThe name contains markup or control characters, website.reportLanguage is not a language Silktide writes reports in, or tagIds adds an id that is not one of the account's section tags. properties.field names it.
401NotLoggedInNo API key was sent, or it is not a key for this region.(any operation)
429TooManyRequestsToo many requests to this path in five seconds. Retry after the number of seconds in the Retry-After header, which properties.retryAfter repeats.(any operation)
503-Silktide is busy. Retry after the number of seconds in the Retry-After header.(any operation)

Every error has the same body. See Errors.

Access

Permission
Can admin this website
Plan feature
None
Edition
Silktide 4 and Silktide 5
Cost
Uses the account's allowance
Available since
v1.0.0

Try it

Sends a real request to your account from this browser. Your key stays in this tab and goes only to the Silktide API.

This changes your account. It is not a sandbox.